ピアソンの相関係数について
概要
- 2つの変数の関連度合いを示したもの
- \(\rho\)と表現される
- 0,1の二値に限定したポイント二系列相関(Point-Biserial Correlation)もある
定義
\[\rho = \frac{cov[X, Y]}{\sigma_{X} \sigma_{Y}}\] \[\rho = \frac{E[X - \bar{X}]E[Y - \bar[Y]]} { \sqrt{E[(X - \bar{X})^2] E[(Y - \bar{Y})^2]} }\]pythonでの計算
from scipy.stats import pearsonr
rho, p = pearsonr(x, y)
print(f"相関係数 = {rho}")
print(f"p値 = {p}")
ポイント二系列相関
import numpy as np
from scipy.stats import pointbiserialr
# サンプルデータ
# 例として、xは連続値、yはbool値 (True/False)
x = np.array([1.2, 2.3, 3.1, 4.5, 5.0, 6.2])
y = np.array([True, False, True, False, True, False])
# bool値は内部的に0と1として扱われるので、そのまま使用できる、
# 必要に応じて int に変換しても良い
# y = y.astype(int)
# ポイント二系列相関を計算
corr, p_value = pointbiserialr(x, y)
print("Correlation coefficient:", corr) # -0.36
print("p-value:", p_value) # 0.48