rによる主成分分析 入門
Post on 23-Jun-2015
3.848 Views
Preview:
TRANSCRIPT
主成分分析って? 多変量のデータを統合し、
新たな総合指標を作り出すための手法。
多くの変数に重みをつけて
少数の合成変数を作るのが主成分分析です。
2 参考:マクロミル http://www.macromill.com/landing/words/b007.html
使うデータ
3
名 前
チーム
防御率
試合数
勝 利
敗 北
セーブ
勝 率
投球回
被安打
被 H R
四 球
死 球
奪三振
失 点
自責点
菅野
巨人 3.12 27 13 6 0 0.684 176 166 10 37 5 155 70 61
藤浪
阪神 2.75 24 10 6 0 0.625 137.2 119 10 44 2 126 48 42
前田
広島 2.10 26 15 7 0 0.682 175.2 129 13 40 2 158 46 41
田中
楽天 1.27 28 24 0 1 1 212 168 6 32 3 183 35 30
摂津
バンク
ソフト
3.05 25 15 8 0 0.652 162.1 138 11 42 8 146 68 55
大谷
日ハム
4.23 13 3 0 0 1 61.2 57 4 33 8 46 30 29
※2013年の規定投球回1/3以上を投げてる113投手
分析で使うデータ グラフ用
データ元:プロ野球データFreak http://baseball-data.com/
Plotしてみる
4
2次元のプロットが14C2=91通りもできるんだから、1枚ずつ見ていったら切りがない!
分析しづらいから もっと変数を減らし
て!!
5
分析手順
下図のZk(k=1,2,…,n)の分散が最大に なるようなa11~annを決める。
6
第1主成分 第2主成分 第 n 主成分
(防御率・試合数・四球 etc.)
わかりにくいので、2次元で考える
7
名 前 投球回 被安打
菅野 176 166
藤浪 137.2 119
前田 175.2 129
田中 212 168
摂津 162.1 138
大谷 61.2 57 ※ 計113投手
わかりにくいので、2次元で考える
8
わかりにくいので、2次元で考える
9
先ほどのZkの分散が最大になるように新たな軸となる線をひく。
わかりにくいので、2次元で考える
10
それぞれの点から垂線を下ろしたときの交点が、主成分得点となり、1次元で表せるようになった。
先ほどのZkの分散が最大になるように新たな軸となる線をひく。
わかりにくいので、2次元で考える
11
先ほどのZkの分散が最大になるように新たな軸となる線をひく。 情報損失
第2主成分以降はこの情報損失を補うようにしていく
それぞれの点から垂線を下ろしたときの交点が、主成分得点となり、1次元で表せるようになった。
なんでZkの分散が最大に なるようにとるの?
12
直感的なお話
13
適切な軸をとらないと、情報の損失が起き、データどうしの距離が近くなってしまう。
分散が小さくなる
=
数学のお話
14 参考文献: http://racco.mikeneko.jp/Kougi/10s/AS/AS06pr.pdf
数学のお話
15 参考文献: http://racco.mikeneko.jp/Kougi/10s/AS/AS06pr.pdf
これだとa1,a2はいくらでも大きくできてしまう
数学のお話
16 参考文献: http://racco.mikeneko.jp/Kougi/10s/AS/AS06pr.pdf
そこで制約条件を考える
x2
x1
θ1 θ2
1
a1
a2
つまり、a1とa2の比(=主成分の傾き)+原点となる基準点(=重心)を考えることで、分散が大きくなり続けることを制限している
max. s.t.
数学のお話
17 参考文献: http://racco.mikeneko.jp/Kougi/10s/AS/AS06pr.pdf
分散共分散行列! 固有値問題になった!
ここで…
18
先ほどの上式の①に×a1、②に×a2をして足すと
…① …②
(∵制約条件)
となり、λはZkの分散であることがわかった。
max. s.t.
⇔
これに関連して… 軸を最適にしようというのはわかった。
が、まだ問題がある。
19
一般にデータは列ごとに単位が異なることが多い。 単位が違ったまま考えると分散・共分散を考えるときに、 大きく差が生じてしまう。
参考文献: http://racco.mikeneko.jp/Kougi/10s/AS/AS06pr.pdf
これに関連して…
20 参考文献: http://racco.mikeneko.jp/Kougi/10s/AS/AS06pr.pdf
そこで!
軸を最適にしようというのはわかった。
が、まだ問題がある。
一般にデータは列ごとに単位が異なることが多い。 単位が違ったまま考えると分散・共分散を考えるときに、 大きく差が生じてしまう。
21 参考文献: http://racco.mikeneko.jp/Kougi/10s/AS/AS06pr.pdf
標準化!
簡単のため2次元で考えて きましたが、多次元でも考え にくいだけで考え方は一緒です。
22
DEMONSTRATION
23
WITH
24
一致してる!
25
固有ベクトルなので、マイナスを外に出すかで結果が変わり ますが、結果的には一緒です
標準化 ver.
26
投球回 被安打
傾きを表してる
寄与率
多次元 Ver.
27
※再掲
28
名 前
チーム
防御率
試合数
勝 利
敗 北
セーブ
勝 率
投球回
被安打
被 H R
四 球
死 球
奪三振
失 点
自責点
菅野
巨人 3.12 27 13 6 0 0.684 176 166 10 37 5 155 70 61
藤浪
阪神 2.75 24 10 6 0 0.625 137.2 119 10 44 2 126 48 42
前田
広島 2.10 26 15 7 0 0.682 175.2 129 13 40 2 158 46 41
田中
楽天 1.27 28 24 0 1 1 212 168 6 32 3 183 35 30
摂津
バンク
ソフト
3.05 25 15 8 0 0.652 162.1 138 11 42 8 146 68 55
大谷
日ハム
4.23 13 3 0 0 1 61.2 57 4 33 8 46 30 29
※2013年の規定投球回1/3以上を投げてる113投手
分析で使うデータ グラフ用
データ元:プロ野球データFreak http://baseball-data.com/
固有値・固有ベクトル
29
※標準化してます
主成分
30
※標準化してます
見づらいけど…
31
若干、マシ
32
奪三振 勝利
失点 自責点
フォアボール
寄与率
33
一般的に累積寄与率が0.8を超える主成分までを考慮するので、今回は第4主成分まで考える
解釈 Z1 = 0.093 × 防御率 – 0.19 × 試合数 + 0.28 × 勝利 + 0.28 × 敗北 - 0.15 × セーブ +
0.04 × 勝率 + 0.34 × 投球回 + 0.35 × 被安打 + 0.31 × 被本塁打 + 0.29 × 四球 +
0.18 × 死球 + 0.28 × 奪三振 + 0.35 × 失点 + 0.35 × 自責点
⇒ 先発投手度 Z2 = - 0.58 × 防御率 + 0.31 × 試合数 + 0.34 × 勝利 – 0.18 × 敗北 + 0.22 × セーブ +
0.40 × 勝率 + 0.22 × 投球回 + 0.07 × 被安打 – 0.07 × 被本塁打 + 0.003 × 四球 - 0.02 × 死球 + 0.34 × 奪三振 – 0.18 × 失点 – 0.14 × 自責点
⇒ 点を取られない投手度 Z3 = - 0.15 × 防御率 + 0.41 × 試合数 - 0.18 × 勝利 + 0.41 × 敗北 + 0.47 × セーブ -
0.57 × 勝率 + 0.05 × 投球回 + 0.07 × 被安打 + 0.07 × 被本塁打 + 0.08 × 四球 -
0.14 × 死球 + 0.13 × 奪三振 + 0.06 × 失点 + 0.03 × 自責点
⇒ 抑え投手度 Z4 = - 0.04 × 防御率 – 0.07 × 試合数 + 0.02 × 勝利 – 0.03 × 敗北 – 0.31 × セーブ - 0.03 × 勝率 + 0.06 × 投球回 + 0.02 × 被安打 + 0.14 × 被本塁打 + 0.10 × 四球 -
0.91 × 死球 + 0.11 × 奪三振 – 0.04 × 失点 – 0.02 × 自責点
⇒ コントロールが良い投手度
34
まとめ • 変数を減らすことができたが、解釈に主観が入ってしまうため、使いどころが難しい。
• この手法とクラスター分析などを組み合わせれば、解釈が多少容易になる。
• 量的変数だけでなく、質的変数でも得点化すれば、この手法が使えるので、アンケートデータなどの分析にも便利。
35
top related