【統計学】等分散の検定(RとPython)
教科書有斐閣「統計学」P60のJリーグの表をもとに、同書P327の分散の検定を行います。 単純に2群の分散が同じかどうか確かめる検定です。平均の検定でも帰無仮説を棄却できず、分散の検定でも帰無仮説を棄却できない場合は同じ分布の可能性があります。
Rで実装
こちらは等分散の検定です。
#勝数 wins <- c(22, 20, 20, 18, 17, 18, 13, 13, 13, 13, 13, 13, 13, 12, 12, 5, 6, 4) #得点 score <- c(67, 84, 80, 60, 68, 62, 51, 47, 49, 50, 57, 43, 56, 46, 42, 32, 44, 38) #基本統計量の確認 summary(wins) #Min. 1st Qu. Median Mean 3rd Qu. Max. #4.00 12.25 13.00 13.61 17.75 22.00 summary(score) #Min. 1st Qu. Median Mean 3rd Qu. Max. #32.00 44.50 50.50 54.22 61.50 84.00 #等分散の検定 var.test (wins, score)
結果
Pythonで実装
こちらは分散比の検定です。2つの分散を比にしただけで同じものです。
import pandas as pd import numpy as np from scipy import stats df = pd.DataFrame({ 'score':[67, 84, 80, 60, 68, 62, 51, 47, 49, 50, 57, 43, 56, 46, 42, 32, 44, 38], 'wins':[22, 20, 20, 18, 17, 18, 13, 13, 13, 13, 13, 13, 13, 12, 12, 5, 6, 4] }) #検定統計量 F = np.var(df['wins']) / np.var(df['score']) print(F) #0.13076279692204754 #自由度 df1 = len(df['wins'])-1 df2 = len(df['score'])-1 alpha = 0.05 #有意水準 p_value = stats.f.cdf(F, df1, df2) print(p_value) #6.013715874740121e-05 #帰無仮説を棄却できるか p_value < alpha #Out[15]: True
結果
P値も0.05を下回るので帰無仮説を棄却できる。 つまり勝点と得点の分散は等しくない。