相関係数の検定
帰無仮説「相関係数=0」の検定を行うためのPythonスクリプトを書いてみた。Jupyter Notebook用のファイルは圧縮ファイルCor.zipとした。サンプルスクリプトは自由に利用されたい。
2教科、Sub. AとSub. B、のスコアが表1のようであったとする。
表1 2教科[Sub.A,
Sub.B]のスコア |
[79, 72] [77, 70] [74, 75] [53, 44] [76, 52] [68, 60] [96, 96] [85, 71] [74, 49] [93, 80] [54, 55] [86, 70] [89, 96] [87, 87] [81, 81] [84, 85] [78, 64] [76, 53] [54, 57] [75, 60] |
表1の2教科のスコアの相関係数の検定を行うプログラムを以下のように用意した。
import scipy.stats as ss
data = [
[79,
72], [77, 70], [74, 75], [53, 44], [76, 52],
[68,
60], [96, 96], [85, 71], [74, 49], [93, 80],
[54,
55], [86, 70], [89, 96], [87, 87], [81, 81],
[84,
85], [78, 64], [76, 53], [54, 57], [75, 60]
]
A = []
B = []
for v in data:
A.append(v[0])
B.append(v[1])
r, p = ss.pearsonr(A, B)
print('r = ', r)
print('p-value = ', p)
リストAとBに対応する順番に値を設定して、相関係数とp値を算出する関数を
r, p = ss.pearsonr(A, B)
と呼び出している。P値は両側検定の場合の値である。
上のスクリプトを実行すると、以下の出力を得る。
r = 0.7771855633037877
p-value = 5.5401527669178094e-05
値5.5401527669178094e-05は、を表す。