当記事は「統計学実践ワークブック(学術図書出版社)」の読解サポートにあたってChapter.28の「分割表」に関して演習問題を中心に解説を行います。分割表に対して実施する適合度$\chi^2$検定・尤度比検定やフィッシャーの正確検定など様々な手法があるので、演習を通して抑えておくと良いと思います。
本章のまとめ
演習問題解説
例28.1
下記を実行することでフィッシャーの正確検定を行うことができる。
import math
def comb(n,r):
res = math.factorial(n)/(math.factorial(n-r)*math.factorial(r))
return float(res)
all_x_11 = [2, 3, 4, 5, 6, 7]
p_x = []
for x_11 in all_x_11:
p = comb(9,x_11)*comb(5,7-x_11)/comb(14,7)
print("P(X_11={:.0f}): {:.5f}".format(x_11,p))
p_x.append(p)
P_value = p_x[-1]+p_x[-2]
print("P(X_11>5): {:.3f}".format(P_value))
if P_value<0.05:
print("P_value: {:.3f}, reject H_0.".format(P_value))
else:
print("P_value: {:.3f}, accept H_0.".format(P_value))
・実行結果
P(X_11=2): 0.01049
P(X_11=3): 0.12238
P(X_11=4): 0.36713
P(X_11=5): 0.36713
P(X_11=6): 0.12238
P(X_11=7): 0.01049
P(X_11>5): 0.133
P_value: 0.133, accept H_0.
問28.1
$$
\large
\begin{align}
\frac{\eta_1/(1-\eta_1)}{\eta_2/(1-\eta_2)} &= \frac{P(A_1|B_1)/P(A_2|B_1)}{P(A_1|B_2)/P(A_2|B_2)} = \frac{P(B_1|A_1)/P(B_2|A_1)}{P(B_1|A_2)/P(B_2|A_2)} \\
&= \frac{\theta_1/(1-\theta_1)}{\theta_2/(1-\theta_2)} = \psi
\end{align}
$$
上記に基づいて考えることで、③が正しいことがわかる。
問28.2
下記を実行することで、それぞれ計算を行うことができる。
import numpy as np
from scipy import stats
observed = np.array([[4., 6.], [8., 30.]])
expected = np.array([[np.sum(observed,axis=0)[0]*np.sum(observed,axis=1)[0]/np.sum(observed), np.sum(observed,axis=0)[1]*np.sum(observed,axis=1)[0]/np.sum(observed)], [np.sum(observed,axis=0)[0]*np.sum(observed,axis=1)[1]/np.sum(observed), np.sum(observed,axis=0)[1]*np.sum(observed,axis=1)[1]/np.sum(observed)]])
chi2 = np.sum((observed-expected)**2/expected)
G2 = 2*np.sum(observed*np.log(observed/expected))
log_OR = np.log(observed[0,0]*observed[1,1]/(observed[0,1]*observed[1,0]))
print("・chi^2")
if chi2 < stats.chi2.ppf(1.-0.05,1):
print("chi^2: {:.3f}, accept H_0".format(chi2))
else:
print("chi^2: {:.3f}, reject H_0".format(chi2))
print("・G^2")
if G2 < stats.chi2.ppf(1.-0.05,1):
print("G^2: {:.3f}, accept H_0".format(G2))
else:
print("G^2: {:.3f}, reject H_0".format(G2))
OR_std = np.sqrt(1./observed[0,1]+1./observed[1,0]+1./observed[0,0]+1./observed[1,1])
print("・OR 95%-Interval")
print("OR 95%-Interval: [{:.3f}, {:.2f}]".format(np.exp(log_OR-stats.norm.ppf(1.-0.025)*OR_std),np.exp(log_OR+stats.norm.ppf(1.-0.025)*OR_std)))
・実行結果
・chi^2
chi^2: 1.516, accept H_0
・G^2
G^2: 1.410, accept H_0
・OR 95%-Interval
OR 95%-Interval: [0.566, 11.05]
問28.3
$[1]$
4つの頂点の中には連結が一切ないものは存在しないので、独立な因子は存在しないと言える。
$[2]$
AとCはBで分離されるので、Bを条件付けた際にAとBは条件付き独立である。
参考
・準1級関連まとめ
https://www.hello-statisticians.com/toukeikentei-semi1
[…] 分割表の取り扱いに関しては「統計学実践ワークブック」の「第28章」や、「人文・社会科学の統計学」の「第2章」、「統計検定1級テキストの7.2節」などが詳しいので、詳しくはそちらを参照すると良いと思います。 […]