数量データ、カテゴリーデータの関連度を計算する。母集団ではなく、標本についての統計量。
数量データ | カテゴリーデータ | |
---|---|---|
数量データ | 単相関係数 | 相関比 |
カテゴリデータ | 相関比 | クラメールの連関係数 |
と書いてある。単相関係数が[-1, 1]、相関比、クラメールの連関係数が[0, 1]の範囲の値を取る。それぞれ大まかな指標であって厳密なものではない。
単相関係数
\[ \dfrac{S_{xy}}{\sqrt{S_{xx} \times S_{yy}}} \]
これは\(S_{ab}\)を\(\textbf{A} = (a_{1}-\mu_{a},\ldots,a_{n}-\mu_{a})\)と\(\textbf{B} = (b_{1}-\mu_{b},\ldots,b_{n}-\mu_{b})\)のベクトルの\(\cos\)と解釈すると分かりやすい。相関係数が0に近くても直線的な関係がないだけで相関がないとは言えない。
- 参考: 相関係数の幾何的解釈
相関比
\[ \dfrac{\text{級間変動}}{\text{級間変動} + \text{級内変動}} \]
以下のように二つの項目(カテゴリ)について数量データがあったとして、
項目1 | 項目2 |
---|---|
23 | 25 |
26 | 26 |
28 | 32 |
29 |
\[ \begin{align} \text{級内変動} &= σ_{11} + σ_{22}\\ &= \sum_{i}{(x_{1i} - \mu_{1})^{2}} + \sum_{j}{(x_{2j} - \mu_{2})^{2}}\\ &= 42.67\\ \text{級間変動} &= \sum_{i} \text{(iのデータ個数)} \times (\mu_{i} - \mu_{all})^{2}\\ &= 10.33\\ \end{align} \]
なので相関比は0.2くらいとなり、関連があるとは言えなさそう。
クラメールの連関係数
以前のエントリのコピペ。
マンガでわかる統計学に従って、
高校生300人に聞いた | 電話で | メールで | 直接会って | 計 |
---|---|---|---|---|
女性 | 34 | 61 | 53 | 148 |
男性 | 38 | 40 | 74 | 152 |
計 | 72 | 101 | 127 | 300 |
\[ V = \sqrt{\dfrac{\chi^{2}}{\text{(全標本数)}\times(\text{min(行数, 列数)-1})}} \]
scipy.statsに関数が用意されているのでそれを使う。
from __future__ import division from scipy import stats obs = np.array([[34, 61, 53], [38, 40, 74]]) chisq, p, dof, exp = stats.chi2_contingency(obs) print(np.sqrt(chisq/obs.sum()/dof))
より、0.16が得られ、関連は非常に弱いと言える。
TODO
読む: 統計学入門