【python】データの相関係数を求める方法!np.corrcoefの使い方!

この記事では、python上でデータの相関係数を求める方法をご紹介していきます。

 

データ分析を行う際、相関係数は必須のチェック項目ですので、ぜひ使いこなせるようになっておきましょう。

 

それではさっそくやっていきます。

 

スポンサーリンク

サンプルデータの紹介

ただやり方だけをご紹介するだけではおもしろくないので、今回は以下のデータに対して実際に相関係数を算出してみましょう。

y1 y2 y3
1 1 8 8
2 5 7 6
3 7 1 4
4 11 8 1
5 16 9 -3

このデータをエクセルでグラフにすると以下のような感じ。

y1は正の相関、y2は相関なし、y3は負の相関がありそうですね。

 

実際にエクセルで相関係数も出してみました。

※今回はCORREL関数で算出してみました。

結果は以下の通りです。

 

これ以降、このエクセルで算出した

0.990867…, 0.147799…, -0.98722… という数値をpython上で算出していきます。

それではpythonでのプログラミングに移りましょう。

 

スポンサーリンク

pythonで相関係数を算出する方法

今回はnumpyライブラリの中のcorrcoefというスキルを使って相関係数を算出してみます。

 

numpyのcorrcoefの使い方は以下の通りです。

変数=np.corrcoef(xのデータ,yのデータ)[1,0]

 

最後の[1,0]って何?

と思っている人は多いと思いますので、この点について解説しておきます。

 

このnumpyのcorrcoefで算出されるデータは以下のような配列として出力されるようになっています。

xとxの相関係数 xとyの相関係数
yとxの相関係数 yとyの相関係数

今回はこの配列の中から、左下の数値を取り出すために、[1,0]を付けています。

(0を基準とした際の2行目と1列目の数値を取り出す)

 

まぁ深く考えないでcorrcoefを使ったらとりあえず[1,0]をつけておけばOKです。

 

スポンサーリンク

numpy.corrcoefの実際の使用例

使い方がわかったところで、早速実際に使ってみましょう。

今回は先ほど紹介したデータを記述したテキストファイルが、pythonコードを記述したファイルと同じフォルダに入っていることを想定してコードを書いていきます。

 

以下がそのテキストファイルです。

今回はdata.txtとして保存しています。

そして以下がこのデータから各データの相関係数を算出してくれるpythonコードです。

※xとy1, xとy2,xとy3の相関係数をそれぞれ算出しています。

 

import numpy as np
data=np.loadtxt('data.txt')
x=data[:,0]
y1=data[:,1]
y2=data[:,2]
y3=data[:,3]
corr1=np.corrcoef(x,y1)[1,0]
corr2=np.corrcoef(x,y2)[1,0]
corr3=np.corrcoef(x,y3)[1,0]
print(corr1)
print(corr2)
print(corr3)

 

このコードを実行すると以下の結果が出力されました。

print(corr1) : 0.9908673886137245
print(corr2) : 0.14779939172464396
print(corr3) : -0.9872177725716264

 

これは最初にエクセルで算出した数値と同じですね。

⇒numpyのcorrcoefの結果と、エクセルのCORREL関数の結果がしっかり一致していることが確認できました。

 

スポンサーリンク

おわりに

というわけで今回は、numpyのcorrcoefというスキルをつかって、データ群の相関係数を算出する方法をご紹介しました。

 

データ分析の際にぜひご活用ください。

このように、私のブログでは様々なプログラミングスキルを紹介しています。

今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。

確実にスキルアップできるはずです。
 
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
にほんブログ村 IT技術ブログへ
にほんブログ村

それではまた!

コメント

タイトルとURLをコピーしました