「ハンバーガー統計学にようこそ!」をPythonでお勉強 4.9まで
こちらのサイトを利用してPython (Anaconda) でデータ解析の勉強をさせてもらおうと思います。
ハンバーガー統計学にようこそ!
4.9 通過テスト
# 桜組18人の点数:
sakura_data = [7,8,10,5,8,7,9,5,6,9,10,6,7,8,7,9,10,6]
# 桃組20人の点数:
momo_data = [9,9,6,10,9,8,10,7,9,10,6,8,9,9,10,7,8,8,10,9]
import numpy as np
from pandas import DataFrame
df = DataFrame([sakura_data,momo_data], index = ['桜組の点数', '桃組の点数'])
df
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
桜組の点数 | 7 | 8 | 10 | 5 | 8 | 7 | 9 | 5 | 6 | 9 | 10 | 6 | 7 | 8 | 7 | 9 | 10 | 6 | NaN | NaN |
桃組の点数 | 9 | 9 | 6 | 10 | 9 | 8 | 10 | 7 | 9 | 10 | 6 | 8 | 9 | 9 | 10 | 7 | 8 | 8 | 10.0 | 9.0 |
# 桜組
sakura_mean = np.mean(df.ix['桜組の点数']) # 平均
sakura_std = np.std(df.ix['桜組の点数']) # 標準偏差
sakura_var = np.var(df.ix['桜組の点数']) # 分散
print("桜組の平均・標準偏差・分散 = {}, {}, {}".format(sakura_mean, sakura_std, sakura_var))
# 桃組
momo_mean = np.mean(df.ix['桃組の点数']) # 平均
momo_std = np.std(df.ix['桃組の点数']) # 標準偏差
momo_var = np.var(df.ix['桃組の点数']) # 分散
print("桃組の平均・標準偏差・分散 = {}, {}, {}".format(momo_mean, momo_std, momo_var))
桜組の平均・標準偏差・分散 = 7.611111111111111, 1.603429965517979, 2.5709876543209873
桃組の平均・標準偏差・分散 = 8.55, 1.2439855304624732, 1.5475000000000005
# 自由度を求める
sakura_count = len(df.ix['桜組の点数'])
momo_count = len(df.ix['桃組の点数'])
# 自由度を計算
degree_of_freedom = (sakura_count - 1) + (momo_count - 1)
print("自由度 = {}".format(degree_of_freedom))
自由度 = 38
# tを求める
import math
# 標本平均の差
_mean_val = sakura_mean - momo_mean
print("標本平均の差 = {}".format(_mean_val))
# 推定分母散
_var = ( (sakura_var * sakura_count) + (momo_var * momo_count) ) / ( (sakura_count-1) + (momo_count - 1) )
print("推定母分散 = {}".format(_var))
# 差の標本標準語差
_margin = math.sqrt( _var * (1/sakura_count + 1/momo_count) )
print("差の標本標準誤差 = {}".format(_margin))
it = _mean_val / _margin
print("it = {}".format(it))
標本平均の差 = -0.93888888888889
推定母分散 = 2.1676250812215727
差の標本標準誤差 = 0.465577606981003
it = -2.016610925463173
# 自由度38、有意水準を1%のときのt値は・・・表より2.704
print('t = 2.704')
t = 2.704
it > t
(予想を棄却ってことかな・・・)