こんにちは。truestarの戸塚です。
データ分析をするときは、まずそのデータを理解することから始めます。
1系列であれば平均をとったりデータのばらつきをみるためにヒストグラムを描いたりしますね。
今回は2系列の関係を確認する相関分析について書いてみたいと思います。
相関係数とは
相関分析では、2つの変数の関係性の強さを「相関係数」を用いて表します。
相関係数は、2つの系列のデータについて線形関係があるかどうかを示す指標で、-1~+1の値を取ります。
・正であれば一方の値が大きい(小さい)ほど、もう一方の値も大きい(小さい)⇒「正の相関がある」という
・負であれば一方の値が大きい(小さい)ほど、もう一方の値は小さい(大きい)⇒「負の相関がある」という
例えば気温の上昇とアイスの売上に関係があるということは予想がつくと思いますが、相関分析によって相関係数を取るとその関係性の強さを数値で表すことができます。
では具体的な算出方法を見ていきましょう。
今回は、KaggleがOpen Databaseとして公開している以下の「従業員の離職(Attrition)についてのフィクションデータ」から、「MonthlyIncome」と「TotalWorkingYears」の関係を見てみたいと思います。
https://www.kaggle.com/pavansubhasht/ibm-hr-analytics-attrition-dataset/data
相関係数算出方法(エクセル篇)
データを用意したら、メニューのデータタブから「データ分析」「相関」を選択します。
(データ分析が出てこない場合にはアドイン一覧から追加してください)
設定画面が開きますので、①~④を設定します。今回は新しいシートに出力することにします。
OKを押す結果が出力されます。「MonthlyIncome」と「TotalWorkingYears」の相関係数は0.77ということが分かります。簡単です。
同様のやり方で複数のデータの相関マトリクスを求めることが可能です(入力範囲を複数列選択するだけ)。
ただし数値データ以外のデータ列が入っているとエラーになり結果は出力されませんのでのでご注意ください。
相関係数算出方法(Alteryx篇)
今回はPearson Correlation Toolを使用します。
データをインプットし、ピアソン相関ツールで変数を選択するだけです。
結果はこちら。
エクセルの時と同じ結果が得られました。こちらも簡単です。
「MonthlyIncome」と「TotalWorkingYears」だけを選びましたが、全て選択すると以下のようにマトリクスで確認できます。
ちなみにAlteryxの場合文字列データが入っていてもピアソン相関のところではじいてくれるようなので、気にせず回すことができます。
相関係数算出方法(Exploratory篇)
データをインポートしたら、アナリティクスタブでタイプ=相関、変数の列=「MonthlyIncome」と「TotalWorkingYears」を選択し実行を押します。
結果出ました。こちらも簡単です。
ヒートマップになっているので全変数選択した場合でも、相関関係の強い変数の組み合わせを見つけやすいですね。
文字列は選択できないようになっているので、Alteryx同様に気にせず回すことができます。
相関係数の落とし穴
見てきたようにツールを使えば簡単に相関係数を出すことができます。が、注意点もあります。
最初に書いた通り、相関係数は2系列のデータの「線形関係」を見るための指標です。
しかし、データ同士の関係は常に線形であるとは限りませんので、事前に必ず散布図を描いて分布を視覚的に把握する必要があります。(今回の記事ではやっていませんが…)
下記のように線形ではない関係が強い場合、相関係数を算出しても意味のある数値とは言えません。
数値情報だけではなく視覚情報もあわせて観察することが重要です。
また、相関係数は線形関係があるかどうかを見ているだけであり、因果関係(原因と結果)が保証されるものではありません。
さいごに
こちらも相関分析に関連した記事ですのであわせてご覧ください。
Multicollinearity Diagnostics in Exploratory
truestarでは様々なデータ分析業務を承っています。こちらからぜひご相談ください。