【統計学】平均の差の検定(RとPython)
平均の差の検定。ある2群の標本が独立(つまり別の集団からのサンプリング)か、同じ母集団なのか(つまり母平均が等しい)か確かめるための検定です。
データはおなじみの上記書籍のP60にあるJリーグの試合結果のデータを使用します。
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 #平均の差の検定 t.test(wins, score,var.equal=T) # 等分散を仮定したt検定
結果です。
Pythonで実装
from pandas import DataFrame import pandas as pd 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] }) t, p = stats.ttest_ind(df['wins'], df['score'], equal_var=True) print( "t値 = %(t)s" %locals() ) #t値 = -11.592527280898539 print( "p値 = %(p)s" %locals() ) #p値 = 2.327500630337065e-13