rによる主成分分析 入門

36

Upload: hiro47

Post on 23-Jun-2015

3.848 views

Category:

Data & Analytics


3 download

TRANSCRIPT

Page 1: Rによる主成分分析 入門
Page 2: Rによる主成分分析 入門

主成分分析って? 多変量のデータを統合し、

新たな総合指標を作り出すための手法。

多くの変数に重みをつけて

少数の合成変数を作るのが主成分分析です。

2 参考:マクロミル http://www.macromill.com/landing/words/b007.html

Page 3: Rによる主成分分析 入門

使うデータ

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/

Page 4: Rによる主成分分析 入門

Plotしてみる

4

2次元のプロットが14C2=91通りもできるんだから、1枚ずつ見ていったら切りがない!

Page 5: Rによる主成分分析 入門

分析しづらいから もっと変数を減らし

て!!

5

Page 6: Rによる主成分分析 入門

分析手順

下図のZk(k=1,2,…,n)の分散が最大に なるようなa11~annを決める。           

6

第1主成分 第2主成分 第 n 主成分

(防御率・試合数・四球 etc.)

Page 7: Rによる主成分分析 入門

わかりにくいので、2次元で考える

7

名 前 投球回 被安打

菅野 176 166

藤浪 137.2 119

前田 175.2 129

田中 212 168

摂津 162.1 138

大谷 61.2 57 ※ 計113投手

Page 8: Rによる主成分分析 入門

わかりにくいので、2次元で考える

8

Page 9: Rによる主成分分析 入門

わかりにくいので、2次元で考える

9

先ほどのZkの分散が最大になるように新たな軸となる線をひく。

Page 10: Rによる主成分分析 入門

わかりにくいので、2次元で考える

10

それぞれの点から垂線を下ろしたときの交点が、主成分得点となり、1次元で表せるようになった。

先ほどのZkの分散が最大になるように新たな軸となる線をひく。

Page 11: Rによる主成分分析 入門

わかりにくいので、2次元で考える

11

先ほどのZkの分散が最大になるように新たな軸となる線をひく。 情報損失

第2主成分以降はこの情報損失を補うようにしていく

それぞれの点から垂線を下ろしたときの交点が、主成分得点となり、1次元で表せるようになった。

Page 12: Rによる主成分分析 入門

なんでZkの分散が最大に なるようにとるの?

12

Page 13: Rによる主成分分析 入門

直感的なお話

13

適切な軸をとらないと、情報の損失が起き、データどうしの距離が近くなってしまう。

分散が小さくなる

Page 14: Rによる主成分分析 入門

数学のお話

14 参考文献: http://racco.mikeneko.jp/Kougi/10s/AS/AS06pr.pdf

Page 15: Rによる主成分分析 入門

数学のお話

15 参考文献: http://racco.mikeneko.jp/Kougi/10s/AS/AS06pr.pdf

これだとa1,a2はいくらでも大きくできてしまう

Page 16: Rによる主成分分析 入門

数学のお話

16 参考文献: http://racco.mikeneko.jp/Kougi/10s/AS/AS06pr.pdf

そこで制約条件を考える

x2

x1

θ1 θ2

1

a1

a2

つまり、a1とa2の比(=主成分の傾き)+原点となる基準点(=重心)を考えることで、分散が大きくなり続けることを制限している

max. s.t.

Page 17: Rによる主成分分析 入門

数学のお話

17 参考文献: http://racco.mikeneko.jp/Kougi/10s/AS/AS06pr.pdf

分散共分散行列! 固有値問題になった!

Page 18: Rによる主成分分析 入門

ここで…

18

先ほどの上式の①に×a1、②に×a2をして足すと

…① …②

(∵制約条件)

となり、λはZkの分散であることがわかった。

max. s.t.

Page 19: Rによる主成分分析 入門

これに関連して…  軸を最適にしようというのはわかった。

が、まだ問題がある。

19

 一般にデータは列ごとに単位が異なることが多い。  単位が違ったまま考えると分散・共分散を考えるときに、  大きく差が生じてしまう。

参考文献: http://racco.mikeneko.jp/Kougi/10s/AS/AS06pr.pdf

Page 20: Rによる主成分分析 入門

これに関連して…

20 参考文献: http://racco.mikeneko.jp/Kougi/10s/AS/AS06pr.pdf

そこで!

 軸を最適にしようというのはわかった。

が、まだ問題がある。

 一般にデータは列ごとに単位が異なることが多い。  単位が違ったまま考えると分散・共分散を考えるときに、  大きく差が生じてしまう。

Page 21: Rによる主成分分析 入門

21 参考文献: http://racco.mikeneko.jp/Kougi/10s/AS/AS06pr.pdf

標準化!

Page 22: Rによる主成分分析 入門

簡単のため2次元で考えて きましたが、多次元でも考え にくいだけで考え方は一緒です。

22

Page 23: Rによる主成分分析 入門

DEMONSTRATION

23

WITH

Page 24: Rによる主成分分析 入門

24

一致してる!

Page 25: Rによる主成分分析 入門

25

固有ベクトルなので、マイナスを外に出すかで結果が変わり ますが、結果的には一緒です

標準化 ver.

Page 26: Rによる主成分分析 入門

26

投球回 被安打

傾きを表してる

寄与率

Page 27: Rによる主成分分析 入門

多次元 Ver.

27

Page 28: Rによる主成分分析 入門

※再掲

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/

Page 29: Rによる主成分分析 入門

固有値・固有ベクトル

29

※標準化してます

Page 30: Rによる主成分分析 入門

主成分

30

※標準化してます

Page 31: Rによる主成分分析 入門

見づらいけど…

31

Page 32: Rによる主成分分析 入門

若干、マシ

32

奪三振 勝利

失点 自責点

フォアボール

Page 33: Rによる主成分分析 入門

寄与率

33

一般的に累積寄与率が0.8を超える主成分までを考慮するので、今回は第4主成分まで考える

Page 34: Rによる主成分分析 入門

解釈 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

Page 35: Rによる主成分分析 入門

まとめ •  変数を減らすことができたが、解釈に主観が入ってしまうため、使いどころが難しい。

•  この手法とクラスター分析などを組み合わせれば、解釈が多少容易になる。

•  量的変数だけでなく、質的変数でも得点化すれば、この手法が使えるので、アンケートデータなどの分析にも便利。

35

Page 36: Rによる主成分分析 入門