n m
I II I II I II I II
kk nm nm
k k k k
n i x ix n i x i n n i x i n
x x x x x x x x x x x x x x x x x x x x
A A A A A PA X X X
PXkkn n
Bnp PXk n C k pp k nk kn n k nck C n p Bk k B B p
x fx N N
N X X X n X X X n n t t t n t t t X N Y n T X Yn
X m Y n F Xm Yn m n F F F t F
XXb PX b b PX b
PXb PXb PxbPxb PX PX PaXa ab PaXb axb PaXbPXbPXa PaXb Pa X b ab ab ab X X PaX b ab
N PaXb a b X Z XX XX Z V s N
N n N n N N Z X XNZN n n V sv X XNZN n sn nt XNTtn X n sn Y Pa Y b a b ab Z X N n
Pz Zz X Pz z n PXz Xz n n Xz Xz n n z Xn nt X Ttn Vn XtnXtn V V n n t n t n t t n Xtn V n Xtn V n t n Bnp k B
Bnpnp npp Xnp ZN npp Pz Zz Xnp P a Pz z npp P a p x n pz p pp a pz pp n n P a t F
H H H H H H
X X X n N X N n Z
X ZN n nt X Ttn sn T nt X T sn t t F F F t p H p p t p t t p p p
p t t
t p p p p
p p p t
p p p p
a j jk i n a y y y i y n y a y y y i y n y A y i y i y ij y ik i i n a j y j y j y ij y nj y j a k y k y k y ik y nk y k
a A a a a y ij a a a a
k nk SS B SS W MS B MS W y ij y ij y y j yy ij y j y y j k n yy ij nk j i n y j y ij n i MS B MS W P y j y y ij y j SS B k SS B y j y n j i k MS B MS B SSB k SS W k n SS W y ij y j j i SS W N k N k MS W MS W SSW Nk F F MSB MS A F P
a a a a A
A B A b a a a b B b b b b b a b b a a b b b a b b b b b b
f
f x y f yfx x y yabx a b x
a x b yabxe yabx x x i e i y i y i y i abx i e i y i abx i in
t yabx ab S e e iy i a a x S x i xy i xy y b S x i x xx a yb x at p S e y i y i S e s e nk nk a x SEas e n x i x b s SEb e x i x a att a SEa b btt b SEb tp t p
R n k k S R R S T S e nk R S T n S T S R S e ys T y i y y i S R y i y S e y i y i S T S R S e F p F p F F k n k F R F nk R k
ya a x a x a n x n a ya a x a x a n x n a a a a n y y
ya a x a x a x x
[ 連 載 ] フリーソフトによるデータ 解 析 マイニング 第 15 回 R と 一 般 化 線 形 モデル 1. 一 般 化 線 形 モデル 分 散 分 析 線 形 回 帰 分 析 は 線 形 モデルであり 残 差 が 正 規 分 布 に 従 う 仮 定 に 基 づいている しかし データが 常 に 正 規 分 布 に 従 うと 言 う 保 証 はない また 非 線 形 の 現 象 については 線 形 になるような 変 換 を 施 し 線 形 モデルで 問 題 を 解 決 することも できる しかし このような 方 法 ではモデルを 不 自 然 な 尺 度 で 歪 んだ 解 釈 を 行 ってしまう 危 険 性 が 伴 う 一 般 化 線 形 モ デ ル (Generalized Linear Model)は 表 1 関 数 glm で 使 用 可 能 な 主 な 分 布 分 布 族 (family) リンク 関 数 g (μ) yi の 範 囲 正 規 (gaussian) μ (-, + ) 二 項 (binomial) log( μ (1 μ)) 0,1,2, L, n ポアソン(poisson) log(μ ) 0,1,2, ガンマ(Gamma) 1 μ ( 0, + ) n i i 正 規 分 布 を 含 んだ 分 布 族 (family)にデータを 対 応 させ 非 逆 正 規 (Inverse.gaussian) 2 1 μ (, + 0 ) 線 形 の 現 象 を 線 形 モデルの 場 合 と 同 じく 簡 単 に 扱 え かつ 不 自 然 な 尺 度 で 解 釈 しないように 工 夫 したデータ 解 析 方 法 である また 一 般 化 線 形 モデルは 被 説 明 変 数 ( 反 応 変 数 応 答 変 数 と も 呼 ぶ)が 2 値 データ 例 えば 男 と 女 死 と 生 存 はい と いいえ のような データのモデルも 含 んでいる 通 常 の 線 形 モデルは 次 の 式 で 表 される y = Xβ + e X は 説 明 変 数 の 行 列 である 一 般 化 線 形 モデルでは Xβ という 線 形 結 合 から g ( μ) = Xβ の ような 変 換 を 行 った 拡 張 である ここの μ は 被 説 明 変 数 の 平 均 で g をリンク 関 数 と 呼 ぶ R では パッケージ stats に 一 般 化 線 形 モデルの 関 数 glm が 用 意 されている 関 数 glm で 対 応 できる 主 な 分 布 を 表 1 に 示 す 関 数 glm の 最 も 簡 単 な 書 式 を 次 に 示 す glm(formula, family, data) 引 数 formula は 関 数 lm と 同 じくモデルの 式 を 引 数 family には 表 1 の 分 布 名 を 指 定 する デフォルトには gaussian が 指 定 されている 一 般 化 線 形 モデル 関 数 glm の 使 用 法 について 例 を 用 いて 説 明 する R に airquality というデ ータがある データ airquality は 1973 年 5 月 から9 月 までのニューヨークの 大 気 状 態 を 6 つの 変 数 で 観 1
測 した 154 の 観 測 値 である データの 中 の 変 数 を 次 に 示 す [,1] Ozone オゾンの 量 (ppb) [,2] Solar.R 日 射 量 (lang) [,3] Wind 風 力 (mph) [,4] Temp 温 度 ( 華 氏 F) [,5] Month 月 1~12 [,6] Day 月 のうちの 日 1~31 ここでは 日 射 量 風 力 温 度 の 値 でオゾンの 量 を 説 明 できるかどうかと 言 う オゾンの 量 を 被 説 明 変 数 とした 重 回 帰 モデルを 考 えることにする 第 5 列 の 月 (Month ) 6 列 の 日 (Day) のデータは 必 要 ではないので 次 のように 新 たなデータセットを 作 成 する >data(airquality) >airq2<-airquality[,1:4] >airq2 Ozone Solar.R Wind Temp 1 41 190 7.4 67 2 36 118 8.0 72 < 後 略 > 回 帰 分 析 を 行 う 前 に まず 4 変 数 の 対 散 布 図 で 変 数 の 相 互 関 係 を 考 察 してみよう 対 散 布 図 関 数 pairs に 引 数 panel=panel.smooth を 用 いると 散 布 図 の 点 の 傾 向 を 示 す 曲 線 が 描 かれる >pairs(airq2,panel=panel.smooth,lwd=2) 図 2 airquality の 対 散 布 図 2
対 散 布 図 から 日 射 量 (Solar.R) 温 度 (Temp)の 値 が 大 きくなるに 伴 い Ozone の 値 が 大 きく 風 力 (Wind)の 値 が 大 きいほどオゾン 量 が 小 さくなる 相 関 関 係 および 逆 相 関 関 係 があることが 分 かる そこで Ozone を 被 説 明 変 数 とし 残 りの 3 変 数 を 説 明 変 数 とした 重 回 帰 分 析 を 行 うことに する >airq2.lm<-lm(ozone~.,data=airq2) 次 に 残 差 の Q-Q プロットを 図 1 に 示 す > qqnorm(resid(airq2.lm)) > qqline(resid(airq2.lm)) 図 1 で 分 かるように 残 差 が 正 規 分 布 に 十 分 良 く 当 てはまっているとは 言 いがたい 図 1. 残 差 の Q-Q プロット そこで 関 数 lm による 重 回 帰 モデルと 一 般 化 線 形 モデルによる 重 回 帰 モデルとの 当 てはめ の 良 さについて 比 較 してみることにする モデルの 当 てはめの 良 さに 関 する 評 価 は AIC を 用 いることにする まず 関 数 lm による 重 回 帰 モデルの AIC を 次 に 示 す > AIC(airq2.lm1) [1] 998.717 3
次 に 関 数 glm の gaussian Gamma 分 布 を 用 いた 場 合 の AIC 値 を 求 める >AIC(glm(Ozone~Solar.R+Wind+Temp,data=airq2,family=gaussian)) [1] 998.7171 >AIC(glm(Ozone~Solar.R+Wind+Temp,data=airq2,family=Gamma)) [1] 939.8778 AIC の 値 から 分 かるように 関 数 lm による 重 回 帰 モデルと 関 数 glm の gaussian 分 布 を 用 いた 結 果 は 同 じである Gamma 分 布 による AIC の 値 が gaussian 分 布 を 用 いた 場 合 より 小 さいので Gamma 分 布 によるモデルの 当 てはめが 良 いと 判 断 される 関 数 glm の 引 数 family に poisson を 指 定 した 場 合 の 回 帰 分 析 をポアソン 回 帰 分 析 とも 呼 ぶ 2.ロジスティック 回 帰 と 一 般 化 線 形 モデル (1) ロジスティック 回 帰 分 析 次 の 関 数 をロジスティック 関 数 と 呼 ぶ η e p = 1 + e ロジスティック 関 数 がどのような 形 をしているかを 見 ることにしよう 次 のコマンドで 図 1 のような 横 軸 が-5 から 5 までの 範 囲 内 のロジスティック 曲 線 が 作 成 される η >eta<-seq(from=-5,to=5,length=200) >plot(eta,exp(eta)/(1+exp(eta)),type="l ) 図 1.ロジスティック 曲 線 4
この S 字 型 曲 線 をロジスティック 曲 線 と 呼 ぶ ロジスティック 関 数 は 二 項 分 布 と 深 く 関 係 し ている 例 えば ある 病 気 にかかった 場 合 その 死 亡 率 を p とすると その 生 存 率 は1 p とな る このような あることが 起 る 確 率 と 起 らない 確 率 の 比 ジット(logit) 変 換 と 呼 ぶ η = p g( p) = log( ) 1 p p 1 p (オッズと 呼 ぶ)の 対 数 変 換 をロ ロジスティック 関 数 は オッズのロジット 変 換 の 逆 関 数 である 上 記 の 式 が 表 1 の 二 項 分 布 のリンク 関 数 と 同 じであることに 注 意 して 欲 しい ロジスティック 関 数 は 経 済 データ 解 析 に 用 いるのに 都 合 がよい 例 えば 携 帯 電 話 やインタ -ネットの 普 及 率 を 考 えた 場 合 普 及 率 が 大 きくなり 飽 和 状 態 に 近 づくとその 伸 び 率 は 小 さ くなり 普 及 率 が 100%( 確 率 1)を 超 えることはあり 得 ない このようなデータについて 線 形 回 帰 分 析 を 行 うと 両 側 に 行 くほど 予 測 値 と 実 測 値 との 乖 離 が 大 きくなる そこで このよう なデータについてはロジスティック 回 帰 分 析 が 多 く 用 いられている R では 一 般 化 線 形 モデル 関 数 glm の 二 項 分 布 を 用 いてロジスティック 回 帰 分 析 を 行 うことができる ここで 表 2 に 示 す 日 本 のカラーテレビの 普 及 率 の 例 を 用 いて 説 明 する 表 2 カラーテレビの 普 及 率 年 度 普 及 率 年 度 普 及 率 年 度 普 及 率 1966 0.003 1973 0.758 1980 0.982 1967 0.016 1974 0.859 1981 0.985 1968 0.054 1975 0.903 1982 0.989 1969 0.139 1976 0.937 1983 0.988 1970 0.263 1977 0.954 1984 0.992 1971 0.423 1978 0.978 1972 0.611 1979 0.978 出 処 : 回 帰 分 析 の 基 礎 早 川 毅 著 朝 倉 出 版 ( 経 済 企 画 庁 調 査 局 消 費 者 動 向 調 査 による) > 年 度 <-c(1966:1984) > 普 及 率 <-c(0.003,0.016,0.054,0.139,0.263,423,0.611,0.758,0.859,0.903,0.937,0.954,0.978,0.978, 0.982,0.985,0.989,0.988,0.992) > tv<-glm( 普 及 率 ~ 年 度,family=binomial) 関 数 glm による 当 てはめ 値 は fitted で 返 すことができる 図 2 にカラーテレビの 普 及 率 の 実 測 値 と 関 数 glm を 用 いたロジスティック 回 帰 モデルの 予 測 値 の 折 れ 線 プロットを 示 す 5
>plot( 年 度, 普 及 率,type="l") >lines( 年 度,fitted(tv),lty=2,col="red",lwd=2) >legend(1975,0.5,c(" 実 測 値 "," 予 測 値 "), col=1:2,lty=1:2) 関 数 predict でリンク 関 数 空 間 上 の 予 測 値 を 返 すことができる ただし 次 のように 引 数 type を 指 定 すると fiitted と 同 じ 結 果 が 返 される >predict(tv,type= response ) 関 数 glm の 要 約 の 出 力 は 関 数 lm と 同 じく summary を 用 いる 図 2 実 測 値 と 予 測 値 の 折 れ 線 プロット (2) 2 値 データのロジスティック 回 帰 分 析 関 数 glm の 二 項 分 布 を 用 いて 2 値 (binary)になっている 被 説 明 変 数 を 予 測 するモデルを 構 築 することも 可 能 である ここでは R の 中 のデータ ToothGrowth を 用 いて 説 明 する データ ToothGrowth は 各 々10 匹 のギニアピッグ(モルモット)の 造 歯 細 胞 ( 歯 )の 成 長 につい て ビタミン C の 投 与 量 (0.5, 1, 2mg)を 異 なる 摂 取 法 (オレンジジュースまたはアスコルビン 酸 )で 計 測 を 行 った 60 行 3 列 の 実 験 データである 3 変 数 のラベルを 次 に 示 す [,1] len 歯 の 長 さ [,2] supp 摂 取 法 (VC 又 は OJ) [,3] dose 投 与 量 (0.5, 1, 2mg) 通 常 では このデータは 歯 の 長 さ が 摂 取 法 と 投 与 量 の 影 響 を 受 けているかを 分 析 するのに 用 いられているが ここでは 歯 の 長 さ と 投 与 量 を 説 明 変 数 とし どのよう な 摂 取 法 を 用 いたかを 予 測 する 例 題 の 題 材 とする データ ToothGrowth の 中 から 5 行 を ランダムサンプリングしたデータを 次 に 示 す 6
>data(toothgrowth) > samp<-sample(60,5) > ToothGrowth[samp,] len supp dose 50 27.3 OJ 1.0 53 22.4 OJ 2.0 11 16.5 VC 1.0 13 15.2 VC 1.0 32 21.5 OJ 0.5 関 数 glm では 被 説 明 変 数 が 2 値 の 場 合 は 引 数 famaily に 二 項 分 布 binomial を 指 定 する 関 数 glm による 使 用 例 を 次 に 示 す >attach(toothgrowth) >Tooth.glm<-glm(supp~len+dose, family=binomial) 結 果 の 要 約 は summary で 返 されるが ここでは 省 略 する ここで 興 味 を 持 っているのは 予 測 値 がどのような 形 式 であり 実 測 値 とどのような 関 係 を 持 っているかである 次 に 実 測 値 と 予 測 値 の 対 応 のサンプルを 示 す > 実 測 値 <-supp[samp] > 予 測 値 <-fitted(tooth.glm) > data.frame( 実 測 値, 予 測 値 [samp]) 実 測 値 予 測 値.samp. 50 OJ 0.1015566 53 OJ 0.7212634 11 VC 0.5292075 13 VC 0.5971142 32 OJ 0.1201745 関 数 glm では 2 値 のカテゴリカルデータを1 0のダミー 変 数 に 自 動 的 に 置 き 換 えて 計 算 を 行 う 返 された 予 測 値 は 確 率 データであり 確 率 の 値 はダミー 変 数 1(ここでは VC)に 対 す る 予 測 確 率 である よって 得 られた 予 測 値 の 値 が 小 さいとダミー 変 数 0(ここでは OJ)に 対 応 するカテゴリを 予 測 したことになる 2 値 データであるので 確 率 値 0.5 を 境 として 0.5 より 大 きければダミー 変 数 1 0.5 より 小 さければダミー 変 数 0であると 見 なすこともできる 四 捨 五 入 関 数 round を 用 いることで 予 測 値 を 0 1 で 返 すことができる > 予 測 値 1<-round( 予 測 値 ) > data.frame( 実 測 値, 予 測 値 1[samp]) 実 測 値 予 測 値 1.samp. 50 OJ 0 53 OJ 1 11 VC 1 13 VC 1 7
32 OJ 0 次 のように 関 数 teable を 用 いて 実 測 値 と 予 測 値 のクロス 表 を 作 成 することができる > table(supp, 予 測 値 1) 予 測 値 1 supp 0 1 OJ 17 13 VC 7 23 返 された 実 測 値 と 予 測 値 のクロス 表 から 分 かるように カテゴリ OJ の 場 合 は 30 の 中 の 17 が 正 しく 予 測 され VC では 30 の 中 の 23 が 正 しく 予 測 されている このような 回 帰 分 析 応 用 法 は 一 種 の 2 群 判 別 分 析 として 解 釈 することもできる 関 数 attach(toothgrowth)を 用 いた 場 合 は ToothGrowth の 解 析 が 終 ったら 次 のように 関 数 detach を 用 いて 検 索 リストから 切 り 離 すことをお 薦 めする >detach(toothgrowth) 3. 分 散 分 析 と 一 般 化 線 形 モデル 通 常 の 分 散 分 析 は 線 形 モデルである 例 えば 一 元 配 置 の 分 散 分 析 モデルは 次 のように 被 説 明 変 数 は 平 均 と 誤 差 の 線 形 式 で 表 し 残 差 εij は 正 規 分 布 に 従 うと 仮 定 している yij = μ i R では 回 帰 モデルの 結 果 から 分 散 分 析 の 結 果 を 返 すことができる ここでは 異 なる 6 種 類 の 農 薬 を 散 布 し 昆 虫 への 薬 剤 噴 霧 の 効 果 を 調 べた 農 業 実 験 データ InsectSprays を 用 いるこ とにする データ InsectSprays は 2 変 数 72 個 の 観 測 値 を 持 つデータフレームである 次 にその 2 変 数 のラベルを 示 す [,1]count 昆 虫 の 数 [,2]spray 噴 霧 剤 の 種 類 (A,B,C,D,E,F) > data(insectsprays) > InsectSprays[1,] count spray 1 10 A 6 種 類 噴 霧 剤 ごとの 箱 ひげ 図 を 図 3 に 示 す 図 3 から 噴 霧 剤 の 種 類 によって 殺 虫 効 果 が 明 らかに 異 なることが 読 み 取 られる + ε ij 8
図 3 InsectSprays の 箱 ひげ 図 次 に 関 数 lm,glm の 結 果 に 関 数 aov anova を 用 いた 分 散 分 析 の 例 を 示 す 結 果 から 3 種 類 の 結 果 は 基 本 的 に 同 じであることが 分 かる >attach(insectsprays) >summary(aov(count~spray)) Df Sum Sq Mean Sq F value Pr(>F) spray 5 2668.83 533.77 34.702 < 2.2e-16 *** Residuals 66 1015.17 15.38 --- Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1 >anova(lm(count~spray)) Analysis of Variance Table Response: count Df Sum Sq Mean Sq F value Pr(>F) spray 5 2668.83 533.77 34.702 < 2.2e-16 *** Residuals 66 1015.17 15.38 --- Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1 >anova(glm(count~spray,family=gaussian),test="f") Analysis of Deviance Table Model: gaussian, link: identity Response: count Terms added sequentially (first to last) Df Deviance Resid. Df Resid. Dev F Pr(>F) NULL 71 3684.0 spray 5 2668.8 66 1015.2 34.702 < 2.2e-16 *** 9
--- Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1 次 に 関 数 glm の 正 規 分 布 を 用 いた 場 合 とポアソン 分 布 を 用 いた 場 合 の 当 てはめの 良 さについ て 比 較 してみる 当 てはめの 良 さの 判 断 基 準 は AIC を 用 いる >AIC(glm(count~spray,family=gaussian)) [1] 408.8494 >AIC(glm(count~spray,family=poisson)) [1] 376.5892 AIC の 値 からポアソン 分 布 を 用 いた 場 合 の 当 てはめが 正 規 分 布 を 用 いた 場 合 より 良 いと 判 断 される 次 にポアソン 分 布 による 分 散 分 析 の 結 果 を 示 す >anova(glm(count~spray,family=poisson),test="f") Analysis of Deviance Table Model: poisson, link: log Response: count Terms added sequentially (first to last) Df Deviance Resid. Df Resid. Dev F Pr(>F) NULL 71 409.04 spray 5 310.71 66 98.33 62.142 < 2.2e-16 *** --- Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1 >detach(insectsprays) このデータではいずれの 方 法 でも Pr(>F)が 非 常 に 小 さいので < 2.2e-16 ( 2.2 10 より 小 さい 値 )が 返 されている しかし F 値 はポアソン 分 布 の 場 合 は 62.142 で 正 規 分 布 の 34.702 より 大 きく 同 じではないことが 分 かる 16 10
a be cx y
a y be cx
y a bx cx dx
yxx x y a bx y x
yafx fx fx i i fx n n y x if i f i
G G m l x x x m x x x l x x x m x x k x ij G k i j G m G l x l x n x n x mn x n x n x ln G G G G n n j j m j x j x j x mj j x j x j x l lj G G H Hx h x h x hn jn H G D G D D D H G D D H G DXX t S X X S
S XS
a a x a x a k x k yx x
f LD x x x x c x x x x c
n n n n n n n n n n n n
n n n
y y y y y y y
p ik k p ik p ik k p ik i k
n n
n n
p i p i i N ij p i p i i, j N N ij N ij j N N
図7 パフォーマンスの結果画面 ④Runタブをアクティブ化し [Start]ボタン を押し 計算を開始させる 図4 計算が終了した画面 図8 独立したパフォーマンスの結果画面 ⑤計算が終了したら Analyseタブをアクテ ィブ化し [Experiment]ボタンをクリッ クする 図5 Analyseタブの画面 Test outputのウィンドウに返された結果は [Save output]ボタンを用いて 保存すること ⑥[Perform test]ボタンを押すとtest output ができる のウィンドウに結果が返される 2. KnowledgeFlowの環境と機能 図6 実行結果の画面 KnowledgeFlowとは WEKAのGUI 図1 には KnowledgeFlowと いうボタンが設けられている KnowledgeFlow は データの処理システムを コンポーネン ト component 構成要素 部品 アイコン を組み合わせて自由に構築するグラフィカル 環境である さらに 図7のような操作を行うと 図8 KnowledgeFlowは発展途上であり WEKA のような独立したパフォーマンスの結果を返 の classifiers と filters のすべての機能 すウィンドウが開かれる が実装されているが clustering の機能の 実装は若干遅れている その一方 Explorer 2005年5月 No.134 ESTRELA 69
yfu u u yfu e u uw i x i n i y fu u u x i w i w i w i x x x x n w w w w n x i w i n uw i x i i fu
y k k w hk h h w ih x i h i
x x x q w w w q w jw jo net w j j w j j O net w j
x x z z x x x
x x x i x x i z z z z x x z x x x x z x x z x x z z z z x x z z a x a x x x a a mnx x x n X mn X mn x x x i x n x x x x j x n x x j x n i x i x i x ij x in m x m x m x mj x mn n kk n z a x a x a n x n z a x a x a n x n z j a j x a j x a nj x n z k a k x a k x a nk x n z z A nk X m n A n k z j Z m k Z m k X mn A nk Z mk X mn A nk
j k x a a a j a k x a a a j a k x i a i a i a ij a ik x n a n a n a nj a nk A nk z X m n i Z z z j j z k k z z z j z k z z z j z k i z i z i z ij z ik m z m z m z mj z mk Z mk j k q q
n kk n q
k X mn x x x i x n x x x x j x n x x j x n i x i x i x ij x in m x m x m x mj x mn f jk f k i A nkf mk
x i a f i a f i a k f ik e i x i a f i a f i a k f ik e i x ij a j f i a j f i a jk f ik e ij x in a n f i a n f i a nk f ik e in im k x i k x i k x ij x in A nk j j jk n n nk k f f f k f f f k i f j f j f jk m f n f n f nk F mk
Benzécri F rc x x x j x c f f f j f c f f f j f c i r f i f i f ij f ic f r f r f rj f rc f f f j f n f f f i f r n
F rc n Prc f ij P ij irjc n x x x j x c P P P j P c P P P j P c i r P i P ij P ic P i P rc P r P r P rj P rc P P P j P n FrcPrc Q Z t Z Q t ZZ t U V ij f ijf i f j n f i f j n p j p i Dc UDr V DcP jdrpi f ij f i f j n ijnn f i f j f ij f i f j n z ij n f i f j P P P i P r p ijp ip j p i p j p ijp ip j p i p j x x x j x c Z Z Z j Z c Z Z Z j Z c i r Z i Z i Z ij Z ic Z rc Z r Z r Z rj Z rc QZ t Z k k rankq rc r c k f ij f i f j n n i i j f i f j n i
m n i j d ij d ij ij
x x x k x n x x x k x n x x x k x n i j m X mn x i x i x ik x in x j x j x ik x in x m x m x mk x mn D mm j m d d i d m d d j d m i m d i d i d m d m d ij d im d mj n ed ij x ik x jk k cd ij x ik x jk n k n md ij p x ik x jk p k
d ij d ij d ji d ij d jk d ik x k ik x i x jk x j r ij r ij n n x k ik x i x k jk x j n n x k ik x jk ps ij ps ij n n x k ik x k jk rd ij r ij pd ij ps ij D m m Z m m d ij d ij d ij m m m m z ij d ij i m jm i jm
dij d ij d ij d ij
d ij d ij STRESS d ijd ij d ij STRESS d ijd ij d STRESS ij d ij d ij ij d ij ij d ij
x x x m x x x m x n x n x mn d c d m d m c m c m
d ij d ijk d ik d jk i j d ijk i d ik j d jk d ij d ik d jk
n i c i i j i j n i n i n i n k n j n j n j n k n k n i n j n i n j n i n j n k n i n j n i n j n i n j n k n i n j n k
j x j x j x j x jn k i k m i m i m i m in x j m c x j m c minx j m i i m i mt m ith tx ci tm j tin i c i m it in c htt r cr i ci t
h ci t c i x j h ci t t r c r i c i t c N c t t t T t T T j m
[ 連 載 ]フリーソフトによるデータ 解 析 マイニング 第 31 回 Rとカーネル 法 サポートベクターマシン 1. カーネル 法 とは 図 1 に 示 すように 非 線 形 データ 構 造 を 線 形 構 造 に 変 換 することができれば 線 形 データ 解 析 手 法 で 非 線 形 データを 容 易 に 扱 うことができる 図 1 変 換 による 線 形 化 のイメージ データを 変 換 することで 非 線 形 構 造 を 線 形 構 造 に 変 換 することが 可 能 である 例 えば 図 2(a)に 示 す 2 次 元 平 面 座 標 系 ( x, y ) 上 の 4 つの 点 A1(1,1) A2(1,-1) A3(-1,-1) A4(-1,1)を 考 えよう 仮 に A1 と A3 がひとつのクラス A2 と A4 がひとつのクラスだとすると 平 面 上 で クラスの 境 界 線 を 一 本 の 直 線 で 引 くことができない しかし 新 しい 変 数 z = xy を 導 入 し 2 次 元 平 面 ( x, y ) 上 の 4 つの 点 を 3 次 元 空 間 ( x, y, z )に 射 影 すると A1(1,1,1) A2(1,-1,-1) A3(-1,-1,1) A4(-1,1,-1)になり 両 クラスは 平 面 で 切 り 分 けることが 可 能 である 例 えば, z = 0 の 平 面 を 境 界 面 とすることができる 図 2 データ 写 像 の 例 (a) (b) 図 1 では 関 数 φ(x) を 用 いて 個 体 の 特 徴 属 性 ベクトルについて 変 換 を 施 している 関 数 φ(x) は 通 常 高 次 元 への 写 像 関 数 で x を 入 力 空 間 変 換 された F を 特 徴 空 間 と 呼 ぶ 従 来 のデータ 解 析 方 法 では 高 い 次 元 のデータを 低 次 元 に 縮 約 して 分 析 を 行 う その 典 型 的
な 方 法 としては 主 成 分 分 析 因 子 分 析 対 応 分 析 多 次 元 尺 度 法 などがある データを 高 い 次 元 の 特 徴 空 間 に 射 影 すると 非 線 形 問 題 を 線 形 問 題 に 置 き 換 えることが 可 能 で あるが 計 算 量 が 増 える カーネル(kernel) 法 は データを 高 次 元 に 射 影 し 線 形 問 題 に 置 き 換 えると 同 時 に 計 算 量 の 問 題 を 解 決 する 技 法 である カーネル 法 では 射 影 された 高 次 元 のデータを 直 接 計 算 するのではなく 任 意 の 個 体 x, z を 変 換 した φ (x) φ(z) の 内 積 φ( x), φ( z) のような 処 理 を 借 りて 間 接 的 に 高 次 元 のデータについて 計 算 処 理 を 行 う このようなデータの 変 換 と 内 積 のような 演 算 を 組 み 合 わせた 関 数 をカーネル 関 数 と 呼 び K( x, z) = φ( x), φ( z) のように 表 記 する カーネルに 関 する 厳 密 な 定 義 やカーネル 関 数 の 性 質 などについては[1] [3] [4]が 詳 しい カーネル 法 を 取 り 入 れた 幾 つかのデータ 解 析 方 法 が 提 案 されている 例 えば カーネル 主 成 分 分 析 カーネル 正 準 相 関 分 析 カーネルクラスター 分 析 カーネル k 平 均 ほう カーネル 回 帰 分 析 カーネル 判 別 分 析 などがある 本 稿 では カーネル 主 成 分 分 析 とカーネル 法 による 分 類 器 サポートベクターマシンについて 紹 介 する 2 カーネル 主 成 分 分 析 カーネル 主 成 分 分 析 (KPCA; kernel principal component analysis)は 非 線 形 主 成 分 分 析 と も 呼 ばれている カーネル 主 成 分 分 析 には 幾 つかのアルゴリズムが 提 案 されているが その 大 まかな 流 れは 次 のステップを 取 る (1) カーネル 関 数 K( x, z) を 決 める (2) データから 写 像 行 列 K m m を 求 める (3) K m m の 固 有 値 と 固 有 ベクトルを 求 める (4) 固 有 値 と 固 有 ベクトルを 正 規 化 する 2.1 パッケージと 関 数 パッケージ kernlab には,カーネル 主 成 分 分 析 の 関 数 kpca がある パッケージ kernlab は CRAN ミラーサイトからダウンロードできる 次 に 関 数 kpca の 書 き 式 を 示 す kpca(x, kernel = "rbfdot", features=0, kpar= list(sigma = 0.1),...) 引 数 x はマトリックスとデータフレーム 形 式 のデータである 引 数 kernel では 用 いるカー ネル 関 数 を 指 定 する デフォルトには"rbfdot"(ガウシアン)が 指 定 されているが これ 以 外 に カーネル 関 数 "polydot"( 多 項 式 ) "vanilladot"( 線 形 ),"tanhdot"(タンジェント) "laplacedot"(ラプラシアン) "besseldot"(ベッセル) "anovadot"(anova RBF) "splinedot"(スプライン)が 用 意 されている これらの 関 数 は [2]に 定 義 されている 引 数 features では 求 める 主 成 分 の 数 を 指 定 する デフォルトはゼロになっている 引 数
kpar はカーネル 関 数 に 用 いるパラメータを 指 定 する 結 果 としては 固 有 値 eig(), 主 成 分 ベクトル kpc() 用 いたデータの 主 成 分 得 点 pcv() 回 転 射 影 後 の 主 成 分 得 点 rotated()が 返 される 2.2 カーネル 主 成 分 分 析 の 例 す 次 にデータ iris を 用 いた 主 成 分 得 点 の 散 布 図 を 作 成 するコマンドとその 結 果 を 図 3(a)に 示 > library(kernlab) > x<-as.matrix(iris[,1:4]) > iris.kpc1<-kpca(x,kernel="rbfdot", features=2,kpar=list(sigma=0.1)) > plot(pcv(iris.kpc1), col=as.integer(iris[,5])) カーネル 主 成 分 析 法 は 古 典 的 主 成 分 分 析 方 法 と 異 なり 用 いるカーネル 関 数 および kpar のパラメータによって 返 される 結 果 が 異 なる カーネル 関 数 を kernel="polydot" kpar のパラ メータを list(degree =1))にしたコマンドラインとその 結 果 を 図 3(b)に 示 す > iris.kpc2<-kpca(x,kernel="polydot", kpar= list(degree= 1),features=2) > plot(pcv(iris.kpc2), col=as.integer(iris[,5])) 図 3 iris のカーネル 主 成 分 得 点 散 布 図 (a) (b) このようにカーネル 関 数 kpar のパラメータは 主 成 分 の 結 果 に 大 きく 影 響 する どのような カーネル 関 数 を 用 い kpar のパラメータをどのような 値 にするべきであるかに 関 しては 用 い るデータに 依 存 するので 経 験 に 頼 るのが 現 状 である
返 された 主 成 分 ベクトル kpc()は 新 しいデータを 当 てはめるときの 学 習 モデルとして 用 い る 次 に iris.kpc の 結 果 を 用 いて 新 しいデータ new.data を 当 てはめる 書 き 式 を 示 す predict(kpc(iris.kpc),new.data) 3 サポートベクターマシン サポートベクターマシン(SVM; support vector machine)は 分 類 と 回 帰 問 題 を 主 としたデー タ 解 析 方 法 で 広 く 知 られるようになったのは 1990 年 代 の 中 頃 であり Vapnik,V の 貢 献 が 高 く 評 価 されている support vector machine をサポートベクターマシンと 訳 するかそれともサ ポートベクトルマシンと 訳 するかについては 議 論 があるが 本 稿 ではサポートベクターマシン と 呼 ぶことにする SVM は 高 次 元 の 分 類 問 題 が 得 意 であると 言 われている SVM は カーネル 関 数 の 力 を 借 りて 線 形 分 離 可 能 な 高 次 元 の 空 間 で 線 形 的 なアプローチで 学 習 を 行 うアルゴリズムである 学 習 データ 集 合 ( x 1, y1 ) ( x 2, y2 ) ( x m, ym )があるとする この x = ( x1, x2, L, xn ) は 個 体 の 特 徴 ベクトル y は 目 的 変 数 である y は 回 帰 問 題 では 数 値 分 類 問 題 ではクラスのラベルであ る 通 常 の 線 形 回 帰 と 線 形 判 別 の 問 題 では 次 に 示 す 線 形 モデルを 用 いる. 図 4における 点 線 上 の 個 体 をサポートベクターと 呼 ぶ y = p f (x) = w x i=1 i i + b 図 4 SVM のイメージ 初 期 の SVM は 2 群 線 形 分 類 器 として 提 案 されたが, 多 くの 改 良 が 施 されている.その 1 つが,カーネル 法 を 用 いた SVM である カーネル 法 による SVM はカーネル 関 数 を 用 いて 次 に 示 す 線 形 関 数 で 表 されるが, 非 線 形 分 類 器 である
n f ( x) = β i K( xi, x) + b 式 の 最 適 化 は 特 徴 空 間 でクラス 間 のマージンを 最 大 にするアプローチで 行 う[3][4]. i=1 3.1 パッケージと 関 数 ここではパッケージ kernlab の 中 の SVM 関 数 ksvm を 紹 介 する 関 数 ksvm の 書 き 式 を 次 に 示 す ksvm(formula, data, kernel ="rbfdot", kpar=list(sigma = 0.1), type=null, cross = 0, ) 引 数 formula はモデルに 用 いるデータの 書 き 式 data は 用 いるデータ 引 数 kernel と kpar は 前 節 で 説 明 したカーネル 関 数 と 関 数 に 用 いるパラメータである 引 数 type では 分 類 と 回 帰 のタイプを 指 定 する デフォルトは 目 的 変 数 が 質 的 データの 場 合 は C-svc 分 類 法 量 的 データの 場 合 は eps-svr 回 帰 を 行 うように 設 定 されている 分 類 方 法 としては"nu-svc" "C-bsvc" 回 帰 方 法 としては"nu-svr" "eps-svr"が 用 意 されている 引 数 cross では n 重 交 差 確 認 法 の n を 指 定 する デフォルトはゼロになっている テストデータを 訓 練 結 果 へ 当 てはめる 関 数 は predict である 3.2 データと 関 数 の 使 用 例 パッケージ kernlab には 分 類 問 題 として 面 白 いデータセット spam が 用 意 されている デ ータセットは 4601 の 電 子 メールを 58 項 目 に 分 けて 記 録 したものである 第 58 列 がクラス 情 報 spam,nonspam で 残 りの 57 項 目 はメールの 特 徴 を 記 録 したものである この spam とは 受 け 取 りたくないのに 届 いた 迷 惑 メールを 指 す > library(kernlab) > data(spam);dim(spam) [1] 4601 58 > table(spam[,58]) nonspam spam 2788 1813 返 された 結 果 から 分 かるようにデータは 1813 の spam メールと 2788 の nonspam メールに より 構 成 されている データセットの 第 1 列 から 48 列 までは データ spam の 変 数 の 名 前 に 用 いた 文 字 列 がメールに 使 用 された 頻 度 である.ただし num857 のように num***になって いるのは,その 数 値 ***が 現 れた 頻 度 である 49 列 から 54 列 までは 記 号 ; ( [! $ #の 使 用 頻 度 55 列 から 57 列 は メールに 用 いられた 大 文 字 の 平 均 値 大 文 字 が 連 続 使 用 された
最 も 長 い 文 字 列 の 文 字 数 用 いられた 大 文 字 の 総 数 である まずデータセット spam から 訓 練 用 データとテスト 用 データを 作 成 する ここではサンプリ ング 方 法 を 用 いることにする 同 じサンプリング 結 果 を 再 現 するため 乱 数 のシード( 種 )を 関 数 set.ssed で 指 定 する 用 いるシードの 番 号 は 自 由 であるが ここでは 番 号 50 を 用 いる こ のシードを 用 いることにより 読 者 のマシン 上 でも 同 じ 乱 数 が 得 られる ここでは 訓 練 用 デー タの 個 体 数 を 2500 にし その 残 りをテスト 用 とする > set.seed(50) > tr.num<-sample(4601,2500) > spam.train<-spam[tr.num,] > spam.test<-spam[-tr.num,] 訓 練 データを 用 いて 学 習 を 行 い その 結 果 に 基 づいて 関 数 predict を 用 いてテストを 行 うこ とにする > spam.svm <- ksvm(type~.,data=spam.train, kernel="rbfdot",kpar=list(sigma=0.01)) > spam.pre <- predict(spam.svm, spam.test[,-58]) > (spam.tab<-table(spam.test[,58], spam.pre)) spam.pre nonspam spam nonspam 1226 56 spam 96 723 > 1-sum(diag(spam.tab))/sum(spam.tab) [1] 0.0723465 ランダムサンプリングした 2500 のメールを 用 いて 学 習 を 行 い 残 り 2101 のメールについて テストを 行 った 結 果 誤 判 別 ( 識 別 ) 率 は 約 0.0724 である 学 習 データを 用 いて 交 差 確 認 法 で 誤 判 別 率 などについて 考 察 を 行 うこともできる 交 差 確 認 法 の n を 10 にしたコマンドラインとその 結 果 を 次 に 示 す > (train.cro <- ksvm(type~.,data=spam.train,kernel="rbfdot",kpar=list(sigma=0.05), C=5,cross=10))
結 果 として 学 習 のエラーと 交 差 確 認 のエラーが 返 される 返 された 交 差 確 認 のエラーは 0.082 であ る この 値 は テストデータを 用 いて 行 ったテストの 結 果 0.072 と 大 きい 差 がない このように 交 差 確 認 法 を 用 いて 作 成 したモデルの 精 度 を 把 握 することができる 用 いるデータが 2 変 数 で 2 クラスに 分 類 する 問 題 の 場 合 は 関 数 plot を 用 いてカラフルな 散 布 図 を 作 成 することができる データ iris の 一 部 分 を 用 いた 例 のコマンド 次 に, 返 される 散 布 図 を 図 5に 示 す > set.seed(10) > y<-as.matrix(iris[51:150,5]) > iris1<-data.frame(iris[51:150,3:4],y) > ir.ksvm<- ksvm(y~.,data=iris1) > plot(ir.ksvm,data=iris1[,1:2]) > table(iris1$y,predict(ir.ksvm,iris1[,1:2])) versicolor virginica versicolor 48 2 virginica 3 47 図 5 irisのsvm 分 類 図 SVM classification plot 1.5 6 1.0 Petal.Length 5 4 0.5 0.0-0.5-1.0 3 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4 Petal.Width -1.5
3.3 回 帰 分 析 のケーススタディ 関 数 ksvm による 回 帰 分 析 の 書 き 式 は, 判 別 の 問 題 と 基 本 的 には 同 じである. 関 数 ksvm のパフォマンスを 示 すため, 多 項 式 回 帰 を 説 明 する 際 に 作 成 した 多 項 式 曲 線 の 人 工 データを 用 いることにする. > x1=seq(-10,10,0.1);set.seed(10) > y1=50*sin(x1)+x1^2+10*rnorm(length(x1),0,1) 説 明 変 数 を x1, 目 的 変 数 を y1 にした 関 数 ksvm の 使 用 例 のコマンドを 次 に 示 す. > xy.svm<-ksvm(x1,y1,epsilon=0.01,kpar=list(sigma=16)) > sy.pre<-predict(xy.svm,x1) > plot(x1,y1,type="l") > lines(x1,sy.pre,col="red",lty=2) > legend(locator(1),c(" 実 測 値 "," 予 測 値 "), lty=c(1,2),col=c(1,2)) 図 15.6 回 帰 問 題 における 実 測 値 と 関 数 ksvm の 予 測 値 4 その 他 パッケージ kernlab には データの 特 徴 を 分 析 するアルゴリズム 関 数 kfa(kernel Feature Analysis) カーネルヘッビアン(Kernel Hebbian)アルゴリズムによる 主 成 分 分 析 関 数 khc カ ーネル 準 相 関 分 析 関 数 kcca 適 合 ベクターマシン 関 数 rvm(relevance Vector Machine)などが ある 現 段 階 の 関 数 rvm は 回 帰 分 析 のみが 機 能 している カーネル 法 は 機 械 学 習 パターン 分 析 の 方 法 として 研 究 応 用 が 広 がりつつある カーネ ル 法 によるパターン 分 析 に 関 しては[1]が 詳 しい SVM は 狭 義 の 分 類 と 回 帰 問 題 だけではなく 自 然 言 語 処 理 などへも 応 用 されている カ ーネル 法 と SVM の 基 礎 理 論 に 関 しては [3] [4]が 詳 しい また SVM に 関 しては [5]がある. SVM は パッケージ klar e1071 にも 実 装 されている
カーネル 法 は 回 帰 平 滑 化 や 密 度 の 推 定 などにも 多 く 用 いる パッケージ stats には 平 滑 化 に 関 する 関 数 kernel kernapply ksmooth 密 度 を 推 定 する 関 数 density がある カーネル 法 による 関 数 ksmooth を 用 いたカーネル 回 帰 平 滑 化 の 例 のコマンドとその 結 果 を 次 に 示 す >attach(cars) >plot(speed, dist) >lines(ksmooth(speed, dist, "normal", bandwidth=1.3), col=2) >lines(ksmooth(speed, dist, "normal", bandwidth=4), col=3,lty=2) >detach("cars") 図 6 関 数 ksmooth によるカーネル 回 帰 平 滑 化 カーネル 法 による 平 滑 化 関 数 パッケージとしては KernSmooth ks があり パッケージ ade4 assist fields lattice splancs sandwich などにもカーネル 法 に 関 連 する 関 数 がある 参 考 文 献 [1] J.Shawe-Taylor and N. Cristianini (2004): Kernel Methods for Pattern Analysis, Cambridge. [2] Karatzoglou, A., Smola, A., hornik, K., Zeileis,A.(2004): kernlab-an S4 Package for Kernel Methods in R, Journal of statistical Software, Vol.11, Is.9, p.1-20. http://www.jstasoft.org [3] 麻 生 英 樹, 津 田 宏 治, 村 田 昇 (2003): パターン 認 識 と 学 習 の 統 計 学 新 しい 概 念 と 手 法, 岩 波 書 店 [4] 大 北 剛 訳 (2005): サポートベクターマシン 入 門, 共 立 出 版 [5] 前 田 英 作 (2001): 痛 快!サポートベクトルマシン - 古 くて 新 しいパターン 認 識 手 法 -, 情 報 処 理 学 会 誌, Vol.42, No.7, p.676-683
N m h B B h i i B B B Hxh B i Hxih i y i B
w i t T w ti y f t x t err t t w t i gw ti T Fx t fx t i
B
nnn
y n t y y y tk y t y t y t y tk y n y n
t y t y t y t y tk k y t y t y t y t y t y t
y y y n y n n y n t t y t y tk n C k y n t y tk tk R k C k C
C k f pfc k e ikf C C k kf C K y y y n C K n k p j C C k kf j k f j jnjn
y t ay t e t
t p t p y t a y t e t i a i i p p p pe t p a i
p y t y t y t y t e t
p q y t d d y t p d q p d q a i y t e t q b j e tj j p y t a i y t e t b j e tj i p i q j y t y t y t e t e t
p d q p d q p d q p d q p d q p d q p d q y t y t y t y t e t
d d p d q d
g t h t N g t h t h t h t i e ti q i q r h t i e tih tj i j g t h t
y t y t e t e t h t e th t p d q p d q
Y Y t p Y t Y t p Y n Y t A Y t A p Y t p E t A A A p E t
M t M t M t G t G t E t G t M t M t G t G t E t M MG GNP
ü
T ft tttt t t Tt F t t St StTttTFt t h t tttttt ft t St ht ft TtTt St St ht Ht t Ht htdtst
St t i t d i t i r i t i HtStHtSt Ht di ti t r i d i r i di HtStHt t i t r i k k F t StFt
St d i St t i t rr i i d i d i t i t rr i i d i S S t H H t se Sz ses Sz seh seh Hz H
h t h t t h tch t c t x x x m T h t r h t t hth tr m htht ht i x i i m M j PL j k krtj
j M t j R t j H H
g t t gt H gt g t i t gtgt S t gt
ftt Stt ht i i ftt t Stt htt t ft t t St ft ht St t ft t St t t ht t
X Y X X X X X X Y X Y suppxy XY M X Y XY X X XY suppxy confxy X suppx supp Y X Y X Y D t t t M I all i i i k t j I j I j I all X Y X Y I X Y Ø liftxy confxy suppy X Y X Y XY M supp X Y conf X Y lift X Y
D F I s D C k k L k k Ø C k apriori_genl k L k C k C kt subsetc k tc k
X Y X Y
AGCT A G C T A G C T A G C T A G C T A G C T A G C T A A A A G C T G C T C T G T G C ACGTATCG A G C T A G C T AGCT
A G C T R R A G Y Y C T GC G C A G C T A G C T AGCT R Y A G C T A A A A A A A A G C T G G G C C C G C T G G G C C C T T T T T T R R Y Y R Y R Y R Y GC
N n N n t Xx x x i x n X X x x x i x n X X x x x i x n X X Bx x x i x n X B
n x x x i x n x s n z z z i z n x i x z i s x x x i x n x n x x x i x n n u u u i u n u i x k x i x x x i x n B B B B B i i B sx i B i B biasx i B i B B B PrX x x x i B x x x
B t t t t F b F S Z
F b sf s F b c F b c ac a c a c Y y y y n X x x x m Y R X Y Y n Y Y X Y B B
a a a i a r b b b j b c n n n j n c n n n j n c n i n i r c n ij E ij i j E ij rc n ij i j E ij i j E ij i n i j n j n n i n j n n ij n ic n r n r n rj n rc n n nj nc E ij n in j n n n n i n r n re n ije ij E ij
n n n n n n n n n r c n G ij n ij i j E ij C V k n C n V n k n n n n n n n nn Y a a b n n n n n n n n n n n n n n C n n C n pn n C n n n n n n n n n n n b n n n n n n
p p p p pp p p n n n n n n n n
A P y y e y n n p np A y A A i A y i y i i e i P y i y i X
# KMLData<-paste('<?xml version="1.0" encoding="utf-8"?> ', '<kml xmlns="http://earth.google.com/kml/2.2">', '<Document>', '<name>poly.kml</name>', '<Placemark>', '<name>poly</name>', '<styleurl>#msn_ylw-pushpin</styleurl>', '<Polygon>', '<tessellate>1</tessellate>', '<altitudemode>relativetoground</altitudemode>', '<outerboundaryis>', '<LinearRing>', '<coordinates>', '139.7441431187752,35.66085751628702,50 139.7437770251541,35.65962355418283,50 139.7454177799272,35.65927100666627,50 139.7458381440458,35.66052699303938,50 139.7441431187752,35.66085751628702,50', '</coordinates>', '</LinearRing>', '</outerboundaryis>', '</Polygon>', '</Placemark>', '</Document>', '</kml>',sep='') KMLData2 <-paste("<?xml version= "1.0 " encoding= "UTF-8 "?>", <kml xmlns= http://earth.google.com/kml/2.1 ">", <Placemark>, <name>tokyotower</name>, <LookAt>, <longitude>139.4285</longitude>, <latitude>35.3874</latitude>, <altitude>0</altitude>, <range>316.3662914479763</range>, <tilt>0</tilt>, <heading>6.199453434125936</heading>, </LookAt>, <Point>, <coordinates>139.745408,35.658617,0</coordinates>, </Point>, </Placemark>, </kml>,sep="") GEI<-comCreateObject("GoogleEarth.ApplicationGE") cominvoke(gei,"loadkmldata",kmldata) cominvoke(gei,"loadkmldata",kmldata2)
s i s s s i s i s i s n q u q u q
f r c c c f r rn r r f r f r f
i x i x x n x x x n nx i i n
A A A A A A A A A A A A A N A i x i x i N N P A i x i N N P A i x i N N N
P A i P A i A j ij Φ P A i P A i A A Φ A A n i AB P A B B A P AB i A i A A A A n i n A i A A A A n i PABPAPBA PBPAB PAB PAB PB P AB PAB PAB PB PAPBA PB P A A P AB B A A A i A n A i P B n PA i PBA i i PA k PBA k PA B k n PA i i PBA i
n EXx i PXx i x i i EaXbYaEXbEY EXYEXEY XY ab i X X x x x i PXx i PA xi PXx i i VarXEXEX EX EX X n EX x i PXx i x i i VarX i X EX EXx i PXx i i X fx EXx fxdx VarXx fxdx
PXx n C x p x p n x n x p EXnpVarXnpp x x PXxpq x x p qp X EX pp VarX pp p i f i f i i x i x i PXxpq x x p qp n xx i p i i f i p x q p q P pp NP p i
x i f i NP i P i ė x PXxe x x e e n np ˇ x i x f i p i x PXxe x x xexx i p i i x
x PXxe x x x P NP P e NP x i f i NP i P i PaXb PaXb fxdx f x fxe x N b a
Y X N X fxe x x EX e VarX e e
X x x x n p f X fx fx x x x x n f X Lfx fx fx n fx n n i
c n i Np i i Np i c c n n n c N p p p c Np Np Np c N
n B B B n B k k n M m m Mm M B k m T k