「統計学実践ワークブック」 演習問題etc Ch.28 「分割表」

当記事は「統計学実践ワークブック(学術図書出版社)」の読解サポートにあたって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

「「統計学実践ワークブック」 演習問題etc Ch.28 「分割表」」への1件の返信

コメントは受け付けていません。