いっかくのデータサイエンティストをいく

1からプログラミングとデータサイエンスを独習したい

【統計学】多重共線性

回帰分析で気を付けないといけないことの一つが多重共線性です。 多重共線性とは、説明変数のうち、相関係数の近い2変数を利用すると個々の説明変数の効果が確認できなくなる症状のことを言います。

具体例で説明しましょう。いつものサッカーの試合数で得点が勝数に影響しているか回帰分析してみます。

#データ
#勝数
wins  <- c(22, 20, 20, 18, 17, 18, 13, 13, 13, 13, 13, 13, 13, 12, 12, 5, 6, 4)
#得点
score <- c(67, 84, 80, 60, 68, 62, 51, 47, 49, 50, 57, 43, 56, 46, 42, 32, 44, 38)

#回帰分析
result1 <- lm(wins ~ score)
summary(result1)

結果がこちら

f:id:imakoto0323:20180623220749p:plain

得点の多さは勝数の多さに有意に影響を与えていると判断できます。

ここにアシストを加えて得点とアシストが勝数に影響を与えているか検証します。

ちなみに先に言っておくとアシストは得点から作った変数で

#アシスト
assist <- c(130, 169, 161, 122, 133, 121, 103, 97, 100, 110, 111, 90, 117, 86, 84, 64, 88, 76)

cor(score, assist)
#[1] 0.9911369

相関係数は0.99と超高めです。普通なら得点もアシストも勝数の多さにいい影響を与えるはず*1なのですが。

result2 <- lm(wins ~ score + assist)
summary(result2)

f:id:imakoto0323:20180623221826p:plain

得点もアシストも効かなくなりました。

回帰分析に前には相関係数を調べることが大切です。

*1:説明変数を増やしたり減らしたりすると、被説明変数への影響(よく効きといいます)が変化します。聞いていた変数が効かなくなったりその逆もしかり。。。