χ二乗検定と独立性の検定
from scipy import stats, integrate l = np.array([4,4,22,26,36,45,39,21,16,4]) score_l = np.arange(5, 105, 10) # 標本平均と不変標本分散 mu = (l * score_l).sum() / l.sum() sigma2 = ((l * ((score_l-mu)**2)).sum() / (l.sum()-1)) # 確率プロット plt.plot(stats.norm.pdf(np.arange(5, 105, 10), loc=mu, scale=np.sqrt(ro2))) def norm_func(x): return stats.norm.pdf(x, loc=mu, scale=np.sqrt(ro2)) l_e = [quad(norm_func, i, i + 10)[0] * l.sum() for i in range(0, 100, 10)] stats.chisquare(l[2:-1], f_exp = l_e[2:-1]).pvalue # pvalue = 0.53... --> 棄却できない
薬の効果を検定。B1が予防接種を適用。B2が非適用 A1が病気にかかる。A2が病気にかからない
/ | B1 | B2 |
---|---|---|
A1 | 27 | 38 |
A2 | 125 | 60 |
chi2_s, pvalue, e_ = stats.chi2_contingency(np.array([[27, 125], [38, 60]])) print(pvalue) # 0.000385 < 0.05 のため、棄却