ケンドールの順位相関係数
ケンドールの順位相関係数とは?
ケンドールの順位相関係数(Kendall's Tau)は、2つの変数間の順位の相関を測定する統計的な手法です。この係数は、観測値の順位がどれだけ一致しているか、またはどれだけ逆転しているかを評価します。特に、連続的ではなく順位データや順位が重要な場合に使用されます。
ケンドールの順位相関係数は−1から+1 の範囲を取ります。
+1 は完全な一致(すべてのペアが同意)、−1 は完全な不一致(すべてのペアが不一致)を示し、0 は順位に相関がないことを示します。
計算式は以下の通りです。
$$
τ= \frac{(同意ペアの数−不一致ペアの数)}{\frac{1}{2}n(n−1)}
$$
nは観測値の総数です。
同意ペアとは2つの観測値ペア$${ (𝑥_{𝑖},𝑦_{𝑖})}$$ と$${ (x_{j},y_{j})}$$があるとき、
$${(x_{i}−x_{j})}$$ と$${(y_{i}−y_{j})}$$ の符号が一致することを意味します。
たとえば下記の観測値があるとします。
x = [1, 2, 3]
y = [2, 1, 3]
この時ペアは3つできますが、同意ペアは2つで不一致ペアが1つになります。
(1,2) と (2,1): 不一致ペア
(1,2) と (3,3): 同意ペア
(2,1) と (3,3): 同意ペア
先ほどの公式に当てはめると
$$
τ= \frac{(2−1)}{\frac{1}{2}×3×(3−1)}
$$
$$
τ= \frac{1}{3}
$$
でケンドールの順位相関係数は約0.333になります。
同じ計算をPythonで行ってみます。
SciPyライブラリのkendalltauを利用します。
import scipy.stats as stats
x = [1, 2, 3]
y = [2, 1, 3]
tau, p_value = stats.kendalltau(x, y)
print(f"ケンドールの順位相関係数: {tau}")
print(f"p値: {p_value}")
結果は下記の通りになりました。