インターネットデパート - 取扱い商品数1000万点以上の通販サイト。送料無料商品も多数あります。

多変量解析入門 ~ 次の半歩:因子分析、マハラノビスの距離 (R言語) ~:年代記4

価格: ¥0
カテゴリ: Kindle版
Amazon.co.jpで確認
[学習要綱]
-因子分析
 -共通性導出(主たる講義)
 -主因子法
 -SMC法
 -Rで実装
 -関数利用

-マハラノビスの距離
 -考え方(主たる講義)
 -公式導出
 -Rで実装
 -関数利用

*判別分析は対象外


[利用するデータ] 要コピペ。文字化け対策としてUTF-8で保存すること
-因子分析
数学,国語,物理
90,40,80
85,50,75
75,55,70
50,85,60
40,95,45
55,80,55
50,95,30


項目1,項目2,項目3,項目4,項目5,項目6
8,7,6,9,8,10
10,8,8,7,7,6
7,7,6,9,8,8
6,7,6,8,6,7
4,9,8,9,8,7
1,1,2,5,5,6
2,2,3,4,5,2
2,2,3,2,3,1
3,4,5,2,1,1
2,1,3,3,3,4


-マハラノビスの距離
x,y
50,55
60,65
70,75
80,85
90,95
100,105
65,60
75,70
85,80
95,90
60,70
70,80
80,90
90,100


[マハラノビスの距離]
-実装:紙面の関係上、平均値0を仮定

#求める距離の座標
x <- 20
y <- 10

#csvデータ読み込み
data <- read.csv("data.csv",fileEncoding="UTF-8",header=T )

#平均値保存
ave <- c ( mean ( data [ , 1 ] ) , mean ( data [ , 2 ] ) )

#平均値を0にする
data [ , 1 ] <- data [ , 1 ] - ave [ 1 ]
data [ , 2 ] <- data [ , 2 ] - ave [ 2 ]

#求める距離の座標(平均値を減算)
point <- c ( x - ave [ 1 ] , y - ave [ 2 ] )

#固有値
data_var <- var ( data )
e <- eigen ( data_var )

#基底変換
point_new <- point %*% e$vectors

#各座標を標準化
d_x <- point_new [1] / sqrt ( e$values[1] )
d_y <- point_new [2] / sqrt ( e$values[2] )

#各座標を2乗して加算
print ( d_x^2 + d_y^2 )


-公式導出(参考程度:本文は見やすく記述している)

固有値1,2 = p1 , p2

各ベクトル
| p11 p21 |
| p12 p22 |

#平均値0を仮定
距離2 = ( p11x + p12y )2 / p1 + ( p21x + p22y )2 / p2

#p11x + p12y = a
#p21x + p22y = b

a2/p1 + b2/p2

#ベクトル化

| a b | %*%

| a/p1 |
| b/p2 |
=
| a b | %*%

| 1/p1 0  | %*%
|  0 1/p2 |

| a |
| b |

・・・①


#別の話
#| a b |を元に戻す

| a b |
=
| p11x + p12y p21x + p22y |

#ベクトル化
| x y | %*%

| p11 p21 |
| p12 p22 |

・・・②


#別の話
#| a b |Tを元に戻す
| a |
| b |
=
| p11x + p12y |
| p21x + p22y |

#ベクトル化

| p11 p12 | %*%
| p21 p22 |

| x |
| y |

・・・③


#①の式に②と③を代入

| x y | %*%

| p11 p21 | %*%
| p12 p22 |

| 1/p1 0  | %*%
| 0  1/p2 |

| p11 p12 | %*%
| p21 p22 |

| x |
| y |


#P=
#| p11 p21 |
#| p12 p22 |
#D=
#| p1  0 |
#| 0  p2 |
# D-1=
#| 1/p1  0 |
#| 0  1/p2 |
#PT=
#| p11 p12 |
#| p21 p22 |

| x y | P D-1 PT | x y |T

#Pは正則行列→PT = P-1

| x y | P D-1 P-1 | x y |T

・・・④


#別の話:行列の対角化
#Aは分散共分散
AP=PD・・・一般的に知られた式

#A-1を左からかける
A-1AP=A-1PD
P=A-1PD

#...操作省略(本文では省略していない)

PD-1P-1=A-1

#④の式に代入
| x y | A-1 | x y |T

導出終了(平均値0を仮定)