目次
相関関係とは何か?
今回は「相関」についてご紹介します
データ分析で必須の技術である「相関」を使いこなすことで、分析をより効率的に実施することができるようになります
まずは相関係数の定義から見ていきましょう
相関係数
2つのデータまたは確率変数の間にある線形な関係の強弱を測る指標である
相関係数は無次元量で、−1以上1以下の実数に値をとる。相関係数が正のとき確率変数には正の相関が、負のとき確率変数には負の相関があるという。また相関係数が0のとき確率変数は無相関であるという
Wikipedia
難しい説明が一部ありますが、「相関」とは2つのデータの関係性と理解してください
相関がある例
- 「身長」と「体重」
- 「レストランの売上」と「客数」
- 「外の気温」と「熱中症患者数」
上記の例は「正の相関」が高くなることで知られています
当たり前ですが「身長」が高ければ高いほど、「体重」も多くなります
つまり「身長」と「体重」には正の相関があると言えます
よくある間違い
相関に関してよくある間違いは、「負の相関=相関がない」という認識です
正しくは「0」は関係がなく、「1」か「-1」に近ければ関係が強くなります
相関係数がマイナスだから、相関が無いということではないので注意しましょう
なぜ相関を出すのか!?
データ分析を実施するときに非常によく使う相関ですが、どうして「相関」に注目する必要があるのでしょうか?
それは目的の数値に影響を与える要素を発見することができるためです
もう少し具体的にご説明します
レストランの「売上」を上げたいあなたは、データを使って分析することにしました
今回の分析の目的は、売上に影響を与える要素を明らかにすることです
持っているデータは「客数」「気温」「キャンペーン」だったので、まずは「客数」を調査してみることにしました
「売上」と「客数」の相関を算出し、散布図で可視化しました
調査の結果、「売上」と「客数」の間に強い相関があることが分かりました
上記の例では目的=売上に影響を与える要素として「客数」があることが分かりました
この分析の結果、「売上を上げるにはまず客数を増やそう!」と施策を取ることができます
リアルのデータで相関を出してみた
それでは実際のデータを使って、相関を出してみます
今回は「タイタニック号の沈没」というテーマを扱います(少し物騒ですが…)
※このデータは機械学習の初心者にとってよく使うデータです
それぞれの乗客が「生存したか」というデータに対して、「年齢」や「旅客クラス」などの情報を元に相関を算出します
そして、生き残ることに大きな影響を与えた要素を知り、今後の対策を行うことを実施します
では早速、それぞれのデータの相関を出してみましょう
各データそれぞれに対し、全ての相関を抽出しています
もちろん同じ項目同士は「1」となりますが、それ以外に注目します
- 「運賃」と「旅客クラス」は「-0.55」と負の相関となっている
- 「親・子」の数と「兄弟・配偶者」の数は「+0.41」と正の相関となっている
ちなみに「旅客クラス」は1等が豪華で、2等、3等となるにつれグレードが下がります
つまり「旅客クラス」が下がれば下がるほど、運賃が高くなるのは納得できます
そして今回の目的である「生存」したかどうかについて、別のグラフで見てみましょう
生存に大きく関係している=相関があるのは「運賃」と「旅客クラス」であることが分かります
そして実際、旅客クラスが良い(1等)の人は生存率が高くなっています
相関がある=因果関係があるは間違い
最後に相関と因果の違いについてご説明します
よく「相関があるから、因果関係もある」と間違えてしまうケースがよくあります
因果関係
ある事実と別のある事実との間に発生する、原因と結果の関係のことである
Wikipedia
因果関係とは「原因」のせいで「結果」が起こったということです
一方で相関関係は「A」と「B」に関係性があるということだけ
つまり「相関=因果」ではないことはしっかりと理解しておきましょう
まとめ
今回は「相関」についてご紹介してきました
「相関」とは2つのデータの関係性ということを実際のデータを使って説明してきました
そしてデータ分析ではデータ同士の関係性の強弱を見て、目的に影響を与える要素を発見していきます
ぜひ覚えて使ってみてください
またポケモンのデータを使って相関を分析しているので、興味がある方はぜひご覧ください
相関関係とは?分かりやすく解説|ポケモンで学ぶデータ分析