Pandas の 2 つの列間の相関を計算する方法


次の構文を使用して、pandas DataFrame 内の 2 つの列間の相関関係を計算できます。

 df[' column1 ']. corr (df[' column2 '])

次の例は、この構文を実際に使用する方法を示しています。

例 1: 2 つの列間の相関を計算する

次のコードは、pandas DataFrame 内の列間の相関を計算する方法を示しています。

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' points ': [25, 12, 15, 14, 19, 23, 25, 29],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#view first five rows of DataFrame
df. head ()

        points assists rebounds
0 25 5 11
1 12 7 8
2 15 7 10
3 14 9 6
4 19 12 6

#calculate correlation between points and assists
df[' points ']. corr (df[' assists '])

-0.359384

相関係数は-0.359です。この相関関係は負であるため、得点とアシストが負の相関関係にあることがわかります。

つまり、ポイント欄の値が増加するにつれて、アシスト欄の値が減少する傾向にあります。

例 2: 相関有意性の計算

相関係数が統計的に有意かどうかを判断するには、 SciPyライブラリのpearsonr(x, y)関数を使用できます。

次のコードは、この関数を実際に使用する方法を示しています。

 import pandas as pd
from scipy. stats import pearsonr

#createDataFrame
df = pd. DataFrame ({' points ': [25, 12, 15, 14, 19, 23, 25, 29],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#calculate p-value of correlation coefficient between points and assists
pearsonr(df[' points '], df[' assists '])

(-0.359384, 0.38192)

出力の最初の値は相関係数 (-0.359384) を表示し、2 番目の値はその相関係数に関連付けられた p 値 (0.38192) を表示します。

p 値はα = 0.05 以上であるため、ポイントとアシストの間の相関は統計的に有意ではないと結論付けることができます。

追加リソース

Python で Spearman の順位相関を計算する方法
Pythonで偏相関を計算する方法
Python で相互相関を計算する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です