Python で相関テストを実行する方法 (例あり)
2 つの変数間の関係を定量化する 1 つの方法は、2 つの変数間の線形関連を測定するピアソン相関係数を使用することです。
常に -1 から 1 までの値を取ります。
- -1 は完全な負の線形相関を示します。
- 0 は線形相関がないことを示します
- 1 は完全な正の線形相関を示します。
相関係数が統計的に有意かどうかを判断するには、対応する t スコアと p 値を計算します。
相関係数 (r) の t スコアを計算する式は次のとおりです。
t = r * √ n-2 / √ 1-r 2
次に、p 値が、自由度 n-2 の t 分布の対応する両側 p 値として計算されます。
例: Python での相関テスト
2 つの変数間の相関係数が統計的に有意であるかどうかを判断するには、 SciPyライブラリの関数pearsonrを使用して Python で相関テストを実行できます。
この関数は、2 つの変数間の相関係数と両側 p 値を返します。
たとえば、Python に次の 2 つのテーブルがあるとします。
#create two arrays
x = [3, 4, 4, 5, 7, 8, 10, 12, 13, 15]
y = [2, 4, 4, 5, 4, 7, 8, 19, 14, 10]
pearsonr関数をインポートして、2 つのテーブル間のピアソン相関係数を計算できます。
from scipy. stats . stats import pearsonr #calculation correlation coefficient and p-value between x and y pearsonr(x, y) (0.8076177030748631, 0.004717255828132089)
結果を解釈する方法は次のとおりです。
- ピアソン相関係数 (r): 0.8076
- 両側 p 値: 0.0047
相関係数が 1 に近いということは、2 つの変数間に強い正の相関があることを示しています。
また、対応する p 値は 0.05 未満であるため、2 つの変数間には統計的に有意な関連があると結論付けられます。
ピアソン関数から個々の相関係数と p 値を抽出することもできることに注意してください。
#extract correlation coefficient (rounded to 4 decimal places) r = round(pearsonr(x, y)[ 0 ], 4) print (r) 0.8076 #extract p-value (rounded to 4 decimal places) p = round(pearsonr(x, y)[ 1 ], 4) print (p) 0.0047
これらの値は、元のpearsonr関数の出力と比べて少し読みやすくなっています。
追加リソース
次のチュートリアルでは、相関係数に関する追加情報を提供します。