χ二乗検定と独立性の検定

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 のため、棄却