「ハンバーガー統計学にようこそ!」をPythonでお勉強 2.3まで
こちらのサイトを利用してPython (Anaconda) でデータ解析の勉強をさせてもらおうと思います。
ハンバーガー統計学にようこそ!
2.3 区間推定/信頼区間
import matplotlib.pyplot as plt
%matplotlib inline
# t分布のインポート
from scipy.stats import t, sem
import numpy as np
# SEMは標準偏差をサンプル数Nのルートで割ったもの
mean_val = np.mean(num_list)
sem_val = sem(num_list)
mean_val, sem_val
print('平均= {}'.format(mean_val))
print('標本標準誤差= {}'.format(sem_val))
alpha = 0.95
ci = t.interval(alpha, len(num_list)-1, loc=mean_val, scale=sem_val)
print('95%確率信頼区間= {} 〜 {}'.format(ci[0], ci[1]))
alpha = 0.99
ci = t.interval(alpha, len(num_list)-1, loc=mean_val, scale=sem_val)
print('99%確率信頼区間= {} 〜 {}'.format(ci[0], ci[1]))
平均= 49.2
標本標準誤差= 0.5925462944877059
95%確率信頼区間= 47.859567155669005 〜 50.540432844331
99%確率信頼区間= 47.274321990699256 〜 51.12567800930075
# メソッドを使わないで地道に計算すると・・・検算も兼ねて。
# 標本平均の分散=(母分散/サンプルサイズ)=(不偏分散/標本数)
# 標本平均の標準偏差(標本標準誤差)=(不偏分散/サンプルサイズ)の平方根
# 信頼区間=標本平均±t×標本標準誤差
t_95 = 2.262
t_99 = 3.250
ci_under = mean_val - ( t_95 * np.sqrt(fvar/len(num_list)) )
ci_upper = mean_val + ( t_95 * np.sqrt(fvar/len(num_list)) )
print('95%確率信頼区間= {} 〜 {}'.format(ci_under, ci_upper))
ci_under = mean_val - ( t_99 * np.sqrt(fvar/len(num_list)) )
ci_upper = mean_val + ( t_99 * np.sqrt(fvar/len(num_list)) )
print('99%確率信頼区間= {} 〜 {}'.format(ci_under, ci_upper))
95%確率信頼区間= 47.85966028186881 〜 50.54033971813119
99%確率信頼区間= 47.27422454291496 〜 51.12577545708505