Pandas⑭ (相関を調べる)

相関を調べる

説明変数 として考えられる要因それぞれが 目的変数 とどれくらいの 相関があるかを調べます。

読み込むCSVファイルは以下の通りです。

20店舗について、各店舗ごとの売上額競合店(近隣の競合店の数)満足度(5段階評価)品揃え充実度(5段階評価)のデータになります。

sales.csv (文字コードUTF-8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
店舗,売上額,競合店,満足度,品揃え充実度
0,A店,7990,0,4,4
1,B店,8420,1,4,5
2,C店,3950,3,2,3
3,D店,6870,2,4,4
4,E店,4520,3,3,2
5,F店,3480,2,3,3
6,G店,8900,0,4,4
7,H店,6280,1,3,3
8,I店,8180,1,3,4
9,J店,5330,1,3,3
10,K店,3090,2,2,3
11,L店,8600,0,3,4
12,M店,3880,1,3,2
13,N店,7400,3,4,3
14,O店,4540,3,3,3
15,P店,3450,2,3,3
16,Q店,2350,3,2,2
17,R店,8510,1,4,4
18,S店,4450,3,3,3
19,T店,5320,2,3,2

相関関係を調べるにはNumPyの corrcoef関数 を使用します。

corrcoef関数 の引数には、相関を調べる2つのデータフレーム(列)を指定します。

[Google Colaboratory]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 3項目の要因の相関係数を調べる
import pandas as pd
import numpy as np
from sklearn import linear_model

# ファイルを読み込んでdfに格納
df = pd.read_csv('sales.csv')

# 競合店の数と売上額の相関係数を求める
print('競合店\n', np.corrcoef(df['競合店'], df['売上額']))
# 満足度と売上額の相関係数を求める
print('満足度\n', np.corrcoef(df['満足度'], df['売上額']))
# 品揃え充実度と売上額の相関係数を求める
print('品揃え充実度\n', np.corrcoef(df['品揃え充実度'], df['売上額']))

[実行結果]

競合店と売上額の相関-0.6692負の相関 になっていて、値が少ないほど売上が伸びる関係になっていることが分かります。

満足度と売上額の相関0.7756品揃え充実度と売上額の相関0.7803正の相関になっていて、値が増えるほど売上が伸びる関係になっています。