ブログ

Pythonを用いた推測統計のプログラミング 〜区間推定、仮説検定 etc〜

数式だけの解説ではわかりにくい場合もあると思われるので、統計学の手法や関連する概念をPythonのプログラミングで表現を行います。当記事では統計的推測(statistical inference)の理解にあたって、区間推定や仮説検定のPythonでの実装を取り扱いました。

・Pythonを用いた統計学のプログラミングまとめ
https://www.hello-statisticians.com/stat_program

基本事項の確認

区間推定

下記で詳しく取り扱った。
https://www.hello-statisticians.com/explain-terms-cat/flow_chart_stat1.html

仮説検定

推測統計でよく用いるSciPyのメソッド

SciPyの使用にあたっては、scipy.stats.xxx.oooのように使用するメソッドの指定を行うが、xxxに確率分布、oooに行う処理を指定する。

推測統計ではxxxに対して主に下記などの確率分布の指定を行う。

norm: 正規分布
t: $t$分布
chi2: $\chi^2$分布

同様に推測統計ではoooに対して、主に下記の処理の指定を行う。

cdf: 統計量から有意水準・$P$値の計算
ppf: 有意水準・$P$値から統計量の計算
pdf: 統計量から確率密度関数の計算

特にcdfppfは区間推定や検定で統計数値表の代わりに用いることができる。

以下、標準正規分布を例にcdfppfpdfの概要の確認を行う。

import numpy as np
from scipy import stats
import matplotlib.pyplot as plt

x = np.arange(-3.,3.01,0.01)
f_pdf = stats.norm.pdf(x)
F_cdf = stats.norm.cdf(x)

plt.plot(x,f_pdf,label="pdf")
plt.plot(x,F_cdf,label="cdf")

plt.legend()
plt.show()

・実行結果

上記のようにcdfpdfを用いることで累積分布関数と確率密度関数の描画を行うことができる。

次に、cdfppfの対応に関して確認を行う。

import numpy as np
from scipy import stats
import matplotlib.pyplot as plt

alpha = np.array([0.1, 0.05, 0.025, 0.01, 0.005])
x = np.arange(-3.,3.01,0.01)
F_cdf = stats.norm.cdf(x)

plt.plot(x,F_cdf,label="cdf")
for i in range(alpha.shape[0]):
    print("alpha: {}, statistic_upper: {:.2f}".format(alpha[i], stats.norm.ppf(1.-alpha[i])))
    x_upper = np.repeat(stats.norm.ppf(1.-alpha[i]), 100)
    y = np.linspace(0,1.-alpha[i],100)
    plt.plot(x_upper,y,label="alpha: {}".format(alpha[i]))

plt.legend(loc=2)
plt.show()

・実行結果

alpha: 0.1, statistic_upper: 1.28
alpha: 0.05, statistic_upper: 1.64
alpha: 0.025, statistic_upper: 1.96
alpha: 0.01, statistic_upper: 2.33
alpha: 0.005, statistic_upper: 2.58

上記よりcdfppfは逆関数であると考えることができる。それぞれの対応がわかりやすいように、下記では上図の編集を行った。

統計数値表とSciPyを用いた代用

scipy.statsscipy.stats.normscipy.stats.tscipy.stats.chi2を用いることで、統計的推測を行うことができる。特に区間推定や仮説検定でよく用いられる統計数値表が、累積分布関数に対応するscipy.stats.norm.cdfなどを活用することで作成できることは抑えておくと良い。

以下ではscipy.stats.norm.cdfscipy.stats.norm.ppfなどを用いることで統計数値表を作成し概要の理解を行うことに加えて、SciPyで代用する際の用い方について確認を行う。

標準正規分布

統計数値表の作成

上側確率が$100 \alpha’$%となる点を$z_{\alpha=\alpha’}$とおくとき、$z_{\alpha=\alpha’}=0$から$0.01$刻みで該当する$\alpha’$の値を表形式で表したものが統計数値表である。以下、$500$個の値を$50$行$10$列に並べることで標準正規分布の統計数値表の作成を行う。

import numpy as np
from scipy import stats

z = np.arange(0., 5., 0.01).reshape([50,10])
table_norm = 1. - stats.norm.cdf(z)

print(table_norm)

・実行結果

array([[  5.00000000e-01,   4.96010644e-01,   4.92021686e-01,
          4.88033527e-01,   4.84046563e-01,   4.80061194e-01,
          4.76077817e-01,   4.72096830e-01,   4.68118628e-01,
          4.64143607e-01],
       [  4.60172163e-01,   4.56204687e-01,   4.52241574e-01,
          4.48283213e-01,   4.44329995e-01,   4.40382308e-01,
          4.36440537e-01,   4.32505068e-01,   4.28576284e-01,
          4.24654565e-01],
.....
[  4.79183277e-07,   4.55381965e-07,   4.32721062e-07,
          4.11148084e-07,   3.90612854e-07,   3.71067408e-07,
          3.52465898e-07,   3.34764508e-07,   3.17921366e-07,
          3.01896462e-07]])

処理の理解にあたっては、上側確率であることから1. - stats.norm.cdf(z)のように$1$から引いたと考えると良い。

SciPyを用いた統計数値表の代用

・有意水準$\alpha$から標準化変量$Z$を導出

有意水準$\alpha$から標準化変量$Z$を導出する場合はscipy.stats.norm.ppfを用いればよい。

import numpy as np
from scipy import stats

alpha = np.array([0.1, 0.05, 0.025, 0.01, 0.005])
Z_Limit = stats.norm.ppf(1.-alpha)

print(Z_Limit)

・実行結果

> print(Z_Limit)
array([ 1.28155157,  1.64485363,  1.95996398,  2.32634787,  2.5758293 ])

標準化変量$Z$から有意水準$\alpha$を導出

標準化変量$Z$から有意水準$\alpha$を導出する場合は、統計数値表の作成と同様にscipy.stats.norm.cdfを用いればよい。

import numpy as np
from scipy import stats

Z = np.array([0., 0.5, 1., 1.5, 2., 2.5, 3.])
alpha = 1.-stats.norm.cdf(Z)

print(alpha)

・実行結果

> print(alpha)
[ 0.5         0.30853754  0.15865525  0.0668072   0.02275013  0.00620967
  0.0013499 ]

$t$分布

統計数値表の作成

自由度が$\nu$の$t$分布$t(\nu)$に関して、上側確率が$100 \alpha’$%となる点を$t_{\alpha=\alpha’}(\nu)$とおくとき、$\alpha’=\{0.25, 0.20, 0.15, 0.10, 0.05, 0.025, 0.01, 0.005, 0.001\}$に対して、$\nu$を変化させたときに$t_{\alpha=\alpha’}(\nu)$の値をまとめたものが$t$分布の統計数値表である。以下、それぞれの有意水準と自由度に対して$t$分布の統計数値表の作成を行う。

import numpy as np
from scipy import stats

alpha = np.array([0.25, 0.20, 0.15, 0.10, 0.05, 0.025, 0.01, 0.005, 0.0005])
nu = np.arange(1,56,1)
nu[50:] = np.array([60., 80., 120., 240., 100000])

table_t = np.zeros([nu.shape[0],alpha.shape[0]])
for i in range(nu.shape[0]):
    table_t[i,:] = stats.t.ppf(1.-alpha,nu[i])

print(table_t)

・実行結果

[[   1.            1.37638192    1.96261051    3.07768354    6.31375151
    12.70620474   31.82051595   63.65674116  636.61924943]
 [   0.81649658    1.06066017    1.38620656    1.88561808    2.91998558
     4.30265273    6.96455672    9.9248432    31.59905458]
 [   0.76489233    0.97847231    1.2497781     1.63774436    2.35336343
     3.18244631    4.54070286    5.8409093    12.92397864]
.....
 [   0.67551336    0.84312147    1.0386776     1.28508893    1.65122739
     1.96989764    2.34198547    2.59646918    3.33152484]
 [   0.6744922     0.84162483    1.03643876    1.28156003    1.64486886
     1.95998771    2.32638517    2.57587847    3.29062403]]

処理の理解にあたっては、上側確率であることから1. - alphaのように$1$から引いたと考えると良い。

SciPyを用いた統計数値表の代用

・有意水準$\alpha$からパーセント点$t_{\alpha=\alpha’}(\nu)$を導出

有意水準$\alpha$からパーセント点$t_{\alpha=\alpha’}(\nu)$を導出する場合は統計数値表の作成と同様にscipy.stats.t.ppfを用いればよい。

import numpy as np
from scipy import stats

alpha = np.array([0.1, 0.05, 0.025, 0.01, 0.005])
Z_Limit = stats.norm.ppf(1.-alpha)
t_Limit_20 = stats.t.ppf(1.-alpha, 20)
t_Limit_100 = stats.t.ppf(1.-alpha, 100)

print(Z_Limit)
print(t_Limit_20)
print(t_Limit_100)

・実行結果

> print(Z_Limit)
[ 1.28155157  1.64485363  1.95996398  2.32634787  2.5758293 ]
> print(t_Limit_20)
[ 1.32534071  1.72471824  2.08596345  2.527977    2.84533971]
> print(t_Limit_100)
[ 1.29007476  1.66023433  1.98397152  2.36421737  2.62589052]

上記より、$t$分布の棄却点は標準正規分布の棄却点より絶対値が大きくなることが確認できる。また、t_Limit_20t_Limit_100の比較により、自由度が大きくなるにつれて$t$分布が標準正規分布に近づくことも確認できる。

・パーセント点$t_{\alpha=\alpha’}(\nu)$から有意水準$\alpha$を導出

統計量$t$から有意水準$\alpha$を導出する場合は、scipy.stats.t.cdfを用いればよい。

import numpy as np
from scipy import stats

t = np.array([0., 0.5, 1., 1.5, 2., 2.5, 3.])
alpha_20 = 1.-stats.t.cdf(t,20)
alpha_100 = 1.-stats.t.cdf(t,100)

print(alpha_20)
print(alpha_100)

・実行結果

> print(alpha_20)
[ 0.5         0.31126592  0.16462829  0.07461789  0.02963277  0.01061677
  0.00353795]
> print(alpha_100)
[ 0.5         0.30908678  0.15986208  0.06838253  0.02410609  0.00702289
  0.00170396]

$\chi^2$分布

統計数値表の作成

自由度が$\nu$の$\chi^2$分布$\chi^2(\nu)$に関して、上側確率が$100 \alpha’$%となる点を$\chi^2_{\alpha=\alpha’}(\nu)$とおくとき、$\alpha’=\{0.995, 0.990, 0.975, 0.950, 0.900, 0.800, …, 0.100, 0.050, 0.025, 0.010, 0.005, 0.001\}$に対して、$\nu$を変化させたときに$t_{\alpha=\alpha’}(\nu)$の値をまとめたものが「基礎統計学Ⅰ」における$\chi^2$分布の統計数値表である。以下、それぞれの有意水準と自由度に対して$\chi^2$分布の統計数値表の作成を行う。

import numpy as np
from scipy import stats

alpha = np.array([0.995, 0.990, 0.975, 0.95, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1, 0.05, 0.025, 0.01, 0.005, 0.001])
nu = np.arange(1,62,1)
nu[50:] = np.array([60., 70., 80., 90., 100., 120., 140., 160., 180., 200., 240.])

table_chi2 = np.zeros([nu.shape[0],alpha.shape[0]])
for i in range(nu.shape[0]):
    table_chi2[i,:] = stats.chi2.ppf(1.-alpha,nu[i])

print(table_chi2)

・実行結果

[[  3.92704222e-05   1.57087858e-04   9.82069117e-04 ...,   6.63489660e+00
    7.87943858e+00   1.08275662e+01]
 [  1.00250836e-02   2.01006717e-02   5.06356160e-02 ...,   9.21034037e+00
    1.05966347e+01   1.38155106e+01]
 [  7.17217746e-02   1.14831802e-01   2.15795283e-01 ...,   1.13448667e+01
    1.28381565e+01   1.62662362e+01]
.....
 [  1.52240992e+02   1.56431966e+02   1.62727983e+02 ...,   2.49445123e+02
    2.55264155e+02   2.67540528e+02]
 [  1.87324255e+02   1.91989896e+02   1.98983851e+02 ...,   2.93888101e+02
    3.00182237e+02   3.13436899e+02]]

SciPyを用いた統計数値表の代用

・有意水準$\alpha$からパーセント点$\chi^2_{\alpha=\alpha’}(\nu)$を導出

有意水準$\alpha$からパーセント点$\chi^2_{\alpha=\alpha’}(\nu)$を導出する場合は統計数値表の作成と同様にscipy.stats.chi2.ppfを用いればよい。

import numpy as np
from scipy import stats

alpha = np.array([0.975, 0.95, 0.1, 0.05, 0.025])
chi2_Limit_1 = stats.chi2.ppf(1.-alpha, 1)
chi2_Limit_10 = stats.chi2.ppf(1.-alpha, 10)
chi2_Limit_100 = stats.chi2.ppf(1.-alpha, 100)

print(chi2_Limit_1)
print(chi2_Limit_10)
print(chi2_Limit_100)

・実行結果

print(chi2_Limit_1)
[  9.82069117e-04   3.93214000e-03   2.70554345e+00   3.84145882e+00
   5.02388619e+00]
print(chi2_Limit_10)
[  3.24697278   3.94029914  15.98717917  18.30703805  20.48317735]
print(chi2_Limit_100)
[  74.22192747   77.92946517  118.49800381  124.3421134   129.56119719]

・パーセント点$\chi^2_{\alpha=\alpha’}(\nu)$から有意水準$\alpha$を導出

統計量$\chi^2$から有意水準$\alpha$を導出する場合は、scipy.stats.chi2.cdfを用いればよい。

import numpy as np
from scipy import stats

chi2 = np.array([2., 5., 10., 15., 20., 50., 100.])

alpha_1 = 1.-stats.chi2.cdf(chi2,1)
alpha_5 = 1.-stats.chi2.cdf(chi2,5)
alpha_10 = 1.-stats.chi2.cdf(chi2,10)
alpha_20 = 1.-stats.chi2.cdf(chi2,20)
alpha_100 = 1.-stats.chi2.cdf(chi2,100)

print(alpha_1)
print(alpha_5)
print(alpha_10)
print(alpha_20)
print(alpha_100)

・実行結果

> print(alpha_1)
[  1.57299207e-01   2.53473187e-02   1.56540226e-03   1.07511177e-04
   7.74421643e-06   1.53743684e-12   0.00000000e+00]
> print(alpha_5)
[  8.49145036e-01   4.15880187e-01   7.52352461e-02   1.03623379e-02
   1.24973056e-03   1.38579737e-09   0.00000000e+00]
> print(alpha_10)
[  9.96340153e-01   8.91178019e-01   4.40493285e-01   1.32061856e-01
   2.92526881e-02   2.66908343e-07   0.00000000e+00]
> print(alpha_20)
[  9.99999889e-01   9.99722648e-01   9.68171943e-01   7.76407613e-01
   4.57929714e-01   2.21476638e-04   1.25965904e-12]
> print(alpha_100)
[ 1.          1.          1.          1.          1.          0.99999305
  0.48119168]

区間推定・仮説検定

母分散既知の場合の母平均

区間推定

$$
\large
\begin{align}
\bar{x}-1.96\frac{\sigma}{\sqrt{n}} \leq &\mu \leq \bar{x}+1.96\frac{\sigma}{\sqrt{n}}
\end{align}
$$
母平均の$95$%区間推定は上記のように表される。以下、上記を元に具体的な例に対して計算を行う。

import numpy as np
from scipy import stats

sigma = 1.
x = np.array([1.2, 1.5, 0.9, 0.7, 1.1])
ave_x = np.mean(x)

Lower_mu = ave_x + stats.norm.ppf(0.025)*sigma/np.sqrt(x.shape[0])
Upper_mu = ave_x + stats.norm.ppf(0.975)*sigma/np.sqrt(x.shape[0])

print("Estimated mu-interval: [{:.3f}, {:.3f}]".format(Lower_mu, Upper_mu))

・実行結果

> print("Estimated mu-interval: [{:.3f}, {:.3f}]".format(Lower_mu, Upper_mu))
Estimated mu-interval: [0.203, 1.957]

以下、$\sigma$の値を変化させた際の区間推定の結果の確認を行う。

import numpy as np
from scipy import stats

sigma = np.array([0.1, 0.25, 0.5, 1., 2.])
x = np.array([1.2, 1.5, 0.9, 0.7, 1.1])
ave_x = np.mean(x)

Lower_mu = ave_x + stats.norm.ppf(0.025)*sigma/np.sqrt(x.shape[0])
Upper_mu = ave_x + stats.norm.ppf(0.975)*sigma/np.sqrt(x.shape[0])

for i in range(sigma.shape[0]):
    print("Estimated mu-interval: [{:.3f}, {:.3f}]".format(Lower_mu[i], Upper_mu[i]))

・実行結果

Estimated mu-interval: [0.992, 1.168]
Estimated mu-interval: [0.861, 1.299]
Estimated mu-interval: [0.642, 1.518]
Estimated mu-interval: [0.203, 1.957]
Estimated mu-interval: [-0.673, 2.833]

Lower_muUpper_muの計算にあたって、それぞれ0.0250.975を引数に設定したが、これは上側確率を$\alpha’$とおく際の$1-\alpha’$に対応し、このように考えると少々わかりにくい。そのため、標準正規分布の累積分布関数の値から変数の値を計算すると考える方が良い。

これらの違いは元々が「統計数値表」に基づいて考えていた一方で、SciPyなどで実装を行う際には「数値表」が必要ないことからより関数的な表し方に変わったのではないかと考えられる。

SciPyでの表し方がより自然に思われるので、表よりもSciPyなどを用いた形式で理解する方がわかりやすいかもしれない。

仮説検定① 〜norm.ppfと区間推定の活用〜

前項のxave_xに対し、帰無仮説を$H_0: \mu=0$と設定し、上側確率$\alpha’=\{0.05, 0.025, 0.005\}$を用いた仮説検定を行う。
$$
\large
\begin{align}
z_{\alpha=1-\alpha’} \leq &\frac{\bar{x}-\mu}{\sigma/\sqrt{n}} \leq z_{\alpha=\alpha’} \\
-z_{\alpha=\alpha’} \leq &\frac{\sqrt{n}}{\sigma}\bar{x} \leq z_{\alpha=\alpha’}
\end{align}
$$
ここでの検定統計量の$\displaystyle Z = \frac{\sqrt{n}}{\sigma}\bar{x}$に関して上記が成立しなければ$H_0$を棄却し、対立仮説の$H_1: \mu \neq 0$を採択する。

import numpy as np
from scipy import stats

alpha = np.array([0.05, 0.025, 0.005])
sigma = 1.
x = np.array([1.2, 1.5, 0.9, 0.7, 1.1])
Z_observed = np.sqrt(x.shape[0])*np.mean(x)/sigma

Lower_Z = -stats.norm.ppf(1.-alpha)*sigma
Upper_Z = stats.norm.ppf(1.-alpha)*sigma

for i in range(alpha.shape[0]):
    if Z_observed > Upper_Z[i] or Z_observed < Lower_Z[i]:
        print("Z: {:.3f}. If alpha: {} -> Upper_Z: {:.2f}, reject H_0: mu=0. ".format(Z_observed, alpha[i], Upper_Z[i]))
    else:
        print("Z: {:.3f}. If alpha: {} -> Upper_Z: {:.2f}, accept H_0: mu=0. ".format(Z_observed, alpha[i], Upper_Z[i]))

・実行結果

Z: 2.415. If alpha: 0.05 -> Upper_Z: 1.64, reject H_0: mu=0. 
Z: 2.415. If alpha: 0.025 -> Upper_Z: 1.96, reject H_0: mu=0. 
Z: 2.415. If alpha: 0.005 -> Upper_Z: 2.58, accept H_0: mu=0.

上記より、上側確率を小さくするにつれて棄却されにくいことが確認できる。

仮説検定② 〜norm.cdfと$P$値の活用〜

前項の「仮説検定①」では区間推定の結果と$Z$の値を元に検定を行なったが、$Z$の値に対してnorm.cdfを用いることで$P$値を計算し、検定を行うこともできる。

import numpy as np
from scipy import stats

alpha = np.array([0.05, 0.025, 0.005])
sigma = 1.
x = np.array([1.2, 1.5, 0.9, 0.7, 1.1])
Z_observed = np.sqrt(x.shape[0])*np.mean(x)/sigma

P_value = 1.-stats.norm.cdf(Z_observed)

for i in range(alpha.shape[0]):
    if P_value > 1.-alpha[i] or P_value < alpha[i]:
        print("Z: {:.3f}, P_value: {:.3f}. If alpha: {}, reject H_0: mu=0. ".format(Z_observed, P_value, alpha[i]))
    else:
        print("Z: {:.3f}, P_value: {:.3f}. If alpha: {}, accept H_0: mu=0. ".format(Z_observed, P_value, alpha[i]))

・実行結果

Z: 2.415, P_value: 0.008. If alpha: 0.05, reject H_0: mu=0. 
Z: 2.415, P_value: 0.008. If alpha: 0.025, reject H_0: mu=0. 
Z: 2.415, P_value: 0.008. If alpha: 0.005, accept H_0: mu=0. 

仮説検定は②で取り扱った「$P$値の活用」を用いる方が「ノンパラメトリック法」と同様に取り扱うことができるなど、わかりやすい。また、この際にppfcdfの図を元に下記のように考えることもできる。

母分散未知の場合の母平均

区間推定

$$
\large
\begin{align}
\bar{x}-t_{\alpha=0.025}(n-1) \frac{s}{\sqrt{n}} \leq &\mu \leq \bar{x}+t_{\alpha=0.025}(n-1) \frac{s}{\sqrt{n}} \\
s = \frac{1}{n-1} & \sum_{i=1}^{n} (x_i-\bar{x})^2
\end{align}
$$
母分散が未知の際の母平均の$95$%区間推定は上記のように表される。以下、上記を元に具体的な例に対して計算を行う。

import numpy as np
from scipy import stats

x = np.array([1.2, 1.5, 0.9, 0.7, 1.1])
ave_x = np.mean(x)
s = np.sqrt(np.sum((x-ave_x)**2/(x.shape[0]-1)))

Lower_mu = ave_x - stats.t.ppf(1-0.025, x.shape[0]-1)*s/np.sqrt(x.shape[0])
Upper_mu = ave_x + stats.t.ppf(1-0.025, x.shape[0]-1)*s/np.sqrt(x.shape[0])

print("s: {:.2f}".format(s))
print("Estimated mu-interval: [{:.3f}, {:.3f}]".format(Lower_mu, Upper_mu))

・実行結果

> print("s: {:.2f}".format(s))
s: 0.30
> print("Estimated mu-interval: [{:.3f}, {:.3f}]".format(Lower_mu, Upper_mu))
Estimated mu-interval: [0.703, 1.457]

母分散既知の場合と同様の事例を用いたが、$s=0.3$の周辺の$\sigma=0.25$の際の区間が[0.861, 1.299]、$\sigma=0.5$の際の区間が[0.642, 1.518]であったので、概ね同様の結果が得られていることが確認できる。

仮説検定

前項のxave_xに対し、帰無仮説を$H_0: \mu_0=0.95$と設定し、上側確率$\alpha’=\{0.05, 0.025, 0.005\}$を用いた仮説検定を行う。
$$
\large
\begin{align}
t_{\alpha=1-\alpha’}(n-1) \leq &\frac{\bar{x}-\mu_0}{s/\sqrt{n}} \leq t_{\alpha=\alpha’}(n-1) \\
-t_{\alpha=\alpha’}(n-1) \leq &\frac{\sqrt{n}}{s} (\bar{x}-0.95) \leq t_{\alpha=\alpha’}(n-1)
\end{align}
$$
ここでの検定統計量の$\displaystyle t = \frac{\sqrt{n}}{s} (\bar{x}-\mu_0)$に関して上記が成立しなければ$H_0$を棄却し、対立仮説の$H_1: \mu_0 \neq 0.95$を採択する。

import numpy as np
from scipy import stats

mu_0 = 0.95
alpha = np.array([0.05, 0.025, 0.005]) 

x = np.array([1.2, 1.5, 0.9, 0.7, 1.1])
ave_x = np.mean(x)
s = np.sqrt(np.sum((x-ave_x)**2/(x.shape[0]-1)))
t_observed = np.sqrt(x.shape[0])*(ave_x-mu_0)/s

Lower_t = -stats.t.ppf(1.-alpha, x.shape[0])*s
Upper_t = stats.t.ppf(1.-alpha, x.shape[0])*s

for i in range(alpha.shape[0]):
    if t_observed > Upper_t[i] or t_observed < Lower_t[i]:
        print("t: {:.3f}. If alpha: {}, reject H_0: mu=0. ".format(t_observed, alpha[i]))
    else:
        print("t: {:.3f}. If alpha: {}, accept H_0: mu=0. ".format(t_observed, alpha[i]))

print(Lower_t)
print(Upper_t)

・実行結果

t: 0.958. If alpha: 0.05, reject H_0: mu=0. 
t: 0.958. If alpha: 0.025, reject H_0: mu=0. 
t: 0.958. If alpha: 0.005, accept H_0: mu=0. 

> print(Lower_t)
[-0.61119443 -0.77969608 -1.22300952]
> print(Upper_t)
[ 0.61119443  0.77969608  1.22300952]

上記より、上側確率を小さくするにつれて棄却されにくいことが確認できる。

母分散

区間推定

$$
\large
\begin{align}
\frac{(n-1)s^2}{\chi_{\alpha=0.025}^2(n-1)} \leq & \sigma^2 \leq \frac{(n-1)s^2}{\chi_{\alpha=0.975}^2(n-1)} \\
s = \frac{1}{n-1} & \sum_{i=1}^{n} (x_i-\bar{x})^2
\end{align}
$$
母分散の$95$%区間推定は上記のように表される。以下、上記を元に具体的な例に対して計算を行う。

import numpy as np
from scipy import stats

x = np.array([1.2, 1.5, 0.9, 0.7, 1.1])
ave_x = np.mean(x)
s = np.sqrt(np.sum((x-ave_x)**2/(x.shape[0]-1)))

Lower_sigma2 = (x.shape[0]-1)*s**2/stats.chi2.ppf(1.-0.025, x.shape[0]-1)
Upper_sigma2 = (x.shape[0]-1)*s**2/stats.chi2.ppf(1.-0.975, x.shape[0]-1)

print("s^2: {:.2f}".format(s**2))
print("Estimated sigma2s-interval: [{:.3f}, {:.3f}]".format(Lower_sigma2, Upper_sigma2))

・実行結果

> print("s^2: {:.2f}".format(s**2))
s^2: 0.09
> print("Estimated sigma2s-interval: [{:.3f}, {:.3f}]".format(Lower_sigma2, Upper_sigma2))
Estimated sigma2s-interval: [0.033, 0.760]

以下、サンプルを増やした際に$95$%区間はどのように変化するかに関して確認を行う。

import numpy as np
from scipy import stats

x = np.array([1.2, 1.5, 0.9, 0.7, 1.1, 0.5, 1.0, 1.3, 0.9, 1.2])
ave_x = np.mean(x)
s = np.sqrt(np.sum((x-ave_x)**2/(x.shape[0]-1)))

Lower_sigma2 = (x.shape[0]-1)*s**2/stats.chi2.ppf(1.-0.025, x.shape[0]-1)
Upper_sigma2 = (x.shape[0]-1)*s**2/stats.chi2.ppf(1.-0.975, x.shape[0]-1)

print("s^2: {:.2f}".format(s**2))
print("Estimated sigma2s-interval: [{:.3f}, {:.3f}]".format(Lower_sigma2, Upper_sigma2))

・実行結果

> print("s^2: {:.2f}".format(s**2))
s^2: 0.09
> print("Estimated sigma2s-interval: [{:.3f}, {:.3f}]".format(Lower_sigma2, Upper_sigma2))
Estimated sigma2s-interval: [0.041, 0.289]

上記よりサンプルを増やすと$\sigma^2$の$95$%区間が小さくなることが確認できる。

仮説検定

前項のxに対し、帰無仮説を$H_0: \sigma_0^2=0.3$と設定し、上側確率$\alpha’=\{0.05, 0.025, 0.005\}$を用いた仮説検定を行う。
$$
\large
\begin{align}
\chi_{\alpha=0.975}(n-1) \leq & \frac{(n-1)s^2}{\sigma_0^2} \leq \chi_{\alpha=0.025}(n-1) \\
s = \frac{1}{n-1} & \sum_{i=1}^{n} (x_i-\bar{x})^2
\end{align}
$$
ここでの検定統計量の$\displaystyle \chi^2 = \frac{(n-1)s^2}{\sigma_0^2}$に関して上記が成立しなければ$H_0$を棄却し、対立仮説の$H_1: \sigma^2 \neq 0.3$を採択する。

import numpy as np
from scipy import stats

sigma2_0 = 0.3
alpha = np.array([0.05, 0.025, 0.005]) 

x = np.array([1.2, 1.5, 0.9, 0.7, 1.1, 0.5, 1.0, 1.3, 0.9, 1.2])
ave_x = np.mean(x)
s = np.sqrt(np.sum((x-ave_x)**2/(x.shape[0]-1)))

chi2_observed = (x.shape[0]-1)*s**2/sigma2_0

Lower_chi2 = stats.chi2.ppf(alpha, x.shape[0]-1)
Upper_chi2 = stats.chi2.ppf(1.-alpha, x.shape[0]-1)

for i in range(alpha.shape[0]):
    if chi2_observed > Upper_chi2[i] or chi2_observed < Lower_chi2[i]:
        print("chi2: {:.3f}. If alpha: {}, reject H_0: sigma^2=0.3. ".format(chi2_observed, alpha[i]))
    else:
        print("chi2: {:.3f}. If alpha: {}, accept H_0: sigma^2=0.3. ".format(chi2_observed, alpha[i]))

print(Lower_chi2)
print(Upper_chi2)

・実行結果

chi2: 2.603. If alpha: 0.05, reject H_0: sigma^2=0.3. 
chi2: 2.603. If alpha: 0.025, reject H_0: sigma^2=0.3. 
chi2: 2.603. If alpha: 0.005, accept H_0: sigma^2=0.3. 

> print(Lower_t)
[ 3.32511284  2.7003895   1.7349329 ]
> print(Upper_t)
[ 16.9189776   19.0227678   23.58935078]

上記より、上側確率を小さくするにつれて棄却されにくいことが確認できる。

母平均の差

区間推定

仮説検定

母分散の比

区間推定

仮説検定

事前分布・ベイズとMAP推定・予測分布|問題演習で理解する統計学【20】

最尤法は観測値のみを元に推定を行うが、トピックによっては事前知識がわかっている場合や、サンプル数が少ない場合に最尤法が極端な結果を示す場合の補正にあたって、事前分布に基づくベイズ法は役に立つ。事前分布やMAP推定、予測分布が理解できるように演習を取り扱った。
・現代数理統計学 Ch.$14$ 「ベイズ法」の章末演習の解答例
https://www.hello-statisticians.com/explain-books-cat/math_stat_practice_ch14.html

・標準演習$100$選
https://www.hello-statisticians.com/practice_100

基本問題

ベイズの定理と事前分布・事後分布

・問題
パラメータ推定におけるベイズの定理の導入は「ベイズ統計」や「ベイズ推定」など様々な表現があるが、数式に基づく基本的な流れを抑えておけば基本的に十分である。この問題では以下、最尤推定に対し事前分布を元にベイズの定理を考える一連の流れについて取り扱う。下記の問いにそれぞれ答えよ。

i) 事象$A,B$がある際に、$A \cap B$は条件付き確率を元に下記のように表せる。
$$
\begin{align}
P(A \cap B) = P(A|B)P(B) = P(B|A)P(A) \quad (1)
\end{align}
$$

上記の式が妥当であることを直感的に解釈せよ。

ⅱ) $(1)$式より、$P(A|B)$を$P(B), P(B|A), P(A)$を用いて表せ。

ⅲ) ⅱ)の式がベイズの定理の式に一致する。以下ではベイズの定理を最尤法に適用する流れに関して二項分布を例に確認を行う。$X \sim \mathrm{Bin}(n,p)$の確率関数$p(x)=P(x|p)$は下記のように表せる。
$$
\begin{align}
p(x) = {}_{n} C_{x} p^{x} (1-p)^{n-x} \quad (2)
\end{align}
$$

ここで$n$回のベルヌーイ試行に基づいて観測値$X=x$が得られた際に$p$の推定を行うことを考える。最尤推定は尤度を$L(p)=P(x|p)$とおき、$L(p)$が最大になる$p$を導出する手法である。
$(2)$式を元に対数を考えることで、$L(p)$が最大値を取る$p$を$x, n$を用いて表せ。

iv) $n=2$のとき、ⅲ)の式を用いて$x=0,1,2$に関して$p$の推定を行え。

v) $n=2$のようにサンプルが少ない場合、iv)の推定結果は$x$の値次第で大きく変動する。この変動の緩和にあたって下記のように事前分布$P(p)$を導入することを考える。
$$
\begin{align}
P(p) = 6p(1-p), \quad 0 \leq p \leq 1
\end{align}
$$

ここで$P(x)=c(x)$のように表すとき、ベイズの定理に基づいて事後分布$P(p|x)$を表せ。

vi) v)で得られた事後分布$P(p|x)$が最大になる$p$を$n, x$を用いて表せ。
vⅱ) $n=2$のときvi)の式を用いて$x=0,1,2$に関しての$p$の推定を行い、事前分布や事後分布を導入した意義に関して論じよ。

・解答
i)
$(1)$式は「$2$つの事象が同時に発生する確率」と「どちらか一方が発生し、その後にもう一方が発生する確率」のどちらで考えても式が同様であると直感的に解釈できる。

ⅱ)
下記のように表せる。
$$
\large
\begin{align}
P(A|B) = \frac{P(B|A)P(A)}{P(B)}
\end{align}
$$

ⅲ)
対数尤度$\log{L(p)}=\log{P(x|p)}$は下記のように考えることができる。
$$
\large
\begin{align}
\log{L(p)} &= \log{P(x|p)} \\
&= \log{({}_{n} C_{x} p^{x} (1-p)^{n-x})} \\
&= x \log{p} + (n-x) \log{(1-p)} + \log{{}_{n} C_{x}}
\end{align}
$$

iv)
ⅲ)の結果に$n=2$と$x=0,1,2$を代入することで$\hat{p}=0, \hat{p}=0.5, \hat{p}=1$がそれぞれ得られる。

v)
ベイズの定理に基づいて事後分布$P(p|x)$は下記のように表せる。
$$
\large
\begin{align}
P(p|x) &= \frac{P(x|p)P(p)}{P(x)} \\
&= \frac{6 {}_{n} C_{x}}{c(x)} p^{x+1} (1-p)^{n-x+1}
\end{align}
$$

vi)
事後分布の対数$\log{P(p|x)}$は下記のように表せる。
$$
\large
\begin{align}
\log{P(p|x)} &= \log{ \left[ \frac{6 {}_{n} C_{x}}{c(x)} p^{x+1} (1-p)^{n-x+1} \right] } \\
&= (x+1) \log{p} + (n-x+1) \log{(1-p)} + \log{ \left[ \frac{6 {}_{n} C_{x}}{c(x)} \right] }
\end{align}
$$

上記を$p$に関して微分すると下記が得られる。
$$
\large
\begin{align}
\frac{\partial \log{P(p|x)}}{\partial p} &= \frac{x+1}{p} – \frac{n-x+1}{1-p} \\
&= \frac{(x+1)(1-p) – (n-x+1)p}{p(1-p)} \\
&= \frac{x+1-(n+2)p}{p(1-p)}
\end{align}
$$

上記は$p$に関して単調増加であるので、$\log{L(p)}$や$L(p)$は$\displaystyle p = \frac{x+1}{n+2}$のとき最大値を取る。

vⅱ)
vi)の結果に$n=2$と$x=0,1,2$を代入することで$\hat{p}=0.25, \hat{p}=0.5, \hat{p}=0.75$がそれぞれ得られる。ここでiv)では$\hat{p}=0, \hat{p}=0.5, \hat{p}=1$が得られたことを鑑みると、事前分布を導入することで$0.5$に近い推定結果が得られたことが確認できる。
このように事前分布を導入することでサンプル数が少ない場合のサンプルのばらつきに対して頑健である結果が得られることが多い。

・解説
この問題では「二項分布の共役事前分布」を題材にベイズの定理と事前分布・事後分布に関して確認を行いました。詳しい内容は「二項分布の共役事前分布と事後分布の解釈」で取り扱いました。
vⅱ)では事前分布を導入した意義に関して論じましたが、$p=0.5$に近い値の場合は妥当である一方で$p=0.01$や$p=0.99$の場合には妥当でない結果になり得ることに注意が必要です。手法選択の際には一見ベイズ手法が万能であるように見えがちですが、「ベイズ推定は最尤推定よりも必ず良い」ではなく、「妥当な事前分布が設定できる場合はサンプルが少ない際に有用である」のように理解しておくのが良いように思います。

二項分布の共役事前分布と事後分布の解釈

・問題
共役事前分布(conjugate prior distribution)を用いることで、事後分布の導出をシンプルに行うことができる。共役事前分布はフォーマルな表記だと難しい印象があると思われるので、以下では二項分布を例に共役事前分布について確認し、事後分布の解釈を行う。

ベイズ法ではパラメータの推定にあたって、下記のように事後分布の$P(\theta|x)$が事前分布の$P(\theta)$と尤度の$p(x|\theta)$の積に比例することを利用する。
$$
\large
\begin{align}
P(\theta|x) \propto P(\theta)p(x|\theta) \quad (1)
\end{align}
$$

上記の式は多くの書籍などで出てくるが、抽象的な表記より具体的な確率分布を例に考える方がわかりやすい。以下では二項分布に関して$(1)$式を表すことを考える。

ここまでの内容を元に下記の問いに答えよ。
i) 二項分布におけるパラメータは事象が起こる確率であるので、以下では$\theta=p$のように、パラメータを$\theta$ではなく$p$を用いて表す。確率$p$の試行を$n$回繰り返すとき、事象が起こる回数を$x$、この確率関数を$p(x|p,n)$のように表すとき、確率関数$p(x|p,n)$の式を表せ。
ⅱ) ベータ分布$Be(a,b)$の確率密度関数を答えよ。
ⅲ) i)で取り扱った確率関数$p(x|p,n)$は尤度と考えることができる。ここで$p(x|p,n)$を$x$ではなく$p$の関数と見るときベータ分布と同様の形を持つことをⅱ)の結果と見比べることで示せ。
iv) $p$の事前分布の$P(p)$がベータ分布$Be(a,b)$であるとき、事前分布$P(p)$の関数を記載せよ。
v) $p(x|p,n)P(p)$を計算せよ。
vi) 事後分布$P(p|x)$が$P(p|x) \propto p(x|p,n)P(p)$のように表されることを元に、事後分布$P(p|x)$がどのような分布になるか答えよ。
vⅱ) v)、vi)の結果を確認することでベータ分布$Be(a,b)$の$a,b$のこの事例での意味を考察せよ。

・解答
i)
確率関数$p(x|p,n)$は下記のように表すことができる。
$$
\large
\begin{align}
p(x|p,n) = {}_{n} C_{x} p^{x} (1-p)^{n-x}
\end{align}
$$

ⅱ)
ベータ分布$Be(a,b)$の確率密度関数を$f(x|a,b)$とおくとき、$f(x|a,b)$は下記のように表される。
$$
\large
\begin{align}
f(x|a,b) = \frac{1}{B(a,b)} x^{a-1} (1-x)^{b-1}
\end{align}
$$
ここで上記における$B(a,b)$はベータ関数を表す。

ⅲ)
i)とⅱ)の結果を見比べることで、どちらも変数を$x$と見た際に、$x^{a-1} (1-x)^{b-1}$の形状の関数であることを読み取ることができる。

iv)
事前分布$P(p)$はⅱ)の結果の$x$を$p$で置き換えることで得られるので、下記のように表すことができる。
$$
\large
\begin{align}
P(p) = \frac{1}{B(a,b)} p^{a-1} (1-p)^{b-1}
\end{align}
$$

v)
$p(x|p,n)P(p)$は下記のように計算できる。
$$
\large
\begin{align}
p(x|p,n)P(p) &= {}_{n} C_{x} p^{x} (1-p)^{n-x} \times \frac{1}{B(a,b)} p^{a-1} (1-p)^{b-1} \\
&= \frac{{}_{n} C_{x}}{B(a,b)} p^{a+x-1} (1-p)^{b+n-x-1}
\end{align}
$$

vi)
v)の結果より、下記が成立する。
$$
\large
\begin{align}
P(p|x) & \propto p(x|p,n)P(p) \\
&= {}_{n} C_{x} p^{x} (1-p)^{n-x} \times \frac{1}{B(a,b)} p^{a-1} (1-p)^{b-1} \\
& \propto p^{a+x-1} (1-p)^{b+n-x-1}
\end{align}
$$
よって事後分布$P(p|x)$はベータ分布$Be(a+x,b+n-x)$に一致する。

vⅱ)
二項分布における$x, n-x$はコイン投げにおける表と裏の回数に一致する。事前分布における$(a,b)$が事後分布において$(a+x,b+n-x)$になることは、実際の実験を行う前に事前に表が$a$回、裏が$b$回出たと考えることに一致する。

・解説
vⅱ)より、事前分布のベータ分布におけるパラメータの$a, b$に事前知識を組み込むことが可能になります。このようにすることで、試行回数が$5$回や$10$回などの少ない際に事前知識による補正ができると抑えておくと良いと思います。

ポアソン分布の共役事前分布と事後分布の解釈

・問題
ポアソン分布の共役事前分布にはガンマ分布を考えることができるので、ガンマ分布の解釈と合わせて理解すれば良い。以下、導出の流れとガンマ分布の解釈に関して確認を行う。

ポアソン分布の確率関数を$f(x|\lambda)$とおくと、$f(x|\lambda)$は下記のように表される。
$$
\begin{align}
f(x|\lambda) = \frac{\lambda^{x} e^{-\lambda}}{x!} \\
\end{align}
$$

ここで観測値$x_1, x_2, …, x_n$が観測される同時確率を$P(x_1,…,x_n|\lambda)$とおくと、$P(x_1,…,x_n|\lambda)$は下記のように表すことができる。
$$
\begin{align}
P(x_1,…,x_n|\lambda) &= \prod_{i=1}^{n} \frac{\lambda^{x_i} e^{-\lambda}}{x_i!} \\
&= \lambda^{\sum_{i=1}^{n} x_i} e^{-n \lambda} \prod_{i=1}^{n} (x_i!)^{-1} \\
&= \lambda^{n \bar{x}} e^{-n \lambda} \prod_{i=1}^{n} (x_i!)^{-1}
\end{align}
$$

上記を$\lambda$の関数と見ると、ガンマ分布の形状と一致するので、$\lambda$の事前分布$P(\lambda)$に$Ga(a,1)$を考える。このとき$P(\lambda)$は下記のように表すことができる。
$$
\begin{align}
P(\lambda) = \frac{1}{\Gamma(a)} \lambda^{a-1} e^{-\lambda}
\end{align}
$$

ここまでの内容を元に以下の問題に答えよ。
i) 事後分布$P(\lambda|x_1,x_2,…,x_n) \propto P(x_1,…,x_n|\lambda)P(\lambda)$を計算せよ。ただし、$\propto$を用いて$\lambda$に関連しない項は省略して良い。
ⅱ)
$$
\begin{align}
f(x|a,b) = \frac{b^a}{\Gamma(a)} \lambda^{a-1} e^{-b \lambda}
\end{align}
$$
$Ga(a,b)$の確率密度関数$f(x|a,b)$が上記のように表されるとき、i)の結果より、$\lambda$の事後分布$P(\lambda|x_1,x_2,…,x_n)$がどのようなパラメータのガンマ分布に従うか答えよ。
ⅲ) ガンマ分布$Ga(a,b)$のモーメント母関数を$m(t)$のようにおくと、$\lambda > t$のとき$m(t)$は下記のように表すことができる。
$$
\begin{align}
m(t) = \left( \frac{b}{b-t} \right)^{a}
\end{align}
$$
上記に対し、$\displaystyle \frac{d}{dt}m(t), \frac{d^2}{dt^2}m(t)$を導出せよ。
iv) ⅲ)の結果を元にガンマ分布$Ga(a,b)$の期待値$E[\lambda]$と分散$V[\lambda]$を計算せよ。
v) ⅱ)とiv)の結果を元に、観測値が観測されるにつれて事後分布は事前分布に比べてどのように変化するかを考察せよ。

・解答
i)
下記のように事後分布$P(\lambda|x_1,x_2,…,x_n)$に関して計算を行うことができる。
$$
\large
\begin{align}
P(\lambda|x_1,x_2,…,x_n) & \propto P(x_1,…,x_n|\lambda)P(\lambda) \\
&= \lambda^{n \bar{x}} e^{-n \lambda} \prod_{i=1}^{n} (x_i!)^{-1} \times \frac{1}{\Gamma(a)} \lambda^{a-1} e^{-\lambda} \\
& \propto \lambda^{a + n \bar{x} – 1} e^{-(n+1) \lambda}
\end{align}
$$

ⅱ)
事後分布$P(\lambda|x_1,x_2,…,x_n)$はガンマ分布$Ga(a + n \bar{x}, n+1)$のガンマ分布に従う。

ⅲ)
$\displaystyle \frac{d}{dt}m(t), \frac{d^2}{dt^2}m(t)$は下記のように計算できる。
$$
\large
\begin{align}
\frac{d}{dt}m(t) &= \frac{d}{dt} \left( \frac{b}{b-t} \right)^{a} \\
&= b^a \frac{d}{dt} (b-t)^{-a} \\
&= b^a \times -a(b-t)^{-a-1} \times (-1) = \frac{ab^{a}}{(b-t)^{a+1}} \\
\frac{d^2}{dt^2}m(t) &= \frac{d}{dt} \left( \frac{ab^{a}}{(b-t)^{a+1}} \right) \\
&= ab^{a} \frac{d}{dt} (b-t)^{-(a+1)} \\
&= ab^{a} \times -(a+1) (b-t)^{-(a+2)} \times (-1) = \frac{a(a+1)b^{a}}{(b-t)^{a+2}}
\end{align}
$$

iv)
期待値$E[\lambda]$と分散$V[\lambda]$は下記のように計算することができる。
$$
\large
\begin{align}
E[\lambda] &= \frac{d}{dt}m(t) \Bigr|_{t=0} \\
&= \frac{ab^{a}}{(b-0)^{a+1}} \\
&= \frac{a}{b} \\
V[\lambda] &= \frac{d^2}{dt^2}m(t) \Bigr|_{t=0} – \left( \frac{d}{dt}m(t) \Bigr|_{t=0} \right)^{2} \\
&= \frac{a(a+1)b^{a}}{(b-0)^{a+2}} – \left( \frac{a}{b} \right)^{2} \\
&= \frac{a(a+1)}{b^2} – \frac{a^2}{b^2} \\
&= \frac{a^2+a-a^2}{b^2} \\
&= \frac{a}{b^2}
\end{align}
$$

v)
iv)の結果を元にⅱ)で確認を行なった事前分布$Ga(a, 1)$と事後分布$Ga(a + n \bar{x}, n+1)$を確認する。事前分布の期待値・分散をそれぞれ$E[\lambda], V[\lambda]$、事後分布の期待値・分散をそれぞれ$E[\lambda|x_1,x_2,…,x_n], V[\lambda|x_1,x_2,…,x_n]$とおく。$E[\lambda], E[\lambda|x_1,x_2,…,x_n], V[\lambda], V[\lambda|x_1,x_2,…,x_n]$はそれぞれ下記のように表すことができる。
$$
\large
\begin{align}
E[\lambda] &= \frac{a}{1} = a \\
E[\lambda|x_1,x_2,…,x_n] &= \frac{a + n \bar{x}}{n+1} \\
V[\lambda] &= \frac{a}{1^2} = a \\
V[\lambda|x_1,x_2,…,x_n] &= \frac{a + n \bar{x}}{(n+1)^2}
\end{align}
$$

上記より、$n$が大きくなるにつれて$E[\lambda], E[\lambda|x_1,x_2,…,x_n]$が標本平均の$\bar{x}$に近づき、$V[\lambda], E[\lambda|x_1,x_2,…,x_n]$が$0$に近づくことがわかる。

これは$n$が大きくなるにつれて最尤推定の結果に近づくことを意味し、ベイズの定理を用いた推定が最尤法の拡張であると考えることができることを表している。

・解説
主に下記の内容に基づいて作成を行いました。
https://www.hello-statisticians.com/explain-terms-cat/conjugate_dist1.html

ⅲ)で取り扱ったガンマ分布のモーメント母関数に関しては下記で詳しい導出を行いましたので、こちらも参考になると思います。
https://www.hello-statisticians.com/explain-books-cat/toukeigaku-aohon/ch1_blue_practice.html#19

v)の結果の解釈は最尤法とベイズを比較する際によく出てくるので、事後分布を用いた推定結果の解釈に関してはなるべく行うようにすると良いと思います。

正規分布の共役事前分布の設定と事後分布

・問題
観測値が正規分布に従うと仮定した際の尤度のパラメータに対して正規分布の共役事前分布を考えることで、ベイズの定理を用いて事後分布を計算することができる。

この計算は重要なトピックである一方で平方完成に関連する計算が複雑になり、計算ミスなどが起こりやすい。この問題では以下、関連の計算について可能な限りシンプルに計算ができるように導出の流れの確認を行う。

以下の問題に答えよ。
i) 正規分布$\mathcal{N}(\mu, \sigma^2)$の確率密度関数を$f(x|\mu,\sigma^2)$のようにおくとき、$f(x|\mu,\sigma^2)$を$x, \mu, \sigma^2$の式で表せ。
ⅱ) 確率変数列${X_1,…,X_n}$に対して$X_1,…,X_n \sim \mathcal{N}(\mu, \sigma^2) \quad i.i.d.,$が成立するとき、確率変数列$\{X_1,…,X_n\}$に対応する観測値の列$\{x_1,…,x_n\}$が観測されたときの$\mu$に関する尤度$L(\mu|x_1,…,x_n)$を表せ。
ⅲ) $\displaystyle \bar{x} = \frac{1}{n} \sum_{i=1}^{n} x_i$のようにおくとき、Fisher-Neymanの分解定理を用いて$\bar{x}$が$\mu$の十分統計量であることを示せ。
iv) $\mu$の事前分布が正規分布$\mathcal{N}(\lambda,\tau^2)$に従うとき、確率密度関数$P(\mu)$を$\lambda,\tau^2$を用いて表せ。
v) $a>0$のとき$g(x) = ax^2 + bx + c$の平方完成を行え。また、$g(x)$が最小となる$x$の値を答えよ。
vi) $x_1,x_2,…,x_n$が観測された際の$\mu$の事後分布の確率密度関数$P(\mu|x_1,…,x_n)$をベイズの定理に基づいて計算し、事後分布が$\displaystyle \mathcal{N} \left( \frac{n \tau^2 \bar{x} + \sigma^2 \lambda}{n \tau^2 + \sigma^2} , \frac{\sigma^2 \tau^2}{n \tau^2 + \sigma^2} \right)$に一致することを確認せよ。
vⅱ) vi)の結果を事後分布の平均に着目して解釈せよ。

・解答
i)
確率密度関数$f(x|\mu,\sigma^2)$は下記のように表すことができる。
$$
\large
\begin{align}
f(x|\mu,\sigma^2) = \frac{1}{\sqrt{2 \pi} \sigma} \exp \left[ -\frac{(x-\mu)^2}{2 \sigma^2} \right]
\end{align}
$$

ⅱ)
尤度$L(\mu|x_1,…,x_n)$は同時確率に一致するので、$i.i.d.,$であることから下記のように導出することができる。
$$
\large
\begin{align}
L(\mu|x_1,…,x_n) &= f(x_1,…,x_n|\mu,\sigma^2) = \prod_{i=1}^{n} f(x_i|\mu,\sigma^2) \\
&= \prod_{i=1}^{n} \frac{1}{\sqrt{2 \pi} \sigma} \exp \left[ -\frac{(x_i-\mu)^2}{2 \sigma^2} \right] \\
&= \left( \frac{1}{\sqrt{2 \pi} \sigma} \right)^{n} \exp \left[ -\sum_{i=1}^{n} \frac{(x_i-\mu)^2}{2 \sigma^2} \right]
\end{align}
$$

ⅲ)
$(x_i-\mu) = (x_i-\bar{x}) + (\bar{x}-\mu)$より、 $\displaystyle \sum_{i=1}^{n} (x_i-\mu)^2$は下記のように変形できる。
$$
\large
\begin{align}
\sum_{i=1}^{n} (x_i-\mu)^2 &= \sum_{i=1}^{n} ((x_i-\bar{x}) + (\bar{x}-\mu))^2 \\
&= \sum_{i=1}^{n} ((x_i-\bar{x})^2 + 2(\bar{x}-\mu)^2 + (x_i-\bar{x})(\bar{x}-\mu)) \\
&= \sum_{i=1}^{n} (x_i-\bar{x})^2 + \sum_{i=1}^{n} (\bar{x}-\mu)^2 + 2(\bar{x}-\mu) \sum_{i=1}^{n}(x_i-\bar{x}) \\
&= \sum_{i=1}^{n} (x_i-\bar{x})^2 + \sum_{i=1}^{n} (\bar{x}-\mu)^2 \\
&= n(x_i-\bar{x})^2 + \sum_{i=1}^{n} (\bar{x}-\mu)^2
\end{align}
$$

よって同時確率密度関数$f(x_1,…,x_n|\mu,\sigma^2)$は下記のように変形できる。
$$
\large
\begin{align}
f(x_1,…,x_n|\mu,\sigma^2) &= \prod_{i=1}^{n} f(x_i|\mu,\sigma^2) \\
&= \left( \frac{1}{\sqrt{2 \pi} \sigma} \right)^{n} \exp \left[ -\sum_{i=1}^{n} \frac{(x_i-\mu)^2}{2 \sigma^2} \right] \\
&= \exp \left[ -\frac{n(\bar{x}-\mu)^2}{2 \sigma^2} \right] \times \left( \frac{1}{\sqrt{2 \pi} \sigma} \right)^{n} \exp \left[ -\sum_{i=1}^{n} \frac{(x_i-\bar{x})^2}{2 \sigma^2} \right]
\end{align}
$$

上記のように同時確率密度関数を$\mu, \bar{x}$の関数と$x_i,\bar{x}$の関数に分解することができたのでFisher-Neymanの定理より$\bar{x}$が$\mu$の十分統計量であることが示せる。

iv)
確率密度関数$P(\mu)$は下記のように表せる。
$$
\large
\begin{align}
f(x|\mu,\sigma^2) = \frac{1}{\sqrt{2 \pi} \tau} \exp \left[ -\frac{(\mu-\lambda)^2}{2 \tau^2} \right]
\end{align}
$$

v)
下記のように$g(x)$の平方完成を行うことができる。
$$
\large
\begin{align}
g(x) &= ax^2+bx+c \\
&= a \left( x^2 + \frac{b}{a}x \right) + c \\
&= a \left( x + \frac{b}{2a} \right)^2 + c – a \left( \frac{b}{2a} \right)^2 \\
&= a \left( x + \frac{b}{2a} \right)^2 + c – \frac{ab^2}{4a^2} \\
&= a \left( x + \frac{b}{2a} \right)^2 + c – \frac{b^2}{4a}
\end{align}
$$

$g(x)$は$a>0$から下に凸の関数であるので、上記より、$\displaystyle x = -\frac{b}{2a}$のとき$g(x)$は最小値を取ることがわかる。

vi)
事後分布の確率密度関数$P(\mu|x_1,…,x_n)$に関しては下記のように考えることができる。
$$
\large
\begin{align}
P(\mu|x_1,…,x_n) & \propto L(\mu|x_1,…,x_n) P(\mu) \\
&= \exp \left[ -\frac{n(\bar{x}-\mu)^2}{2 \sigma^2} \right] \times \left( \frac{1}{\sqrt{2 \pi} \sigma} \right)^{n} \exp \left[ -\sum_{i=1}^{n} \frac{(x_i-\bar{x})^2}{2 \sigma^2} \right] \times \frac{1}{\sqrt{2 \pi} \tau} \exp \left[ -\frac{(\mu-\lambda)^2}{2 \tau^2} \right] \\
& \propto \exp \left[ -\frac{n(\bar{x}-\mu)^2}{2 \sigma^2} \right] \times \exp \left[ -\frac{(\mu-\lambda)^2}{2 \tau^2} \right] \\
&= \exp \left[ -\frac{\sigma^2(\mu-\lambda)^2 + n \tau^2(\mu-\bar{x})^2}{2 \sigma^2 \tau^2} \right] \\
&= \exp \left[ -\frac{(n \tau^2 + \sigma^2)\mu^2 – 2(n \tau^2 \bar{x} + \sigma^2 \lambda)\mu + …}{2 \sigma^2 \tau^2} \right] \\
& \propto \exp \left[ -\frac{n \tau^2 + \sigma^2}{2 \sigma^2 \tau^2} \left(\mu – \frac{n \tau^2 \bar{x} + \sigma^2 \lambda}{n \tau^2 + \sigma^2} \right)^2 \right]
\end{align}
$$

vⅱ)
$\displaystyle \frac{n \tau^2 \bar{x} + \sigma^2 \lambda}{n \tau^2 + \sigma^2}$を解釈するにあたっては、標本平均$\bar{x}$と事前分布の平均の$\lambda$がそれぞれどのような配分で事後分布の平均に作用するかを確認すればよい。

ここで事後分布の平均は$\bar{x}$と$\lambda$を$n \tau^2:\sigma^2$に内分する点であることが確認でき、$n$が大きい時は$\bar{x}$に限りなく近づくことも同時にわかる。

・解説
下記の内容に基づいて作成を行いました。
https://www.hello-statisticians.com/explain-terms-cat/conjugate_dist1.html#i-6

ⅲ)のようにFisher-Neymanの定理の式の形で同時確率密度関数、尤度を表すことで$\mu$に関連する部分の表記をシンプルに行えます。このような表記を用いることで、vi)での計算で$\displaystyle \sum$を考えなくてよく、これにより式が見やすくなります。

vi)の計算にあたってはv)のように全ての項を考えるのではなく、v)の結果を活用しさらに$\propto$を用いて定数項は考えないことで計算をシンプルに行うことができます。

EAP推定量とMAP推定量

・問題
ベイズの定理を用いてパラメータの事後分布を得た場合、予測分布のように事後分布をそのまま用いる場合もあるが、事後分布を$1$つの値に要約して用いる場合も多い。この要約にあたっては事後分布の期待値を考えるEAP推定量と事後分布が最大となる点に着目するMAP推定量がよく用いられる。EAP推定量は期待事後推定量(Expected a Posterior Estimator)の略で、MAP推定量は最大事後確率推定量(Maximum a Posterior Estimator)の略であることも合わせて抑えておくと良い。

この問題では以下、EAP推定量とMAP推定量に関して具体的な事後分布に基づいて確認するにあたって、「ベータ分布」、「ガンマ分布」、「正規分布」に対してそれぞれEAP推定量とMAP推定量の導出を行う。「ベータ分布$\mathrm{Be}(\alpha,\beta)$」、「ガンマ分布$\mathrm{Ga}(\alpha,\beta)$」、「正規分布$\mathcal{N}(\mu,\sigma^2)$」の確率密度関数を$f_1(x),f_2(x),f_3(x)$とおくとそれぞれ下記のように表すことができる。
$$
\large
\begin{align}
f_1(x) &= \frac{1}{B(\alpha,\beta)} x^{\alpha-1}(1-x)^{\beta-1} = \frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha)\Gamma(\beta)} x^{\alpha-1}(1-x)^{\beta-1} \\
f_2(x) &= \frac{1}{\beta^{\alpha} \Gamma(\alpha)} x^{\alpha-1} \exp{\left( -\frac{x}{\beta} \right)} \\
f_3(x) &= \frac{1}{\sqrt{2 \pi \sigma^2}} \exp{\left( -\frac{(x-\mu)^2}{2 \sigma^2} \right)}
\end{align}
$$

ここまでの内容に基づいて下記の問いにそれぞれ答えよ。
i) EAP推定量とMAP推定量は記述統計における「代表値」と対応して理解することができるが、EAP推定量とMAP推定量はそれぞれどのような代表値に対応するか答えよ。
ⅱ) 「二項分布の共役事前分布と事後分布の解釈」では、二項分布$\mathrm{Bin}(n,p)$の確率パラメータ$p$の事後分布にベータ分布$\mathrm{Be}(\alpha+x,\beta+n-x)$が得られた。このとき$p$のEAP推定量$\hat{p}_{EAP}$とMAP推定量$\hat{p}_{EAP}$を$n,x,\alpha,\beta$を用いて表せ。
ⅲ) ⅱ)と同様に事後分布にベータ分布$\mathrm{Be}(\alpha+x,\beta+n-x)$が得られたとき、$p$のMAP推定量$\hat{p}_{MAP}$を$n,x,\alpha,\beta$を用いて表せ。
iv) ⅱ)、ⅲ)で得られた$\hat{p}_{EAP}$と$\hat{p}_{MAP}$を最尤推定量$\displaystyle \hat{p}_{MLE}=\frac{x}{n}$に基づいて解釈せよ。
v) $\lambda \sim \mathrm{Ga}(\alpha,\beta)$のとき、$\hat{\lambda}_{EAP}$と$\hat{\lambda}_{MAP}$をそれぞれ計算せよ。
vi) $\mu \sim \mathcal{N}(\mu_N,\sigma_N^2)$のとき、$\hat{\mu}_{EAP}$と$\hat{\mu}_{MAP}$をそれぞれ答えよ。

・解答
i)
EAP推定量は平均に対応し、MAP推定量はモードに対応すると考えることができる。

ⅱ)
$p$のEAP推定量$\hat{p}_{EAP}$は下記のように得られる。
$$
\large
\begin{align}
\hat{p}_{EAP} &= \int_{0}^{1} p \times f_1(p) dp \\
&= \frac{1}{B(a+x,\beta+n-x)} \int_{0}^{1} p \times p^{\alpha+x-1} (1-p)^{\alpha+n-x-1} dp \\
&= \frac{1}{B(a+x,\beta+n-x)} \int_{0}^{1} p^{\alpha+x+1-1} (1-p)^{\alpha+n-x-1} dp \\
&= \frac{B(a+x+1,\beta+n-x)}{B(a+x,\beta+n-x)} \\
&= \frac{\Gamma(\alpha+x+1)\Gamma(\beta+n-x)}{\Gamma(n+\alpha+\beta+1)} \times \frac{\Gamma(n+\alpha+\beta)}{\Gamma(\alpha+x)\Gamma(\beta+n-x)} \\
&= \frac{(\alpha+x)!(\beta+n-x-1)!}{(n+\alpha+\beta)!} \times \frac{(n+\alpha+\beta-1)!}{(\alpha+x-1)!(\beta+n-x-1)!} \\
&= \frac{\alpha+x}{n+\alpha+\beta}
\end{align}
$$

ⅲ)
$p$のMAP推定量$\hat{p}_{MAP}$は下記のように得られる。
$$
\large
\begin{align}
\frac{\partial \log{(P(p|x))}}{\partial p} &= \frac{\partial}{\partial p} \log{\left[ \frac{1}{B(\alpha+x-1,\beta+n-x)} p^{\alpha+x-1}(1-p)^{\beta+n-x-1} \right]} \\
&= \frac{\partial}{\partial p} \left[ (\alpha+x-1)\log{p} + (\beta+n-x-1)\log{(1-p)} – \log{B(\alpha+x-1,\beta+n-x)} \right] \\
&= \frac{\alpha+x-1}{p} – \frac{\beta+n-x-1}{1-p} \\
&= \frac{(\alpha+x-1)(1-p) – (\beta+n-x-1)p}{p(1-p)} \\
&= \frac{\alpha+x-1 – (n+\alpha+\beta-2)p}{p(1-p)} \\
\hat{p}_{MAP} &= \frac{\alpha+x-1}{n+\alpha+\beta-2}
\end{align}
$$

iv)
最尤推定量$\displaystyle \hat{p}_{MLE}=\frac{x}{n}$は$n$回の試行の中で事象が$x$回観測されたのでパラメータを$\displaystyle \hat{p}_{MLE}=\frac{x}{n}$のように推定したと考えられる。
事後分布に基づく推定は予めサンプルがある上で観測された割合を計算したと見ることもでき、EAP推定量は「事前に$\alpha+\beta$回中$\alpha$回計測された場合」、MAP推定量は「事前に$\alpha+\beta-2$回中$\alpha-1$回計測された場合」とそれぞれ解釈できる。

v)
$\hat{\lambda}_{EAP}$は下記のように計算できる。
$$
\large
\begin{align}
\hat{\lambda}_{EAP} &= \int_{0}^{\infty} \lambda \times f_2(\lambda) d \lambda \\
&= \frac{1}{\beta^{\alpha} \Gamma(\alpha)} \int_{0}^{\infty} \lambda \times \lambda^{\alpha-1} \exp{\left( -\frac{\lambda}{\beta} \right)}d \lambda \\
&= \frac{1}{\beta^{\alpha} \Gamma(\alpha)} \int_{0}^{\infty} \lambda^{(\alpha+1)-1} \exp{\left( -\frac{\lambda}{\beta} \right)}d \lambda \\
&= \frac{1}{\beta^{\alpha} \Gamma(\alpha)} \times \beta{\alpha+1} \Gamma(\alpha+1) \\
&= \alpha \beta
\end{align}
$$

$\hat{\lambda}_{MAP}$の計算にあたっては$\log{f_2(\lambda)}$を考え、$\lambda$で微分を行えばよい。$\log{f_2(\lambda)}$は下記のように表すことができる。
$$
\large
\begin{align}
\log{f_2(\lambda)} &= \log{ \left[ \frac{1}{\beta^{\alpha} \Gamma(\alpha)} \lambda^{\alpha-1} \exp{\left( -\frac{\lambda}{\beta} \right)} \right] } \\
&= (\alpha-1) \log{\lambda} – \frac{\lambda}{\beta} – \log{\left[ \beta^{\alpha} \Gamma(\alpha) \right]}
\end{align}
$$

上記を$\lambda$で偏微分を行うことで下記が得られる。
$$
\large
\begin{align}
\frac{\partial \log{f_2(\lambda)}}{\partial \lambda} &= \frac{\alpha-1}{\lambda} – \frac{1}{\beta} \\
&= \frac{\alpha \beta – \beta – \lambda}{\lambda \beta} \\
\hat{\lambda}_{MAP} &= (\alpha-1) \beta
\end{align}
$$

vi)
正規分布の確率密度関数の形状より、$\hat{\mu}_{EAP}=\mu_N, \hat{\mu}_{MAP}=\mu_N$である。

・解説
ⅱ)〜iv)では二項分布の確率パラメータ$p$の事後分布に基づいてEAP推定量、MAP推定量の計算を行いました。v)、vi)の事後分布のパラメータはそれぞれ「ポアソン分布の共役事前分布と事後分布の解釈」と「正規分布の共役事前分布の設定と事後分布」で取り扱いました。ⅱ)〜iv)では事後分布のパラメータを元に推定量の計算を行いましたが、このように計算すると式が複雑になるので、v)、vi)のように「①それぞれの確率分布に関する推定量の計算」と「②事後分布のパラメータの計算」を分けて考えるとシンプルに取り扱えて良いのではないかと思います。v)、vi)では簡略化にあたって②は省略し、①のみ取り扱いました。
また、EAP推定量は積分、MAP推定量は微分を用いることでそれぞれ計算できることは抑えておくと良いと思います。
「統計検定準$1$級のワークブック」ではEAP推定量を「ベイズ推定量」のように表現されますが、ベイズ推定が何を指すのかがわかりにくくなるので、この問題では「数理統計学 統計的推論の基礎」に基づいて「EAP推定量」と表記しました。

発展問題

共役事前分布と指数型分布族

予測分布

・問題
パラメータ$\theta$に関する事後分布は観測された標本$x_1,\cdots,x_n$を元に$P(\theta|x_1,\cdots,x_n)$を考える。ここで得られた事後分布を元に新規の標本に関して予測を行うことを考える。

予測を行うにあたっては、「EAP推定量とMAP推定量」で考えたように事後分布を元にパラメータの推定量を計算し、推定量を元に予測を行うのがシンプルである。が、新規のサンプル$x_{n+1}$に関して下記を考えることで予測を行うことも可能である。
$$
\large
\begin{align}
P(x_{n+1}|x_1,\cdots,x_n) = \int P(x_{n+1}|\theta) P(\theta|x_1,\cdots,x_n) d \theta
\end{align}
$$

上記に基づいて定められる$P(x_{n+1}|x_1,\cdots,x_n)$を予測分布(Predictive distribution)という。以下、標本がポアソン分布に基づいて観測された際の予測分布の導出に関して演習形式で確認を行う。下記の問いにそれぞれ答えよ。
i) ポアソン分布$\mathrm{Po}(\lambda)$の確率関数を$p(x)$とおくとき、$p(x)$を$x, \lambda$の式で表せ。
ⅱ) $x_1=2, x_2=3, x_3=5, x_4=2, x_5=3$が観測されたとき、i)の式を元に尤度$L(\lambda)$を表せ。
ⅲ) パラメータ$\lambda$の事前分布にガンマ分布$\displaystyle \mathrm{Ga} \left( 3,\frac{1}{2} \right)$を考える。この確率密度関数を$P(\lambda)$とおくとき$P(\lambda)$を表せ。
iv) ⅱ)の尤度$L(\lambda)=P(x_1,\cdots,x_5|\lambda)$とⅲ)の事前確率$P(\lambda)$を用いて$\lambda$の事後分布を求めよ。
v) iv)で求めた事後分布の確率密度関数$P(\lambda|x_1,\cdots,x_5)$を表せ。
vi) v)の結果などを用いて$(1)$式を元に$P(x_{n+1}|x_1,\cdots,x_5)$を計算せよ。
vⅱ) 負の二項分布$\mathrm{NB}(r,p)$の確率関数を$p(x)$とおくと、$p(x)$は下記のように表せる。
$$
\begin{align}
p(x) &= {}_r H_{x} p^{r} (1-p)^{x} \\
&= {}_{r+x-1} C_{x} p^{r} (1-p)^{x} \\
&= \frac{(r+x-1)!}{x! (r-1)!} p^{r} (1-p)^{x} \quad (2)
\end{align}
$$
$(2)$式を元にvi)の導出結果の$x_6$に対応する確率変数が従う負の二項分布のパラメータを答えよ。

・解答
i)
確率関数$p(x)$は下記のように表すことができる。
$$
\large
\begin{align}
p(x) = \frac{\lambda^{x} e^{-\lambda}}{x!}
\end{align}
$$

ⅱ)
尤度$L(\lambda)$は標本が観測される同時確率に一致するので下記のように考えることができる。
$$
\large
\begin{align}
L(\lambda) &= \prod_{i=1}^{5} p(x_i) = \prod_{i=1}^{5} \frac{\lambda^{x_i} e^{-\lambda}}{x_i!} \\
&= \lambda^{\sum_{i=1}^{5} x_i} e^{-5 \lambda} \left( \prod_{i=1}^{5} x_i! \right)^{-1} \\
&= \lambda^{15} e^{-5 \lambda} \left( \prod_{i=1}^{5} x_i! \right)^{-1}
\end{align}
$$

ⅲ)
パラメータ$\lambda$の事前分布$\displaystyle \mathrm{Ga} \left( 3,\frac{1}{2} \right)$の確率密度関数$P(\lambda)$は下記のように表すことができる。
$$
\large
\begin{align}
P(\lambda) = \frac{2^{3}}{\Gamma(3)} \lambda^{3-1} e^{-2 \lambda}
\end{align}
$$

iv)
事後分布の確率密度関数を$P(\lambda|x_1,\cdots,x_5)$とおくと、$P(\lambda|x_1,\cdots,x_5)$は下記のように考えることができる。
$$
\large
\begin{align}
P(\lambda|x_1,\cdots,x_n) & \propto P(x_1,\cdots,x_5|\lambda)P(\lambda) \\
& \propto \lambda^{15} e^{-5 \lambda} \times \lambda^{3-1} e^{-2 \lambda} \\
&= \lambda^{18-1} e^{-7 \lambda}
\end{align}
$$

上記より、$\lambda$の事後分布はガンマ分布$\displaystyle \mathrm{Ga} \left( 18,\frac{1}{7} \right)$であると考えることができる。

v)
$P(\lambda|x_1,\cdots,x_n)$はガンマ分布$\displaystyle \mathrm{Ga} \left( 18,\frac{1}{7} \right)$の確率密度関数であるので下記のように表せる。
$$
\large
\begin{align}
P(\lambda|x_1,\cdots,x_n) = \frac{7^{18}}{\Gamma(18)} \lambda^{18-1} e^{-7 \lambda}
\end{align}
$$

vi)
$(1)$式を元に$P(x_{6}|x_1,\cdots,x_5)$は下記のように計算できる。
$$
\large
\begin{align}
P(x_{6}|x_1,\cdots,x_5) &= \int_{0}^{\infty} P(x_{6}|\lambda) P(\lambda|x_1,\cdots,x_5) d \lambda \quad (1) \\
&= \int_{0}^{\infty} \frac{\lambda^{x_6} e^{-\lambda}}{x_6!} \times \frac{7^{18}}{\Gamma(18)} \lambda^{18-1} e^{-7 \lambda} d \lambda \\
&= \frac{7^{18}}{x_6! \Gamma(18)} \int_{0}^{\infty} \lambda^{18+x_6-1} e^{-8 \lambda} d \lambda \\
&= \frac{7^{18}}{x_6! \Gamma(18)} \times \frac{\Gamma(18+x_6)}{8^{18+x_6}} \\
&= \frac{(18+x_6-1)!}{x_6! (18-1)!} \cdot \left( \frac{7}{8} \right)^{18} \cdot \left( \frac{1}{8} \right)^{x_6}
\end{align}
$$

vⅱ)
$(2)$式に対し、$\displaystyle r=18, x=x_6, p=\frac{7}{8}$で置き換えることでvi)の$P(x_{6}|x_1,\cdots,x_5)$の式が得られる。よって、$x_6$に対応する確率変数は負の二項分布$\displaystyle \mathrm{NB} \left( 18,\frac{7}{8} \right)$に従うと考えられる。

・解説
問題の作成にあたっては下記の問題の設定を主に用いました。

参考

統計検定2級問題解説 ~2021年6月実施~ (問13~問22)

過去問題

過去問題は統計検定公式問題集が問題と解答例を公開しています。こちらを参照してください。


問13 解答

(推定量)

$\boxed{ \ \mathsf{17}\ }$ ①

Ⅰ.母集団の特徴づける定数のことを母数というが、母集団から測定された標本データをもとに、確率分布の(現実には測定できない)母数を推定した数量を推定量という。推定量は標本データの関数として表されるが、確率変数の関数は確率変数なので、推定量は確率変数となる。
Ⅱ.推定量$\hat\theta_n$(推定量の標本分布が標本数$n$によって変化するものとする)が母数$\theta$に確率収束している場合、$\hat\theta$を一致推定量という。
Ⅲ.推定量$\hat\theta$の期待値が常に母数$\theta$に等しくなる場合、$\hat\theta$を不偏推定量という。例えば母分散の推定量である標本分散は一致推定量であるが不偏推定量ではない。


問14 解答

(推定量の期待値、分散)

[1]

$\boxed{ \ \mathsf{18}\ }$ ⑤

$E[\hat\theta]=\theta$となる場合、$\hat\theta$は不偏推定量という。
$$\begin{align}
E[\hat\mu_1]&=E\left[\frac1n\sum_{i=1}^nX_i\right]=\frac1n\sum_{i=1}^nE[X_i]=\frac1n\times n\mu=\mu\\
E[\hat\mu_2]&=E\left[\frac12(X_1+X_2)\right]=\frac12(E[X_1]+E[X_2])=\frac12(\mu+\mu)=\mu\\
E[\hat\mu_3]&=E[X_1]=\mu\\
E[\hat\mu_4]&=E\left[\frac2{n(n+1)}\sum_{i=1}^niX_i\right]=\frac2{n(n+1)}\sum_{i=1}^niE[X_i]=\frac2{n(n+1)}\sum_{i=1}^ni\mu\\&=\frac2{n(n+1)}\times\frac{n(n+1)}{2}\times\mu=\mu
\end{align}$$

[2]

$\boxed{ \ \mathsf{19}\ }$ ①

$$\begin{align}
V[\hat\mu_1]&=V\left[\frac1n\sum_{i=1}^nX_i\right]=\frac1{n^2}\sum_{i=1}^nV[X_i]=\frac1{n^2}\times n\sigma^2=\frac1n\sigma^2\\
V[\hat\mu_2]&=V\left[\frac12(X_1+X_2)\right]=\frac14(V[X_1]+V[X_2])=\frac14(\sigma^2+\sigma^2)=\frac12\sigma^2\\
V[\hat\mu_3]&=V[X_1]=\sigma^2\\
V[\hat\mu_4]&=V\left[\frac2{n(n+1)}\sum_{i=1}^niX_i\right]=\frac4{n^2(n+1)^2}\sum_{i=1}^ni^2V[X_i]=\frac4{n^2(n+1)^2}\sum_{i=1}^ni^2\sigma^2\\&=\frac4{n^2(n+1)^2}\times\frac{n(n+1)(2n+1)}{6}\times\sigma^2=\frac{2(2n+1)}{3n(n+1)}\sigma^2
\end{align}$$
ここで、$n\gt3$なので、$\displaystyle \frac1n\lt\frac12\lt1$
また、$\displaystyle \frac1n=\frac{3(n+1)}{3n(n+1)}<\frac{2(2n+1)}{3n(n+1)}$となることから$V[\hat\mu_1]$が最小となる。


問15 解答

(正規母集団の区間推定とサンプルサイズ)

[1]

$\boxed{ \ \mathsf{20}\ }$ ④

正規母集団から抽出した標本の標本平均は$\bar{X}\sim N(\mu,\sigma^2/n)$なので,$\begin{align}\frac{\bar{X}-\mu}{\sqrt{\sigma^2/n}}\end{align}$は標準正規分布に従う。よって「標準正規分布の上側確率」の表から
$$P\left(|\bar{X}-\mu|\le1.96{\sqrt{\sigma^2/n}}\right)=0.95$$
したがって、真の$\mu$が含まれる確率が$95\%$となる区間($\mu$の$95\%$信頼区間)は以下の通りとなる。
$$\begin{align}
\bar{X}-1.96\frac{\sigma}{\sqrt{n}}\le&\mu\le\bar{X}+1.96\frac{\sigma}{\sqrt{n}}\\
5.25-1.96\times\frac{12}{\sqrt{100}}\le&\mu\le5.25+1.96\times\frac{12}{\sqrt{100}}\\
2.90\le&\mu\le7.60
\end{align}$$

[2]

$\boxed{ \ \mathsf{21}\ }$ ③

[1]から$\mu$の$95\%$信頼区間の幅は$\displaystyle\ 2\times1.96\frac{\sigma}{\sqrt{n}}$。これを$4$以下にしたいので、
$$2\times1.96\times\frac{12}{\sqrt{n}}\le4\ \Rightarrow\ n\ge\left(\frac{2\times1.96\times12}{4}\right)^2=138.3$$


問16 解答

(単回帰モデル、最小二乗法)

[1]

$\boxed{ \ \mathsf{22}\ }$ ①

最小二乗法は実際の値$y_i$と回帰式によって予測された値$\hat{y}_i$との差(残差)の二乗和を最小にするように回帰係数を求める手法である。残差の二乗和(残差平方和)は
$$S=\sum_{i=1}^n(y_i-\hat{y}_i)^2=\sum_{i=1}^n(y_i-\hat\beta x_i)^2=\sum_{i=1}^n(y_i^2-2\hat\beta x_iy_i+\hat\beta^2x_i^2)$$
$S$を最小とする$\hat\beta$を求めるために、$\hat\beta$で偏微分し$0$に等しいとすると、
$$\begin{eqnarray}
\frac{\partial S}{\partial\hat\beta}=\sum_{i=1}^n(-2x_iy_i+2\hat\beta x_i^2)=0\\
\hat\beta\sum_{i=1}^nx_i^2=\sum_{i=1}^nx_iy_i\\
\therefore\ \hat\beta=\frac{\sum_{i=1}^nx_iy_i}{\sum_{i=1}^nx_i^2}
\end{eqnarray}$$

[2]

$\boxed{ \ \mathsf{23}\ }$ ②

Ⅰ.[1]の結果から、一般的に
$$\hat\beta=\frac{\sum_{i=1}^nx_iy_i}{\sum_{i=1}^nx_i^2}\neq\frac{\sum_{i=1}^ny_i}{\sum_{i=1}^nx_i}$$
であるから、
$$\begin{eqnarray}
\hat\beta\sum_{i=1}^nx_i&\neq&\sum_{i=1}^ny_i\\
\sum_{i=1}^ny_i-\hat\beta\sum_{i=1}^nx_i&\neq&0\\
\sum_{i=1}^n\hat u_i&\neq&0
\end{eqnarray}$$
Ⅱ.[1]から
$$\begin{eqnarray}
\hat\beta\sum_{i=1}^nx_i^2=\sum_{i=1}^nx_iy_i\\
\sum_{i=1}^nx_i(y_i-\hat\beta x_i)=0\\
\sum_{i=1}^nx_i(y_i-\hat y_i)=0\\
\sum_{i=1}^nx_i\hat u_i=0
\end{eqnarray}$$
Ⅲ.[1]の結果から、一般的に
$$\hat\beta=\frac{\sum_{i=1}^nx_iy_i}{\sum_{i=1}^nx_i^2}\neq\frac{\sum_{i=1}^ny_i}{\sum_{i=1}^nx_i}$$
であるから、
$$\begin{eqnarray}
\frac1n\hat\beta\sum_{i=1}^nx_i&\neq&\frac1n\sum_{i=1}^ny_i\\
\frac1n\sum_{i=1}^n\hat\beta x_i&\neq&\bar{y}\\
\frac1n\sum_{i=1}^n\hat y_i&\neq&\bar{y}
\end{eqnarray}$$
Ⅳ.Ⅲ.と同じく
$$\begin{eqnarray}
\frac1n\hat\beta\sum_{i=1}^nx_i&\neq&\frac1n\sum_{i=1}^ny_i\\
\hat\beta\bar{x}&\neq&\bar{y}
\end{eqnarray}$$

※定数項を含む単回帰モデル$$y_i=\alpha+\beta x_i+u_i$$の場合、残差平方和は
$$S=\sum_{i=1}^n(y_i-\hat{y}_i)^2=\sum_{i=1}^n(y_i-\hat\alpha-\hat\beta x_i)^2$$
$S$を最小とする$\hat\beta$を求めるために、$\hat\alpha,\hat\beta$で偏微分し$0$に等しいとすると、
$$
\sum_{i=1}^n(y_i^2-2\hat\alpha y_i-2\hat\beta x_iy_i+\hat\alpha^2+2\hat\alpha\hat\beta x_i+\hat\beta^2 x_i^2)
$$
$$\begin{eqnarray}
\frac{\partial S}{\partial\hat\alpha}=\sum_{i=1}^n(-2y_i+2\hat\alpha+2\hat\beta x_i)&=&0\\
n\hat\alpha+\hat\beta\sum_{i=1}^nx_i&=&\sum_{i=1}^ny_i&\cdots(A)\\
\frac{\partial S}{\partial\hat\beta}=\sum_{i=1}^n(-2x_iy_i+2\hat\alpha x_i+2\hat\beta x_i^2)&=&0\\
\hat\alpha\sum_{i=1}^nx_i+\hat\beta\sum_{i=1}^nx_i^2&=&\sum_{i=1}^nx_iy_i&\cdots(B)
\end{eqnarray}$$
$(A)$から
$$\hat\alpha=\frac1n\sum_{i=1}^ny_i-\frac1n\hat\beta\sum_{i=1}^nx_i=\bar{y}-\hat\beta\bar{x}$$
$(B)$から
$$\begin{eqnarray}
(\bar{y}-\hat\beta\bar{x})n\bar{x}+\hat\beta\sum_{i=1}^nx_i^2=\sum_{i=1}^nx_iy_i\\
\hat\beta(\sum_{i=1}^nx_i^2-n\bar{x}^2)=\sum_{i=1}^nx_iy_i-n\bar{x}\bar{y}\\
\hat\beta=\frac{\sum_{i=1}^n(x_i-\bar{x})(y_i-\bar{y})}{\sum_{i=1}^n(x_i-\bar{x})^2}\\
\end{eqnarray}$$
さらに、(A)から
$$\begin{eqnarray}
\sum_{i=1}^ny_i-n\hat\alpha-\hat\beta\sum_{i=1}^nx_i&=&0\\
\sum_{i=1}^n(y_i-\hat\alpha-\hat\beta x_i)&=&0\\
\sum_{i=1}^n(y_i-\hat y_i)&=&0\\
\sum_{i=1}^n\hat u_i&=&0
\end{eqnarray}$$
また
$$\begin{eqnarray}
\bar y=\frac1n\sum_{i=1}^ny_i=\frac1n\sum_{i=1}^n(\hat\alpha+\hat\beta x_i)=\frac1n\sum_{i=1}^n\hat y\\
\bar y=\frac1n\sum_{i=1}^ny_i=\hat\alpha+\frac1n\hat\beta\sum_{i=1}^n x_i=\hat\alpha+\hat\beta\bar x
\end{eqnarray}$$
$(B)$から
$$\begin{eqnarray}
\sum_{i=1}^nx_iy_i-\hat\alpha\sum_{i=1}^nx_i-\hat\beta\sum_{i=1}^nx_i^2&=&0\\
\sum_{i=1}^nx_i(y_i-\hat\alpha-\hat\beta x_i)&=&0\\
\sum_{i=1}^nx_i(y_i-\hat y_i)&=&0\\
\sum_{i=1}^nx_i\hat u_i&=&0
\end{eqnarray}$$
[2]のⅠ.Ⅲ.Ⅳ.に相当する関係はいずれも$(A)$の式から導き出されるもので、定数項を含まないモデルでは$(A)$に相当する条件がなく、Ⅰ.Ⅲ.Ⅳ.の関係は成り立たない。


問17 解答

(母比率の区間推定)

[1]

$\boxed{ \ \mathsf{24}\ }$ ②

成功確率$p$の試行を$n$回行うときに成功する回数$X$は二項分布$B(n,p)$に従う。
  $\therefore\ \ E(X)=np,\ V(X)=np(1-p)$
このとき,$n$がある程度大きいときは,中心極限定理によって,$B(n,p)$は正規分布$N(np,np(1-p))$に近似できる。よって,$X$を標準化すると標準正規分布$N(0,1)$に従う。$$Z=\frac{X-np}{\sqrt{np(1-p)}}=\frac{X/n-p}{\sqrt{\frac{p(1-p)}n}}\sim N(0,1)$$ここで,標本平均 $\hat p=x/n$は$p$の一致推定量なので,$n$が十分大きいとき$p$は$\hat p$に置き換えられる。
したがって,母比率の$100(1-\alpha)\%$信頼区間は,標準正規分布の上側 $100\alpha/2\%$ 点を $z_{\alpha/2}$とすると,$$P\left(\hat p-z_{\alpha/2}\sqrt{\frac{\hat p(1-\hat p)}n}\le p\le\hat p+z_{\alpha/2}\sqrt{\frac{\hat p(1-\hat p)}n}\right)=1-\alpha$$
$500$ 回画びょうを投げて $284$ 回表が出たので,比率の推定値は $\hat p=284/500=0.568$
これから,表が出る確率の$95\%$信頼区間は,$n=500$,$\hat p=0.568$,$\alpha=0.05$として$$\begin{align}\hat p\pm z_{\alpha/2}\sqrt{\frac{\hat p(1-\hat p)}n}=&0.568\pm1.96\times\sqrt{\frac{0.568\times(1-0.568)}{500}}\\=&0.568\pm0.043\\=&[0.525,0.611]\end{align}$$

[2]

$\boxed{ \ \mathsf{25}\ }$ ①

・確率 $p=1/2$ の試行を $n=8$ 回行って成功する回数の分布なので,二項分布 $B(n,p)=B(8,1/2)$ に従う。$$\begin{align}P(X=4)=&{}_8\mathrm{C}_4\times(1/2)^4\times(1-1/2)^{8-4}\\=&\frac{8\times7\times6\times5}{4\times3\times2\times1}\times(1/2)^4\times(1/2)^4=0.273\end{align}$$
・帰無仮説$H_0:p=1/2$、対立仮説$H_1:p\gt1/2$として、$X\ge c_1$のとき$H_0$を棄却する検定は、片側検定となるので、$X=7$のときの$P_-$値は
$$P(X\ge7|H_0)=P(X=7)+P(X=8)=0.031+0.004=0.035$$
・帰無仮説$H_0:p=1/2$、対立仮説$H_1:p\neq1/2$として、$|X-4|\ge c_2$のとき$H_0$を棄却する検定は、両側検定となり確率分布が対称であるので、実現値が$X=7$のときの$P_-$値は
$$\begin{align}P(|X-4|\ge3|H_0)=&P(X=0)+P(X=1)+P(X=7)+P(X=8)\\=&0.004+0.0031+0.031+0.004=0.070\end{align}$$


問18 解答

(母平均の差の検定(分散未知であるが等分散))

$\boxed{ \ \mathsf{26}\ }$ ②

(ア)正規母集団$N(\mu_1,\sigma^2)$から抽出した標本平均$\bar{X}=\frac1m\sum_{i=1}^mX_i$は$N(\mu_1,\sigma^2/m)$に従い、正規母集団$N(\mu_2,\sigma^2)$から抽出した標本平均$\bar{Y}=\frac1n\sum_{i=1}^nY_i$は$N(\mu_2,\sigma^2/n)$に従う。
したがって、正規分布の再生性から、標本平均の差$\bar{X}-\bar{Y}$は$N(\mu_1-\mu_2,\sigma^2/m+\sigma^2/n)$に従う。その結果、$\bar{X}-\bar{Y}$を標準化して$$A=\frac{\bar{X}-\bar{Y}-(\mu_1-\mu_2)}{\sqrt{\frac{\sigma^2}{m}+\frac{\sigma^2}{n}}}\sim N(0,1)$$となる。
(イ)群$1,2$について$$\begin{eqnarray}
\sum_{i=1}^m\frac{(X_i-\bar{X})^2}{\sigma^2}=\frac{(m-1)U_X^2}{\sigma^2}\sim \chi^2(m-1)\\
\sum_{i=1}^n\frac{(Y_i-\bar{Y})^2}{\sigma^2}=\frac{(n-1)U_Y^2}{\sigma^2}\sim \chi^2(n-1)
\end{eqnarray}$$したがって、$\chi^2$分布の再生性から、$$B=\frac{(m-1)U_X^2+(n-1)U_Y^2}{\sigma^2}\sim \chi^2(m+n-2)$$となる。
(ウ)独立な$2$つの確率変数$Z\sim N(0,1)$と$W\sim\chi^2(m)$があるとき、$$\frac{Z}{\sqrt{W/m}}$$は自由度$m$の$t$分布に従う。よって、(ア)と(イ)から$$T=\frac{A}{\sqrt{\frac{B}{m+n-2}}}$$は自由度$m+n-2$の$t$分布に従う。


問19 解答

(独立性の検定)

独立性の検定は,2つの属性$A,B$が独立かどうかの検定。
属性$A$のカテゴリが$A_i$,属性$B$のカテゴリが$B_j$の観測度数を$f_{ij}=O_{ij}$とし,
 $f_{i\cdot}=\sum_jf{ij}$を$i$行の度数合計(行和),
 $f_{\cdot j}=\sum_if{ij}$を$j$列の度数合計(列和),
 $f_{\cdot\cdot}=\sum_i\sum_jf_{ij}=\sum_if_{i\cdot}=\sum_jf_{\cdot j}=n$を全度数合計という。
属性$A,B$が独立という帰無仮説は,$H_0:P(A\cap B)=P(A)P(B)$が成り立つことである。
ここで,カテゴリ$A_i,B_j$の出現確率はそれぞれ$f_{i\cdot}/n,f_{\cdot j}/n$であるので,$H_0$のもとで,属性$A$のカテゴリが$A_i$,属性$B$のカテゴリが$B_j$の期待度数は$$E_{ij}=n(f_{i\cdot}/n)(f_{\cdot j}/n)=f_{i\cdot}f_{\cdot j}/n$$となる。
帰無仮説$H_0$の下で,次検定の統計量$\chi^2$は度数が大きいときに近似的に$\chi^2$分布に従う。行和と列和が固定されていることから自由度は$(r$(行の数)$-1)\times(c$(列の数)$-1)$となる。$$\chi^2=\sum_{i=1}^r\sum_{j=1}^c\frac{(O_{ij}-E_{ij})^2}{E_{ij}}\sim\chi^2((r-1)(c-1))$$有意水準$100\alpha\%$で帰無仮説が棄却されるには,$\chi^2$分布の上側$\alpha$点より上で求めた$\chi^2$統計量が大きくなればよい。

$\boxed{ \ \mathsf{27}\ }$ ③

期待度数は
 喫煙歴あり・心筋梗塞あり $10\times15/20=7.5$
 喫煙歴あり・心筋梗塞なし $10\times15/20=7.5$
 喫煙歴なし・心筋梗塞あり $10\times5/20=2.5$
 喫煙歴なし・心筋梗塞なし $10\times5/20=2.5$
よって、$\chi^2$統計量の実現値は
$$\chi^2=\frac{(9-7.5)^2}{7.5}+\frac{(6-7.5)^2}{7.5}+\frac{(1-2.5)^2}{2.5}+\frac{(4-2.5)^2}{2.5}=2.40$$
$\chi^2$統計量は帰無仮説の下で近似的に自由度$(2-1)\times(2-1)=1$の$\chi^2$分布に従う。
ここで、確率変数$W$が自由度$1$の$\chi^2$分布に従うとき、標準正規分布に従う確率変数$Z$を用いて$W=Z^2$と表わされる。したがって$P_-$値は「正規標準分布の上側確率」の表を用いて、
$$P(W\gt2.40)=P(|Z|\gt\sqrt{2.40})=P(|Z|\gt1.55)=2\times0.0606=0.1212$$


問20 解答

(第一種の過誤)

真実
帰無仮説が正しい対立仮説が正しい
検定の結果帰無仮説を棄却しない
(対立仮説が正しいとは言えない)
正しい第二種の過誤(β)
帰無仮説を棄却する
(対立仮説が正しい)
第一種の過誤(α)
有意水準
正しい
検出力(1-β)

[1]

$\boxed{ \ \mathsf{28}\ }$ ③

$X_j\sim N(\mu_j,1),\ X_k\sim N(\mu_k,1)$ であるから、$X_j-X_k\sim N(\mu_j-\mu_k,2)$
よって、帰無仮説$H_0:\mu_j=\mu_k$の下で$$Z=\frac{X_j-X_k-(\mu_j-\mu_k)}{\sqrt{2}}=\frac{X_j-X_k}{\sqrt{2}}\sim N(0,1)$$が成り立つ。したがって、第1種過誤の確率$\alpha_{12}(1.96\sqrt{2})$の値は$$\alpha_{12}(1.96\sqrt{2})=P(|X_j-X_k|\gt1.96\sqrt{2})=P(|Z|\gt1.96)=2\times0.025=0.050$$

[2]

$\boxed{ \ \mathsf{29}\ }$ ④

$\alpha_{12}(z)$が$(5/3)\%$となるような$z$を定める。
$$\begin{eqnarray}\alpha_{12}(z)=P(|X_j-X_k|\gt z)=P(|Z|\gt z/\sqrt{2})&=&0.05/3\\P(Z\gt z/\sqrt{2})&=&0.05/6=0.0083\end{eqnarray}$$
「正規標準分布の上側確率」の表から、
$P(Z>2.39)=0.0084,\ P(Z>2.40)=0.0082$
$\therefore\ z/\sqrt{2}=2.395\ \Rightarrow\ z=2.395\times\sqrt{2}=3.387$


問21 解答

(一元配置分散分析)

[1]

$\boxed{ \ \mathsf{30}\ }$ ③

対象とするパソコン、調査する対策、計測の順序をランダムに決めているので③が最も適切である。
(①②はパソコンの購入時期の影響を受ける。④⑤は固有のパソコンの性能と対策の順番の影響を受ける。)

[2]

$\boxed{ \ \mathsf{31}\ }$ ②

対策の平方和(水準間平方和)の自由度は対策(水準)の数$-1$なので、$3-1=2$。
誤差の平方和の自由度は総データ数$-$水準の数なので、$12-3=9$。

[3]

$\boxed{ \ \mathsf{32}\ }$ ⑤

水準数$a$、総観測値数$n$の一元配置分散分析において、水準$j$の標本平均及び観測値数を$y_{j\cdot}, n_j$、残差平方和を$S_e$、残差の自由度を$\phi_e$、残差の平均平方を$V_e$とする。
水準$j$の母平均の$100(1-\alpha)\%$信頼区間は$t_{0.05/2}(12-3)=t_{0.025}(9)=2.262$
$$y_{j\cdot}\pm t_{\alpha/2}(\phi_e)\sqrt{\frac{V_e}{n_j}}=y_{j\cdot}\pm t_{\alpha/2}(n-a)\sqrt{\frac{S_e}{(n-a)n_j}}$$
対策$3$の効果の点推定値が$-49.9$なのでこの効果の$95\%$信頼区間
$$\mu-49.9\pm 2.262\times\sqrt{\frac{1890.1}{(12-3)\times4}}=\mu-49.9\pm16.39$$
効果の信頼区間は$[-66.29,-33.51]$となる。


問22 解答

(重回帰モデル,統計ソフトウェアの活用)

※重回帰モデルの統計ソフトウェアによる出力結果の主な項目
$\mathtt{Estimate}$:回帰係数の推定値
$\mathtt{Std.Error}$:回帰係数の推定値の標準誤差
$\mathtt{t\ value}$:$t$値,$\mathtt{Pr(\gt|t|)}$:$P_-$値・・・回帰係数の検定で使う
$\mathtt{Rasidual\ standard\ error}$:誤差項の標準偏差の推定値
$\mathtt{degrees\ of\ freedom}$:自由度
$\mathtt{Multiple\ R-squared}$:決定係数($R^2$)
$\mathtt{Adjusted\ R-squared}$:自由度調整済み決定係数($R^{*2}$)
$\mathtt{F-statistic}$:$F$検定統計量,$\mathtt{p-value}$:$P_-$値・・・回帰の有意性の検定で使う

[1]

$\boxed{ \ \mathsf{33}\ }$ ⑤

$\mathtt{t\ value}$はある説明変数$x_j$は被説明変数$y$の予測に役立たない$iff\ H_0:\beta_j=0$($beta_j$は説明変数$x_j$の回帰係数)とする帰無仮説のもとで、$\hat\beta_j$に基づく$t$統計量の実現値である。回帰係数の推定値の標準誤差を$se(\hat\beta_j)$とすると、$t$統計量の実現値は、$$t=\hat\beta_j/se(\hat\beta_j)\sim t(n-p-1)$$である($n-p-1$は残差の自由度)。
したがって、(ア)の値は$-9.614/3.575=-2.689$

[2]

$\boxed{ \ \mathsf{34}\ }$ ②

① $P_-$値が最も小さい説明変数は$\log($人口密度$)$である。誤り。
② 政令指定都市ダミーの回帰係数が$-0.198$であるので、政令指定都市であれば$1$人あたり社会体育施設数は$e^-0.198=0.82$倍($2$割減)となる。正しい。
③ $15$歳未満人口の割合の$P_-$値は$0.333\ge10\%$なので、帰無仮説は棄却できない。誤り。
④ $log(1$人当たり所得$)$の回帰係数が正なので、$1$人当たり所得が低ければ、$1$人あたり社会体育施設数は少なくなる傾向にある。誤り。
⑤ 統計的に優位性が確認されたとしても、それは説明変数と被説明変数の間に相関関係が見られるということであって、説明変数の被説明変数への因果関係が存在するとは必ずしも言えない。誤り。

[3]

$\boxed{ \ \mathsf{35}\ }$ ④

Ⅰ. $log(1$人当たり所得$)$は、モデルAの結果において有意水準$5\%$で有意でない($P_-$値$\gt0.05$)。誤り。
Ⅱ. 2つのモデルの自由度調整済み決定係数($\mathtt{Adjusted\ R-squared}$)の値を比較すると、モデルBのほうが値が高いので、モデルBのほうがより良いモデルである。正しい。
Ⅲ. 2つのモデルの$F$検定の$P_-$値を見ると、それぞれ$4.494\times10^{-16}, 2.2\times10^{-16}$未満であり、極めて小さい値であることから、説明変数にかかるすべての係数がゼロであるという帰無仮説は棄却される。正しい。



統計検定2級問題解説 ~2021年6月実施~ (問1~問12)

過去問題

過去問題は統計検定公式問題集が問題と解答例を公開しています。こちらを参照してください。


問1 解答

(歪度)

$\boxed{ \ \mathsf{1}\ }$ ①

歪度は,右に裾が長い分布では正の値になり,左に裾が長い分布では負の値になる。
問題のグラフは全体的に右に裾の長い分布となっている。


問2 解答

(年次変化率,幾何平均)

$\boxed{ \ \mathsf{2}\ }$ ②

時点(年,月など) $t$の観測値を$y_t$としたとき,
年次変化率 $(y_{t+1}-y_t)/y_t$ または $y_{t+1}/y_t-1$
$t$年$(1950\le{t}\le1954)$の観測値を$y_t$,年次変化率を$r$としたとき,変化率の平均は幾何平均となるので、
$$
\begin{align} 
r&=(y_{1951}/y_{1950}\times y_{1952}/y_{1951}\times y_{1953}/y_{1952}\times y_{1954}/y_{1953})^{1/4}-1\\
&=(y_{1954}/y_{1950})^{1/4}-1\fallingdotseq 0.154=15.4\%
\end{align}
$$
上式から明らかなことは,各年の変化率の幾何平均は
最初年の値を$y_0$,最後年の値を$y_t$,期間を$t$とすると $\left({y_t}/{y_0}\right)^{1/t}$ で求められる。


問3 解答

(価格指数)

$\boxed{ \ \mathsf{3}\ }$ ②

主な物価指数(デフレータ
・ラスパイレス物価指数…基準年の購入量や取引量等を重みとして算出した価格指数。
品目$i$の基準年価格$=p_{oi}$,基準年数量$=q_{oi}$,比較年価格$=p_{ti}$として$$P_L=\frac{\sum_ip_{ti}q_{0i}}{\sum_ip_{0i}q_{0i}}$$
・パーシェ物価指数…比較年の購入量や取引量等を重みとして算出した価格指数。
品目$i$の基準年価格$=p_{oi}$,比較年数量$=q_{ti}$,比較年価格$=p_{ti}$として$$P_P=\frac{\sum_ip_{ti}q_{ti}}{\sum_ip_{0i}q_{ti}}$$
・フィッシャー物価指数…ラスパイレス指数とパーシェ指数の幾何平均で求められる価格指数。$$P_F=\sqrt{P_L\times P_P}$$

問題は比較年のパーシェ指数を求めるので(基準年を$100$とする)、$$P_P=\frac{80\times80+90\times70}{78\times80+84\times70}\times100=104.8$$


問4 解答

(時系列データの指数化)

[1]

$\boxed{ \ \mathsf{4}\ }$ ③

東京都の$2019$年の新聞発行部数の指数はグラフから$57$
したがって、$1990$年から$2019$年にかけての新聞発行部数は、$1990$年を$100$として$100-57=43$減少したことになる。よって、減少部数は
 $5,190$万部$\times 13\%\times 43/100\fallingdotseq 290$万部

[2]

$\boxed{ \ \mathsf{5}\ }$ ①

問題にある前年比増加率の定義から、前年から減少している場合、増加率は負の値となる。
発行部数指数のグラフを見ると、$2005$年以降は東京都、鳥取県ともに毎年減少している。このことから、前年比増加率のグラフも$2005$年以降は両都県ともに負の値となっている必要がある。これを満たすグラフは①のみである。
(②は鳥取県の$2013$年、④は東京都の$2008$年、⑤は東京都の$2006$年でそれぞれ正の値をとっている。)


問5 解答

(散布図,相関係数,共分散)

[1]

$\boxed{ \ \mathsf{6}\ }$ ⑤

Ⅰ.散布図から、飛型点のとりうる範囲に比べ、飛距離点の取りうる範囲のほうが大きいく、ばらつきが大きいので、飛距離点のほうが分散が大きくなる。正しい。
Ⅱ.2つの散布図を比較すると、飛距離点と飛型点の散布図のほうがプロットされた点が直線状に分布しているので相関が強く、相関係数も高くなる。正しい。
Ⅲ.飛距離点と飛型点の散布図に回帰直線をあてはめると、明らかに$y$切片は正の値をとる。正しい。

[2]

$\boxed{ \ \mathsf{7}\ }$ ④

飛距離点の定義から、飛距離$x$は飛距離点$y$の$1/2$に比例する($x=y/2+68$)。
このとき、飛距離の分散は飛距離点の分散の$1/4$,標準偏差は$1/2$になる。
共分散は,2つのデータの平均からの偏差の積の和なので,片方のデータの平均からの偏差が$1/2$倍となれば,$1/2$倍となる。
相関係数は、共分散をそれぞれの標準偏差で割ったものだから、飛距離と飛型点の相関係数は飛距離点と飛型点の相関係数と等しくなる。


問6 解答

(相関係数,共分散)

$\boxed{ \ \mathsf{8}\ }$ ③

共分散$$\begin{align}s_{xy}&=\frac1{10}\sum_{i=1}^{10}(x_i-\bar{x})(y_i-\bar{y})\\&=\frac1{10}\sum_{i=1}^{10}x_iy_i-\frac1{10}\sum_{i=1}^{10}x_i\bar{y}-\frac1{10}\sum_{i=1}^{10}\bar{x}y_i+\frac1{10}\sum_{i=1}^{10}\bar{x}\bar{y}\\&=\frac1{10}\sum_{i=1}^{10}x_iy_i-\bar{x}\bar{y}\\&=\frac1{10}\sum_{i=1}^{10}x_iy_i-\frac1{10}\sum_{i=1}^{10}x_i\times\frac1{10}\sum_{i=1}^{10}y_i\\&= \frac1{10} \times4548.7-\frac1{10}\times346.3\times\frac1{10}\times121.8=33.08\end{align}$$
標準偏差$$\sigma_x=\sqrt{\frac{10-1}{10}s_x^2}=\sqrt{\frac{9}{10}\times167.4}=12.27$$$$\sigma_y=\sqrt{\frac{10-1}{10}s_y^2}=\sqrt{\frac{9}{10}\times11.6}=3.23$$
よって、相関係数は$$r=\frac{s_{xy}}{\sigma_x\sigma_y}=\frac{33.08}{12.27\times3.23}=0.83$$


問7 解答

(標本抽出法)

$\boxed{ \ \mathsf{9}\ }$ ④

多段抽出法・・・母集団をいくつかのグループ(第1段抽出単位)に分け,そこから無作為抽出でいくつかグループを選び,さらにその中から無作為抽出でいくつかのグループ(第2段抽出単位)を選び・・を何段か繰り返してそこから標本を無作為に抽出する。
層化抽出法・・・母集団をあらかじめいくつかの層(グループ)に分けておき、各層の中から必要な数の調査対象を無作為に抽出する方法。
集落(クラスター)抽出法・・・母集団を小集団であるクラスター(集落)に分け,その中からいくつかのクラスターを無作為に抽出し,それぞれのクラスターにおいて全数調査を行う。


問8 解答

(同時確率関数と相関係数)

$\boxed{ \ \mathsf{10}\ }$ ⑤

まず、$X, Y$の周辺分布を求める。
$\begin{align}
P(X=-1)=P(X=1)&=0+1/4+0=1/4\\
P(X=0)&=1/4+0+1/4=1/2\\
P(Y=-1)=P(Y=1)&=0+1/4+0=1/4\\
P(Y=0)&=1/4+0+1/4=1/2
\end{align}$
これらから$X^2,Y^2$の期待値$E[X^2],E[Y^2]$、分散$V[X^2],V[Y^2]$及び$X^2$と$Y^2$の共分散$Cov(X^2,Y^2)$、相関係数$r$を求める。
$$\begin{align}
E[X^2]&= (-1)^2\times P(X=-1)+0^2\times P(X=0)+1^2\times P(X=1)\\
&=1/4+0+1/4=1/2=\mu_{X^2}\\
E[Y^2]&= (-1)^2\times P(Y=-1)+0^2\times P(Y=0)+1^2\times P(Y=1)\\
&=1/4+0+1/4=1/2=\mu_{Y^2}\\
V[X^2]&=E[(X^2-\mu_{X^2})^2]\\
&=\{(-1)^2-1/2\}^2\times P(X=-1)+(0^2-1/2)^2\times P(X=0)+(1^2-1/2)^2\times P(X=1)\\
&=1/16+1/8+1/16=1/4\\
V[Y^2]&=E[(Y^2-\mu_{Y^2})^2]\\
&={(-1)^2-1/2}^2\times P(Y=-1)+(0^2-1/2)^2\times P(Y=0)+(1^2-1/2)^2\times P(Y=1)\\
&=1/16+1/8+1/16=1/4\\
Cov[X^2,Y^2]&=E[(X^2-\mu_{X^2})(Y^2-\mu_{Y^2})\\
&={(-1)^2-1/2}\times{(-1)^2-1/2}\times P(X=-1,Y=-1)\\
&+{(-1)^2-1/2}\times(0^2-1/2)\times P(X=-1,Y=0)\\
&+{(-1)^2-1/2}\times(1^2-1/2)\times P(X=-1,Y=1)\\
&+(0^2-1/2)\times{(-1)^2-1/2}\times P(X=0,Y=-1)\\
&+(0^2-1/2)\times(0^2-1/2)\times P(X=0,Y=0)\\
&+(0^2-1/2)\times(1^2-1/2)\times P(X=0,Y=1)\\
&+(1^2-1/2)\times{(-1)^2-1/2}\times P(X=1,Y=-1)\\
&+(1^2-1/2)\times(0^2-1/2)\times P(X=1,Y=0)\\
&+(1^2-1/2)\times(1^2-1/2)\times P(X=1,Y=1)\\
&=0-1/16+0-1/16+0-1/16+0-1/16+0=-1/4\\
\therefore r&=\frac{Cov[X^2,Y^2]}{\sqrt{V[X^2]V[Y^2]}}=\frac{-1/4}{\sqrt{1/4\times1/4}}=-1
\end{align}$$
また
$P(X^2=0,Y^2=0)=P(X=0,Y=0)=0$
$P(X^2=0)=P(X=0)=1/2, P(Y^2=0)=P(Y=0)=1/2$
であることから
$P(X^2=0,Y^2=0)\neq P(X^2=0)P(Y^2=0)$
となり、$P(X^2\cap Y^2)=P(X^2)P(Y^2)$が成り立たないため、$X^2$と$Y^2$は互いに独立ではない。


問9 解答

(非復元抽出の確率)

$\boxed{ \ \mathsf{11}\ }$ ⑤

無作為に集められた$25$人の中に同じ誕生日の人が存在する確率を求めるためには、同じ誕生日の人が全くいない確率を求めて$1$から引けばよい。
同じ誕生日がないということなので、$365$日から重複を許さずに$25$日を抽出する確率を求める。
$$\underbrace{\frac{365}{365}\times\frac{364}{365}\times\frac{363}{365}\times\cdots\times\frac{341}{365}}_{25}=\frac1{365^{25}}\times\frac{365!}{340!}$$
よって、同じ誕生日の人が存在する確率は
$$1-\frac{365!}{365^{25}\times340!}$$


問10 解答

(正規分布、標準正規分布)

$\boxed{ \ \mathsf{12}\ }$ ④

確率変数$X$が正規分布$N(60,9^2)$に従うとき、$$Z=\frac{X-60}{9}$$は標準正規分布$N(0,1)$に従う。そこで、
$$P(X\le c)=0.011\iff P(Z\le \frac{c-60}{9})=0.011$$
「標準正規分布の上側確率」の表から$P(X\ge2.29)=0.011$なので、$P(X\le-2.29)=0.011$、$$\begin{align}\therefore \frac{c-60}{9}&=-2.29\\c&=39.39\end{align}$$


問11 解答

(連続型確率変数)

[1]

$\boxed{ \ \mathsf{13}\ }$ ①

$P(X\gt 1)=1-P(X\le 1)=1-F(1)=1-1=0$

[2]

$\boxed{ \ \mathsf{14}\ }$ ③

確率密度関数$f(x)$は累積分布関数$F(x)$を微分して求める。
$$\begin{eqnarray}
f(x)=\frac{d}{dx}F(x)=
\begin{cases}
1&(0\ge x\lt 1)\\
0&(x\lt 0,\ 1\ge x)
\end{cases}
\end{eqnarray}$$
期待値$E(X)$は、
$$E(X)=\int_{-\infty}^\infty xf(x)dx=\int_0^1 x\cdot1dx=\left[\frac{1}{2}x^2\right]_0^1=\frac{1}{2}$$


問12 解答

(幾何分布、チェビシェフの不等式)

[1]

$\boxed{ \ \mathsf{15}\ }$ ③

幾何分布$P(X=x)=p(1-p)^{x-1}$の期待値(平均)は$1/p$
$$\therefore\ P(X)=\frac13\left(\frac23\right)^{n-1}\ \Rightarrow\ E(X)=\frac1{1/3}=3$$

※成功か失敗しかない試行をベルヌーイ試行という。成功確率は $p$。
このベルヌーイ試行を独立に何回も行うとき,初めて成功するまでに“試行”した回数を $X$ とすると,$X$ の確率関数は$$P(X=x)=p(1-p)^{x-1}$$となり,この確率分布をパラメータ $p$ の幾何分布という。(本によっては,初めて成功するまでに“失敗”した回数を $X$ とする定義の仕方もある。)
ここで,等比級数の和$$\displaystyle \sum_{x=0}^\infty a^x=\frac1{1-a}\ \ \ (|a|<1)$$の両辺を $a$ で微分すると$$\displaystyle \sum_{x=0}^\infty xa^{x-1}=\frac1{(1-a)^2}$$さらに,この式の両辺を $a$ で微分すると,$$\displaystyle \sum_{x=0}^\infty x(x-1)a^{x-2}=\frac2{(1-a)^3}$$となる。これを利用して,幾何分布の期待値と分散を求める。$$\begin{align}E[X]=&\sum_{x=0}^\infty xp(1-p)^{x-1}=p\sum_{x=0}^\infty x(1-p)^{x-1}\\=&\frac{p}{\{1-(1-p)\}^2}=\frac1p\\V[X]=&E[X(X-1)]+E[X]-E[X]^2\\=&\sum_{x=0}^\infty x(x-1)p(1-p)^{x-1}+\frac1p-\frac1{p^2}\\=&p(1-p)\sum_{x=0}^\infty x(x-1)(1-p)^{x-2}+\frac1p-\frac1{p^2}\\=&\frac{2p(1-p)}{\{1-(1-p)\}^3}+\frac1p-\frac1{p^2}\\=&\frac{2-2p}{p^2}+\frac{p}{p^2}-\frac1{p^2}=\frac{1-p}{p^2}\\\end{align}$$

[2]

$\boxed{ \ \mathsf{16}\ }$ ④

期待値$E[X]$、分散$V[X]$を持つ確率分布に従う確率変数$X$について、任意の$\epsilon\gt 0$に対して、チェビシェフの不等式$$P(|X-E[X]|\ge\epsilon)\le V[X]/\epsilon^2$$が成り立つ。
また、母平均$\mu=3$、母分散$\sigma^2=6$の母集団から抽出した標本$X_1,\cdots,X_n$の標本平均$\displaystyle\bar{X}=\frac1n\sum_{i=1}^nX_i$の期待値と分散は
$$\begin{eqnarray}E[\bar{X}]=E\left[\frac1n\sum_{i=1}^nX_i\right]=\frac1n\sum_{i=1}^nE[X_i]=\frac{n\mu}n=\mu=3\\V[\bar{X}]=V\left[\frac1n\sum_{i=1}^nX_i\right]=\frac1{n^2}\sum_{i=1}^nV[X_i]=\frac{n\sigma^2}{n^2}=\frac{\sigma^2}{n}=\frac{6}{n}\end{eqnarray}$$
これをチェビシェフの不等式に当てはめると
$$P(|X-3|\ge\epsilon)\le\frac{6/n}{\epsilon^2}$$


https://t.co/tgBHBzOmbf

推測統計フローチャート(推定、検定を考えるにあたっての解法の整理)

中心極限定理などに基づいて母集団の確率分布のパラメータの点推定・区間推定や、パラメータに関する仮説の検定を行う推測統計は、基本的な考え方は一貫している一方で推定の対象や分散の既知・未知などに置ける場合分けなど、関連する概念が多くわかりにくい。
そのため当稿では解法の整理の補助となるように、推測統計に関連するトピックをフローチャートの形式にまとめる。作成にあたっては、「基礎統計学Ⅰ 統計学入門(東京大学出版会)」の$9$章〜$12$章を主に参考にした。

大枠の整理

推測統計を考える際の前提

推測統計を考える際に前提となるのが母集団(population)と標本(sample)である。記述統計学(descriptive statistics)では得られた標本についてのみ考えるが、得られた標本の裏側の母集団についても考察を行うのが推測統計である。

推測統計では母集団の持つ分布である、母集団分布(population distribution)について知ることが目的となる。母集団分布を考えるにあたっては、事象に対して基本的には理論的・経験的に正規分布やポアソン分布などの確率分布をあてはめることができるとされることが多い。正規分布やポアソン分布を母集団分布に仮定できる場合、正規分布の$\mu$や$\sigma^2$、二項分布の$p$、ポアソン分布の$\lambda$のようにいくつかの確率分布のパラメータさえわかれば母集団分布について全て知ることができる。統計的推測(statistical inference)ではこのパラメータを母数(parameter)と呼び、母数の推測が推測統計の目的となる。

よって、推測統計では母集団分布が正規分布の際の$\mu$や$\sigma^2$などが推測の対象となる。

フローチャート

推測統計の手法を用いる際のフローチャートは概ね上記のようになる。書籍などで確認するとトピックが多く大変だが、このように図で整理することでパターンの把握が容易になるのではと思われる。
どの問題もまず最初に推測の対象を考えるとよく、基本的には「母平均」、「母分散」、「その他」で把握しておくと良い。

以下、フローチャートに対応させつつそれぞれのパターンについて確認する。区間推定、検定のどちらも考え方自体はそれほど変わらないため、ここでは区間推定を元に考えることとする。また、全てを同時に抑えるのは大変なので、発展項目と思われるものについては*をつけた。

上側確率について

区間推定や検定を行う際に、確率密度関数の変数$x$の位置とその位置における積分値の対応を考える際に、$\alpha$を導入して考えることが多い。たとえば区間推定を行う際に、母集団分布の母数$\theta$が$L \leq \theta \leq U$のように$L$(lower confidence limit)、$U$(upper confidence limit)を用いて表せると考えると、確率分布と$\alpha$、$L$、$U$の関係は下記のようになる。
$$
\begin{align}
P(L \leq \theta \leq U) = 1 – \alpha
\end{align}
$$
上記が基本的な$\alpha$の考え方であり、標準正規分布表や$t$分布表、$\chi^2$分布の表などと見比べて区間推定や検定を行う。一方で、この際に、表の読み取りの際に$\alpha/2$などが出てきてわかりにくくなるケースがある。

このような状況を防ぐにあたって、「$XX$分布において上側確率が$100\alpha$%となるパーセント点に対応する$XX$の値を$XX_{\alpha}$とする」と表記し、$5$%区間を考えるにあたっては上側確率が2.5%の際は$XX_{\alpha=0.025}$のように、$\alpha/2$ではなく$\alpha=0.025$のように数値を変更する形式で表す方が取り扱いやすいと思われる。また、$x=0$を中心とする左右対称の確率分布の場合は$XX_{\alpha=0.975}=-XX_{\alpha=0.025}<0$であることも抑えておくと良い。これは標準正規分布と$t$分布に当てはまる。

母平均の区間推定(母分散既知)

標本数を$n$、標本平均を$\bar{x}$、母平均を$\mu$、母分散を$\sigma^2$とする。
$$
\begin{align}
z = \frac{\bar{x}-\mu}{\sigma/\sqrt{n}}
\end{align}
$$
上記のように$z$を計算したとき、$z$は平均を引いたのちに標準偏差で割っているので標準化されたと考えることができる。よって$z$は標準正規分布$N(0,1)$に従うと考えることができる。

これにより、$z$値を標準正規分布と見比べることで区間推定を行うことができる。母平均$\mu$の$95$%区間を考えるにあたって、対応する標準正規分布の区間が$z_{\alpha=0.975} \leq z \leq z_{\alpha=0.025}$のように表せるとする。ここで正規分布表より、$z_{\alpha=0.975}=-1.96$、$z_{\alpha=0.025}=1.96$を満たすことが読み取れる。このとき、下記の式変形によって$\mu$の$95$%区間を求めることができる。
$$
\begin{align}
z_{\alpha=0.975} \leq &z \leq z_{\alpha=0.025} \\
z_{\alpha=0.975} \leq &\frac{\bar{x}-\mu}{\sigma/\sqrt{n}} \leq z_{\alpha=0.025} \\
z_{\alpha=0.975}\frac{\sigma}{\sqrt{n}} \leq &\bar{x}-\mu \leq z_{\alpha=0.025}\frac{\sigma}{\sqrt{n}} \\
-z_{\alpha=0.025}\frac{\sigma}{\sqrt{n}} \leq &\mu-\bar{x} \leq -z_{\alpha=0.975}\frac{\sigma}{\sqrt{n}} \\
\bar{x}-z_{\alpha=0.025}\frac{\sigma}{\sqrt{n}} \leq &\mu \leq \bar{x}-z_{\alpha=0.975}\frac{\sigma}{\sqrt{n}} \\
\bar{x}-1.96\frac{\sigma}{\sqrt{n}} \leq &\mu \leq \bar{x}+1.96\frac{\sigma}{\sqrt{n}}
\end{align}
$$

母平均の区間推定(母分散未知)

標本数を$n$、標本平均を$\bar{x}$、母平均を$\mu$、標本分散を$s^2$とする。
$$
\begin{align}
t = \frac{\bar{x}-\mu}{s/\sqrt{n}}
\end{align}
$$
上記のように$t$を計算したとき、$t$はt分布$t(n-1)$に従うと考えることができる。

これにより、$t$値をt分布$t(n-1)$と見比べることで区間推定を行うことができる。母平均$\mu$の95%区間を考えるにあたって、対応する$t$分布の区間が$t_{\alpha=0.975}(n-1) \leq t \leq t_{\alpha=0.025}(n-1)$のように表せるとする。ここで$n=10$の際はt分布の表より、$t_{\alpha=0.025}(10-1)=t_{\alpha=0.025}(9)=2.262$、$t_{\alpha=0.975}(10-1)=-t_{\alpha=0.025}(9)=-2.262$を満たすことが読み取れる。このとき、下記の式変形によって$\mu$の95%区間を求めることができる。
$$
\begin{align}
t_{\alpha=0.975}(9) \leq &t \leq t_{\alpha=0.025}(9) \\
t_{\alpha=0.975}(9) \leq &\frac{\bar{x}-\mu}{s/\sqrt{n}} \leq t_{\alpha=0.025}(9) \\
t_{\alpha=0.975}(9)\frac{s}{\sqrt{n}} \leq &\bar{x}-\mu \leq t_{\alpha=0.025}(9)\frac{s}{\sqrt{n}} \\
-t_{\alpha=0.025}(9)\frac{s}{\sqrt{n}} \leq &\mu-\bar{x} \leq -t_{\alpha=0.975}(9)\frac{s}{\sqrt{n}} \\
\bar{x}-t_{\alpha=0.025}(9)\frac{s}{\sqrt{n}} \leq &\mu \leq \bar{x}+t_{\alpha=0.025}(9)\frac{s}{\sqrt{n}} \\
\bar{x}-2.262\frac{s}{\sqrt{n}} \leq &\mu \leq \bar{x}+2.262\frac{s}{\sqrt{n}}
\end{align}
$$
サンプル数が多くなるにつれて$t$分布は正規分布に近づく。一方で、サンプル数が少ない際は母分散既知の場合に比較して$95$%区間は大きくなる。このことは「母分散がわからない方が母集団の不確実性が大きい」と直感的に解釈しておくと良いと思われる。

母分散の区間推定

標本数を$n$、母分散を$\sigma^2$、標本分散を$s^2$とする。
$$
\begin{align}
\chi^2 = \frac{(n-1)s^2}{\sigma^2}
\end{align}
$$
上記のように$\chi^2$を計算したとき、$t$は$\chi^2$分布$\chi^2(n-1)$に従うと考えることができる。これにより、$\chi^2$値を$\chi^2$分布$\chi^2(n-1)$と見比べることで区間推定を行うことができる。

ここで$\chi^2$分布において上側確率が$100\alpha$%となるパーセント点に対応する$\chi^2$の値を$\chi^2_{\alpha}$とする。このとき母分散$\sigma^2$の$95$%区間は、$\chi^2_{\alpha=0.975}(n-1) \leq \chi^2 \leq \chi^2_{\alpha=0.025}(n-1)$のように表せる。ここで$n=10$の際は$\chi^2$分布の表より、$\chi^2_{\alpha=0.975}(10-1)=\chi^2_{\alpha=0.975}(9)=2.70039$、$\chi^2_{\alpha=0.025}(10-1)=\chi^2_{\alpha=0.025}(9)=19.0228$を満たすことが読み取れる。このとき、下記の式変形によって$\sigma^2$の$95$%区間を求めることができる。
$$
\begin{align}
\chi^2_{\alpha=0.975}(9) \leq &\chi^2 \leq \chi^2_{\alpha=0.025}(9) \\
\chi^2_{\alpha=0.975}(9) \leq &\frac{(n-1)s^2}{\sigma^2} \leq \chi^2_{\alpha=0.025}(9) \\
\frac{1}{\chi^2_{\alpha=0.025}(9)} \leq &\frac{\sigma^2}{(n-1)s^2} \leq \frac{1}{\chi^2_{\alpha=0.975}(9)} \\
\frac{(n-1)s^2}{\chi^2_{\alpha=0.025}(9)} \leq &\sigma^2 \leq \frac{(n-1)s^2}{\chi^2_{\alpha=0.975}(9)} \\
\frac{9s^2}{19.0228} \leq &\sigma^2 \leq \frac{9s^2}{2.70039}
\end{align}
$$

母平均の差の区間推定(母分散が未知だが等しいと仮定)

母集団分布を$N(\mu_1, \sigma^2)$と$N(\mu_2, \sigma^2)$で表すことのできる母分散の等しい二つの正規母集団から個別に標本$X_1, X_2, …, X_m$と$Y_1, Y_2, …, Y_n$を抽出した際の母平均の差$\mu_1-\mu_2$の区間推定について考える。このとき不偏分散を$s^2$とすると$s^2$は下記のように計算できる。
$$
\begin{align}
s^2 = \frac{1}{m+n-2} \left( \sum_{j=1}^{m}(X_i-\bar{X})^2 + \sum_{j=1}^{n}(Y_i-\bar{Y})^2 \right)
\end{align}
$$

ここで下記のように$t$値を計算する。
$$
\begin{align}
t = \frac{(\bar{X}-\bar{Y})-(\mu_1-\mu_2)}{s \sqrt{1/m+1/n}}
\end{align}
$$

このとき上記は自由度$m+n-2$の$t$分布$t(m+n-2)$に従うため、$t(m+n-2)$見比べることで区間推定を行うことができる。母平均の差$\mu_1-\mu_2$の$95$%区間を考えるにあたって、対応する$t$分布$t(m+n-2)$の区間が$t_{\alpha=0.975}(m+n-2) \leq t \leq t_{\alpha=0.025}(m+n-2)$のように表せるとする。ここで$m=10$、$n=10$の際は$t$分布の表より、$t_{\alpha=0.975}(10+10-2)=-t_{\alpha=0.025}(18)=-2.101$、$t_{\alpha=0.025}(10+10-2)=t_{\alpha=0.025}(18)=2.101$を満たすことが読み取れる。このとき、下記の式変形によって$\mu_1-\mu_2$の$95$%区間を求めることができる。
$$
\begin{align}
t_{\alpha=0.975}(18) \leq &t \leq t_{\alpha=0.025}(18) \\
t_{\alpha=0.975}(18) \leq &\frac{(\bar{X}-\bar{Y})-(\mu_1-\mu_2)}{s \sqrt{1/m+1/n}} \leq t_{\alpha=0.025}(18) \\
-t_{\alpha=0.025}(18) \leq &\frac{(\mu_1-\mu_2)-(\bar{X}-\bar{Y})}{s \sqrt{1/m+1/n}} \leq -t_{\alpha=0.975}(18) \\
-t_{\alpha=0.025}(18)s \sqrt{1/m+1/n} \leq &(\mu_1-\mu_2)-(\bar{X}-\bar{Y}) \leq -t_{\alpha=0.975}(18)s \sqrt{1/m+1/n} \\
(\bar{X}-\bar{Y})-t_{\alpha=0.025}(18)s \sqrt{1/m+1/n} \leq &(\mu_1-\mu_2) \leq (\bar{X}-\bar{Y})+t_{\alpha=0.025}(18)s \sqrt{1/m+1/n} \\
(\bar{X}-\bar{Y})-2.101s \sqrt{1/10+1/10} \leq &(\mu_1-\mu_2) \leq (\bar{X}-\bar{Y})+2.101s \sqrt{1/10+1/10} \\
(\bar{X}-\bar{Y})-\frac{2.101s}{\sqrt{5}} \leq &(\mu_1-\mu_2) \leq (\bar{X}-\bar{Y})+\frac{2.101s}{\sqrt{5}}
\end{align}
$$

母平均の差の区間推定(母分散が未知であるかつ等しいと仮定できない)*

二つの母分散が等しいと仮定できない場合の母平均の差の場合は、下記のように集団ごとに不偏分散を計算する。
$$
\begin{align}
s_1^2 &= \frac{1}{m-1} \sum_{j=1}^{m}(X_i-\bar{X})^2 \\
s_2^2 &= \frac{1}{n-1} \sum_{j=1}^{n}(Y_i-\bar{Y})^2
\end{align}
$$
上記のようにそれぞれの集団の不偏分散を計算したのちにウェルチの近似法を用いて$t$値を計算する。
$$
\begin{align}
t = \frac{(\bar{X}-\bar{Y}) – (\mu_1-\mu_2)}{\sqrt{s_1^2/m + s_2^2/n}}
\end{align}
$$

このとき下記のように$\nu$を計算する。
$$
\begin{align}
\nu = \frac{(s_1^2/m + s_2^2/n)^2}{\frac{(s_1^2/m)^2}{m-1} + \frac{(s_2^2/n)^2}{n-1}}
\end{align}
$$
ここで$\nu$に一番近い整数を$\nu’$とすると前述のように計算した$t$値は自由度$\nu’$の$t$分布$t(\nu’)$に近似的に従う。

このとき$\mu_1-\mu_2$の$95$%区間はこれまでと同様に求めることができる。
$$
\begin{align}
t_{\alpha=0.975}(\nu’) \leq &t \leq t_{\alpha=0.025}(\nu’) \\
(\bar{X}-\bar{Y})-t_{\alpha=0.025}(\nu’)\sqrt{s_1^2/m + s_2^2/n} \leq &(\mu_1-\mu_2) \leq (\bar{X}-\bar{Y})+t_{\alpha=0.025}(\nu’)\sqrt{s_1^2/m + s_2^2/n}
\end{align}
$$

他と比較しても式が複雑なので途中計算は省略した。

母分散の比の区間推定 *

二つの集団のサンプル数を$m$、$n$、母分散を$\sigma_1^2$、$\sigma_2^2$とし、不偏標本分散を$s_1^2$、$s_2^2$とする。
$$
\begin{align}
F = \frac{\sigma_2^2 s_1^2}{\sigma_1^2 s_2^2}
\end{align}
$$

このとき上記のように$F$値を定義すると$F$値は自由度$(m-1,n-1)$の$F$分布$F(m-1,n-1)$に従う。この導出にあたっての詳細は省略したが「基礎統計学Ⅰ 統計学入門(赤本)」の$10.5.2$節の記載が参考になる。

さて、このとき$\displaystyle \frac{\sigma_2^2}{\sigma_1^2}$の$95$%区間を求める。
$$
\begin{align}
F_{\alpha=0.975}(m-1,n-1) \leq &F \leq F_{\alpha=0.025}(m-1,n-1) \\
F_{\alpha=0.975}(m-1,n-1) \leq &\frac{\sigma_2^2 s_1^2}{\sigma_1^2 s_2^2} \leq F_{\alpha=0.025}(m-1,n-1) \\
F_{\alpha=0.975}(m-1,n-1)\frac{s_2^2}{s_1^2} \leq &\frac{\sigma_2^2}{\sigma_1^2} \leq F_{\alpha=0.025}(m-1,n-1)\frac{s_2^2}{s_1^2}
\end{align}
$$

負の値や逆数を取るなどの不等号が反転する演算を行っていないことに注意しておくとよい。不等号の反転がある場合の計算がややこしい場合は不等号を一つずつ計算する方がミスが減らせるので、わからなくなったら一つずつ計算する方が良いと思われる。

母比率の区間推定(二項分布)

サンプル数$n$、母比率$p$の二項分布$Binom(n,p)$に従う確率変数$X$の母平均は$np$、母分散は$np(1-p)$と表すことができる。
https://www.hello-statisticians.com/explain-books-cat/toukeigakunyuumon-akahon/ch6_practice.html#61
$$
\begin{align}
z = \frac{X-np}{\sqrt{np(1-p)}}
\end{align}
$$

このとき中心極限定理に基づいて、上記が従う分布は標準正規分布で近似できる。よって、$z$値を標準正規分布と見比べることで区間推定を行うことができる。母比率$p$の$95$%区間を考えるにあたって、対応する標準正規分布の区間が$z_{\alpha=0.975} \leq z \leq z_{\alpha=0.025}$のように表せるとする。ここで正規分布表より、$z_{\alpha=0.975}=-1.96$、$z_{\alpha=0.025}=1.96$を満たすことが読み取れる。このとき、下記の式変形によって$p$の$95$%区間を求めることができる。
$$
\begin{align}
z_{\alpha=0.975} \leq &z \leq z_{\alpha=0.025} \\
z_{\alpha=0.975} \leq &\frac{X-np}{\sqrt{np(1-p)}} \leq z_{\alpha=0.025} \\
-z_{\alpha=0.025} \leq &\frac{p-X/n}{\sqrt{p(1-p)/n}} \leq -z_{\alpha=0.975} \\
-z_{\alpha=0.025} \leq &\frac{p-\hat{p}}{\sqrt{p(1-p)/n}} \leq -z_{\alpha=0.975} \\
-z_{\alpha=0.025}\sqrt{p(1-p)/n} \leq &p-\hat{p} \leq -z_{\alpha=0.975}\sqrt{p(1-p)/n} \\
\hat{p}-z_{\alpha=0.025}\sqrt{p(1-p)/n} \leq &p \leq \hat{p}+z_{\alpha=0.025}\sqrt{p(1-p)/n} \\
\hat{p}-1.96\sqrt{p(1-p)/n} \leq &p \leq \hat{p}+1.96\sqrt{p(1-p)/n}
\end{align}
$$
「基礎統計学Ⅰ 統計学入門」の$11.5.3$の議論により、「$n$が大きい場合大数の法則に基づいて、不等号の一番左と右の式における$p$は$\hat{p}$で近似できる」と考えることができる。よって、$95$%区間は下記のように近似することができる。
$$
\begin{align}
\hat{p}-1.96\sqrt{\hat{p}(1-\hat{p})/n} \leq p \leq \hat{p}+1.96\sqrt{\hat{p}(1-\hat{p})/n}
\end{align}
$$

母比率の区間推定(ポアソン分布)

解法の整理

区間推定

点推定

検定

まとめ

問題演習(基礎統計学Ⅰ)

https://www.hello-statisticians.com/explain-books-cat/toukeigakunyuumon-akahon/ch10_practice.html
https://www.hello-statisticians.com/explain-books-cat/toukeigakunyuumon-akahon/ch11_practice.html
https://www.hello-statisticians.com/explain-books-cat/toukeigakunyuumon-akahon/ch12_practice.html

数学検定2級 解説 〜公式問題集 解説&解答 Ch.3「直線・円の方程式」〜

数学検定$2$級は数ⅡBまで相当の数学の基本トピックに関して取り扱った検定であり、統計学に必要な数学を身につける際の指標に役に立ちます。当記事では「日本数学検定協会 監修」の「数学検定問題集 $2$級」より、第$3$章の「直線・円の方程式」の解説と演習問題の解答例などを取り扱いました。

・数学検定$2$級まとめ
https://www.hello-statisticians.com/math_certificate_2

本章のまとめ

演習

計算技能問題

問題.$1$

$[1]$
傾きが$2$の直線は$y=2x+b$のように表せる。この直線が$(1,-2)$を通ることより下記が成立する。
$$
\large
\begin{align}
-2 &= 2 \cdot 1 + b \\
b &= -4
\end{align}
$$

よって$y=2x-4$が得られる。

$[2]$
直線の傾きは下記のように得られる。
$$
\large
\begin{align}
\frac{5-(-1)}{4-2} &= \frac{6}{2} \\
&= 3
\end{align}
$$

ここで直線$y=3x+b$が$(2,-1)$を通ることで下記が成立する。
$$
\large
\begin{align}
-1 &= 3 \cdot 2 + b \\
b &= -7
\end{align}
$$

よって$y=3x-7$が得られる。

問題.$2$

下記のように$a$の値が得られる。
$$
\large
\begin{align}
\frac{-2-6}{3-(-1)} &= \frac{2-6}{a-(-1)} \\
\frac{-8}{4} &= \frac{-4}{a+1} \\
-2 &= \frac{-4}{a+1} \\
a+1 &= 2 \\
a &= 1
\end{align}
$$

問題.$3$

問題.$4$

問題.$5$

問題.$6$

問題.$7$

数理技能問題

問題.$1$

問題.$2$

問題.$3$

問題.$4$

問題.$5$

問題.$6$

問題.$7$

問題.$8$

統計検定準1級 問題解説 ~2016年6月実施 選択問題及び部分記述問題 問1

過去問題

過去問題は統計検定公式が問題と解答例を公開しています。こちらを参照してください。

解答

[1] 解答

$\boxed{ \ \mathsf{記述1}\ }$ : $0.2$

変動係数 $={標準偏差 }/{ 平均}$ であるから
$$\dfrac{11}{55} = 0.2$$
である.

[2]解答

$\boxed{ \ \mathsf{記述2}\ }$ : $12.0$
餌を変えた後の変動係数を $x$ とおく.変動係数は餌を変える前と後で変化しないので

$$
\dfrac{x}{60} = 0.2
$$

が成り立つ.よって$x=12.0$である.

BFGS法などの準ニュートン法の概要・数式理解とPythonプログラムの確認

BFGS法は非線形の最適化の際によく用いられるアルゴリズムですが、準ニュートン法の$1$つと見なすことができます。当記事ではBFGS法・準ニュートン法の概要や数式理解、具体的な例に対して計算を行うPythonプログラムなどの確認を行いました。
「新版 数理計画入門(朝倉書店)」の$4.6$節の「準ニュートン法」などの内容を参考に作成を行いました。

・用語/公式解説
https://www.hello-statisticians.com/explain-terms

BFGS法の仕組み

ニュートン法と準ニュートン法

多次元ニュートン法は最適化の各反復計算の際にヘッセ行列を活用することで収束を速めることができる手法である。

ニュートン法は収束が速いなど有用である一方で、変数が多い時などはヘッセ行列の計算が容易でないなど、必ずしも良い手法であるとは言えない。

上記を受けて準ニュートン法ではヘッセ行列の計算を定義通りに行わずに漸化式的にヘッセ行列の推定を行う。たとえば$1$次元の変数$x \in \mathbb{R}$と目的関数$f(x)$に対し、下記のように$1 \times 1$のヘッセ行列の推定を行うことができる。
$$
\large
\begin{align}
\nabla^2 f(x^{(k+1)}) \simeq \frac{\nabla f(x^{(k+1)}) – \nabla f(x^{(k)})}{x^{(k+1)}-x^{(k)}} \quad (1)
\end{align}
$$

上記のようにヘッセ行列の近似を行うことで、ニュートン法と同様の計算を行うのが準ニュートン法である。以下、当記事では準ニュートン法の$1$つの手法であるBFGS法について詳しく取り扱った。

ヘッセ行列の近似とBFGS法

$n$次元の変数ベクトル$\mathbf{x} \in \mathbb{R}$に対して目的関数$f(\mathbf{x})$を定義する。このとき$k+1$ステップ目のヘッセ行列$\nabla^2 f(\mathbf{x}^{(k+1)})$の近似行列を$B^{(k+1)}$とおくと、下記が成立する。
$$
\large
\begin{align}
B^{(k+1)} \mathbf{s}^{(k)} &= \mathbf{y}^{(k)} \quad (2) \\
\mathbf{s}^{(k)} &= \mathbf{x}^{(k+1)} – \mathbf{x}^{(k)} \\
\mathbf{y}^{(k)} &= \nabla f(\mathbf{x}^{(k+1)}) – \nabla f(\mathbf{x}^{(k)})
\end{align}
$$

$(2)$式は$(1)$式と対応させて理解すると良い。$(2)$式が成立する近似行列の定め方はいくつか提案されてきたが、よく用いられるBFGS法では下記のような式を元に近似行列$B^{(k+1)}$を定義する。
$$
\large
\begin{align}
B^{(k+1)} &= B^{(k)} + \frac{1}{\beta^{(k)}} \mathbf{y}^{(k)} (\mathbf{y}^{(k)})^{\mathrm{T}} – \frac{1}{\gamma^{(k)}} B^{(k)} \mathbf{s}^{(k)} (\mathbf{s}^{(k)})^{\mathrm{T}} B^{(k)} \\
\beta^{(k)} &= (\mathbf{y}^{(k)})^{\mathrm{T}} \mathbf{s}^{(k)} \\
\gamma^{(k)} &= (\mathbf{s}^{(k)})^{\mathrm{T}} B^{(k)} \mathbf{s}^{(k)}
\end{align}
$$

BFGS法におけるヘッセ行列の近似式

$$
\large
\begin{align}
B^{(k+1)} &= B^{(k)} + \frac{1}{\beta^{(k)}} \mathbf{y}^{(k)} (\mathbf{y}^{(k)})^{\mathrm{T}} – \frac{1}{\gamma^{(k)}} B^{(k)} \mathbf{s}^{(k)} (\mathbf{s}^{(k)})^{\mathrm{T}} B^{(k)} \\
\beta^{(k)} &= (\mathbf{y}^{(k)})^{\mathrm{T}} \mathbf{s}^{(k)} \\
\gamma^{(k)} &= (\mathbf{s}^{(k)})^{\mathrm{T}} B^{(k)} \mathbf{s}^{(k)}
\end{align}
$$

上記のように定めた近似行列$B^{(k+1)}$を用いるとき、下記の下記の$(a)$〜$(c)$が成立する。

$(a) \,$ $B^{(k+1)}$に関して$(2)$式が成立する
$(b) \,$ $B^{(k)}$が対称ならば$B^{(k+1)}$も対称である
$(c) \,$ $B^{(k)}$が正定値かつ$\beta^{(k)}>0$ならば$B^{(k+1)}$も正定値である

以下、$(a)$が成立することを確認する。
$$
\large
\begin{align}
& B^{(k+1)} \mathbf{s}^{(k)} = B^{(k)} \mathbf{s}^{(k)} + \frac{1}{\beta^{(k)}} \mathbf{y}^{(k)} (\mathbf{y}^{(k)})^{\mathrm{T}} \mathbf{s}^{(k)} – \frac{1}{\gamma^{(k)}} B^{(k)} \mathbf{s}^{(k)} (\mathbf{s}^{(k)})^{\mathrm{T}} B^{(k)} \mathbf{s}^{(k)} \\
&= B^{(k)} \mathbf{s}^{(k)} + \frac{1}{\cancel{(\mathbf{y}^{(k)})^{\mathrm{T}} \mathbf{s}^{(k)}}} \mathbf{y}^{(k)} \cancel{(\mathbf{y}^{(k)})^{\mathrm{T}} \mathbf{s}^{(k)}} – \frac{1}{\cancel{(\mathbf{s}^{(k)})^{\mathrm{T}} B^{(k)} \mathbf{s}^{(k)}}} B^{(k)} \mathbf{s}^{(k)} \cancel{(\mathbf{s}^{(k)})^{\mathrm{T}} B^{(k)} \mathbf{s}^{(k)}} \\
&= \mathbf{y}^{(k)}
\end{align}
$$

上記より$(a)$が成立する。また、途中計算では$(\mathbf{y}^{(k)})^{\mathrm{T}} \mathbf{s}^{(k)}$と$(\mathbf{s}^{(k)})^{\mathrm{T}} B^{(k)} \mathbf{s}^{(k)}$がスカラーであることに着目して約分を行なった。

ここで計算した近似行列の$B^{(k+1)}$をニュートン法におけるヘッセ行列に置き換えて下記のような計算を行うことで、準ニュートン法を用いた近似解を計算することができる。
$$
\large
\begin{align}
\mathbf{x}^{(k+1)} = \mathbf{x}^{(k)} – (B^{(k)})^{-1} \nabla f(\mathbf{x}^{(k)})
\end{align}
$$

Pythonを用いたBFGS法の実行

問題設定

「数理計画入門(朝倉書店)」の$4.4$節の「最急降下法」と同様に下記の関数の最適化にあたって、最急降下法のプログラムの作成を行う。
$$
\large
\begin{align}
f(\mathbf{x}) = f(x_1,x_2) = (x_1-1)^2 + 10(x_1^2-x_2)^2
\end{align}
$$

勾配ベクトルの計算・ヘッセ行列の推定

勾配ベクトル$\nabla f(\mathbf{x})$は下記のように計算できる。
$$
\large
\begin{align}
\nabla f(\mathbf{x}) &= \left(\begin{array}{c} \displaystyle \frac{\partial f}{\partial x_1} \\ \displaystyle \frac{\partial f}{\partial x_2} \end{array} \right) \\
&= \left(\begin{array}{c} 2(x_1-1) + 20(x_1^2-x_2) \cdot 2x_1 \\ 20(x_1^2-x_2) \cdot (-1) \end{array} \right) \\
&= \left(\begin{array}{c} 40x_1^3-40x_1x_2+2x_1-2 \\ -20(x_1^2-x_2) \end{array} \right)
\end{align}
$$

ヘッセ行列は下記の数式を元に近似行列を推定する。
$$
\large
\begin{align}
B^{(k+1)} = B^{(k)} + \frac{1}{\beta^{(k)}} \mathbf{y}^{(k)} (\mathbf{y}^{(k)})^{\mathrm{T}} – \frac{1}{\gamma^{(k)}} B^{(k)} \mathbf{s}^{(k)} (\mathbf{s}^{(k)})^{\mathrm{T}} B^{(k)}
\end{align}
$$

BFGS法の実行

下記を実行することでBFGS法による最適化を行うことができる。

import numpy as np

def calc_func_value(x1,x2):
    return (x1-1)**2 + 10*(x1**2-x2)**2

def calc_gradient(x1,x2):
    return np.array([40*x1**3 - 40*x1*x2 + 2*x1 - 2, -20*(x1**2-x2)])

x = np.array([0., 1.])
B = np.eye(2)

alpha = np.arange(-5., 5., 0.0000002)

for k in range(10):
    grad = np.dot(np.linalg.inv(B),calc_gradient(x[0],x[1]))
    x1, x2 = x[0]+alpha*grad[0], x[1]+alpha*grad[1]
    f = calc_func_value(x1,x2)
    s = (x - np.array([x1[np.argmin(f)], x2[np.argmin(f)]])).reshape([2,1])
    y = (calc_gradient(x[0],x[1]) - calc_gradient(x1[np.argmin(f)],x2[np.argmin(f)])).reshape([2,1])
    x[0], x[1] = x1[np.argmin(f)], x2[np.argmin(f)]
    beta, gamma = np.dot(y.T,s), np.dot(s.T,np.dot(B,s))
    B = B + np.dot(y,y.T)/beta - np.dot(np.dot(B,s),np.dot(s.T,B))/gamma
    print("Iter: {:.0f}, x: {}".format(k+1,x))

・実行結果

Iter: 1, x: [ 0.09988482  0.00115184]
Iter: 2, x: [ 0.32845959  0.00381447]
Iter: 3, x: [ 0.63413382  0.29092239]
Iter: 4, x: [ 0.64276477  0.41585505]
Iter: 5, x: [ 0.83666141  0.66037833]
Iter: 6, x: [ 0.9954299   0.99483118]
Iter: 7, x: [ 1.00116088  1.0024978 ]
Iter: 8, x: [ 0.99998693  0.99998305]
Iter: 9, x: [ 0.99999995  0.99999989]
Iter: 10, x: [ 1.  1.]

上記の結果は「数理計画入門(朝倉書店)」の表$4.3$の結果に基本的には一致する。「数理計画入門(朝倉書店)」に直線探索の設定がないので、厳密な再現ではないことに注意が必要である。

参考

数学検定2級 解説 〜公式問題集 解説&解答 Ch.2「三角関数」〜

数学検定$2$級は数ⅡBまで相当の数学の基本トピックに関して取り扱った検定であり、統計学に必要な数学を身につける際の指標に役に立ちます。当記事では「日本数学検定協会 監修」の「数学検定問題集 $2$級」より、第$2$章の「三角関数」の解説と演習問題の解答例などを取り扱いました。

・数学検定$2$級まとめ
https://www.hello-statisticians.com/math_certificate_2

本章のまとめ

加法定理

演習

計算技能問題

問題.$1$

下記のように値が得られる。
$$
\large
\begin{align}
\tan{\left[ 180^{\circ} \left( 2n – \frac{1}{4} \right) \right]} &= \tan{(360^{\circ} \times n – 45 ^{\circ})} \\
&= \tan{(-45^{\circ})} \\
&= -1
\end{align}
$$

問題.$2$

$[1]$
$\displaystyle \sin{\theta}-\cos{\theta}=\frac{1}{3}$の両辺を$2$乗すると下記が得られる。
$$
\large
\begin{align}
(\sin{\theta}-\cos{\theta})^{2} &= \left( \frac{1}{3} \right)^{2} \\
\sin^{2}{\theta} + \cos^{2}{\theta} – 2 \sin{\theta} \cos{\theta} &= \frac{1}{9} \\
1 – 2 \sin{\theta} \cos{\theta} &= \frac{1}{9} \\
2 \sin{\theta} \cos{\theta} &= 1-\frac{1}{9} \\
\sin{\theta} \cos{\theta} &= \frac{4}{9}
\end{align}
$$

このとき$(\sin{\theta}+\cos{\theta})^2$は下記のように計算できる。
$$
\large
\begin{align}
(\sin{\theta}+\cos{\theta})^2 &= \sin^{2}{\theta} + \cos^{2}{\theta} + 2 \sin{\theta} \cos{\theta} \\
&= 1 + 2 \cdot \frac{4}{9} \\
&= \frac{17}{9}
\end{align}
$$

ここで$180^{\theta} < \theta < 270^{\circ}$より、$\sin{\theta}<0, \cos{\theta}<0$であり、$\sin{\theta}+\cos{\theta}<0$も同時に成立する。よって$\displaystyle \sin{\theta}+\cos{\theta}=-\frac{\sqrt{17}}{3}$である。

$[2]$
$\displaystyle \sin{\theta}+\cos{\theta}=-\frac{\sqrt{17}}{3}$、$\displaystyle \sin{\theta} \cos{\theta}=\frac{4}{9}$より、$\sin^{3}{\theta}+\cos^{3}{\theta}$の値は下記のように得られる。
$$
\large
\begin{align}
\sin^{3}{\theta}+\cos^{3}{\theta} &= (\sin{\theta}+\cos{\theta})^{3} – 3 \sin{\theta}\cos{\theta}(\sin{\theta}+\cos{\theta}) \\
&= \left( -\frac{\sqrt{17}}{3} \right)^{3} – 3 \cdot \frac{4}{9} \cdot -\frac{\sqrt{17}}{3} \\
&= -\frac{17\sqrt{17}}{27} + \frac{12\sqrt{17}}{27} \\
&= -\frac{(17-12)\sqrt{17}}{3} \\
&= -\frac{5\sqrt{17}}{3}
\end{align}
$$

問題.$3$

$[1]$
$$
\large
\begin{align}
\sin{490^{\circ}} &= \sin{(360^{\circ}+130^{\circ})} \\
&= \sin{130^{\circ}} \\
&= \sin{(180^{\circ}-130^{\circ})} \\
&= \sin{50^{\circ}} \\
&= \cos{(90^{\circ}-50^{\circ})} \\
&= \cos{40^{\circ}}
\end{align}
$$

$[2]$
$$
\large
\begin{align}
\sin{(-560^{\circ})} &= \sin{(360^{\circ} \times 2 – 560^{\circ})} \\
&= \sin{(720^{\circ}-560^{\circ})} \\
&= \sin{160^{\circ}} \\
&= \sin{(180^{\circ}-160^{\circ})} \\
&= \sin{20^{\circ}}
\end{align}
$$

問題.$4$

$[1]$
加法定理を用いて下記のように計算できる。
$$
\large
\begin{align}
\cos{105^{\circ}} &= \cos{(60^{\circ}+45^{\circ})} \\
&= \cos{60^{\circ}}\cos{45^{\circ}} – \sin{60^{\circ}}\sin{45^{\circ}} \\
&= \frac{1}{2} \cdot \frac{\sqrt{2}}{2} – \frac{\sqrt{3}}{2} \cdot \frac{\sqrt{2}}{2} \\
&= \frac{\sqrt{2}}{4} – \frac{\sqrt{6}}{4} \\
&= \frac{\sqrt{2}-\sqrt{6}}{4}
\end{align}
$$

$[2]$
加法定理を用いて下記のように計算できる。
$$
\large
\begin{align}
\tan{15^{\circ}} &= \tan{(60^{\circ}+45^{\circ})} \\
&= \frac{\tan{60^{\circ}}-\tan{45^{\circ}}}{1+\tan{60^{\circ}}\tan{45^{\circ}}} \\
&= \frac{\sqrt{3}-1}{1+\sqrt{3}} \\
&= \frac{(\sqrt{3}-1)(\sqrt{3}-1)}{(\sqrt{3}+1)(\sqrt{3}-1)} \\
&= \frac{3+1-2\sqrt{3}}{3-1} \\
&= 2 – \sqrt{3}
\end{align}
$$

問題.$5$

$[1]$
$\sin^{2}{\alpha}+\cos^{2}{\alpha}=1$より下記が成立する。
$$
\large
\begin{align}
\sin^{2}{\alpha} + \cos^{2}{\alpha} &= 1 \\
\cos^{2}{\alpha} &= 1 – \left( \frac{3}{5} \right)^2 \\
&= \frac{16}{25}
\end{align}
$$

ここで$90^{\circ} < \alpha < 180^{\circ}$であることから$\cos{\alpha}<0$であるので$\displaystyle \cos{\alpha}=-\frac{4}{5}$である。よって$2$倍角の公式に基づいて$\sin{2 \alpha}$は下記のように計算できる。
$$
\large
\begin{align}
\sin{2 \alpha} &= 2 \sin{\alpha} \cos{\alpha} \\
&= 2 \cdot \frac{3}{5} \cdot -\frac{4}{5} \\
&= -\frac{24}{25}
\end{align}
$$

$[2]$
$2$倍角の公式に基づいて$\cos{2 \alpha}$は下記のように計算できる。
$$
\large
\begin{align}
\cos{2 \alpha} &= \cos^{2}{\alpha} – \sin^{2}{\alpha} \\
&= \left( -\frac{4}{5} \right)^{2} – \left( \frac{3}{5} \right)^{2} \\
&= \frac{7}{25}
\end{align}
$$

$[3]$
$[1]$、$[2]$の結果に基づいて下記のように計算できる。
$$
\large
\begin{align}
\tan{2 \alpha} &= \frac{\sin{2 \alpha}}{\cos{2 \alpha}} \\
&= -\frac{24}{25} \times \frac{25}{7} \\
&= -\frac{24}{7}
\end{align}
$$

問題.$6$

$y=\sin^{2}{\theta}-\cos^{2}{\theta}$は下記のように変形できる。
$$
\large
\begin{align}
y &= \sin^{2}{\theta}-\cos^{2}{\theta} \\
&= -(\cos^{2}{\theta}-\sin^{2}{\theta}) \\
&= -\cos{2 \theta}
\end{align}
$$

上記より、関数の周期は$180^{\circ}$である。

問題.$7$

$[1]$
加法定理を元に下記のように計算できる。
$$
\large
\begin{align}
\cos{15^{\circ}} + \cos{75^{\circ}} &= \cos{(45^{\circ}-30^{\circ})} + \cos{(45^{\circ}+30^{\circ})} \\
&= (\cos{45^{\circ}}\cos{30^{\circ}} + \cancel{\sin{45^{\circ}}\sin{30^{\circ}}}) + (\cos{45^{\circ}}\cos{30^{\circ}} – \cancel{\sin{45^{\circ}}\sin{30^{\circ}}}) \\
&= 2 \cos{45^{\circ}}\cos{30^{\circ}} \\
&= 2 \cdot \frac{\sqrt{2}}{2} \cdot \frac{\sqrt{3}}{2} \\
&= \frac{\sqrt{6}}{2}
\end{align}
$$

$[2]$
加法定理を元に下記のように計算できる。
$$
\large
\begin{align}
\cos{15^{\circ}} \cos{75^{\circ}} &= \cos{(45^{\circ}-30^{\circ})} \cos{(45^{\circ}+30^{\circ})} \\
&= (\cos{45^{\circ}}\cos{30^{\circ}} + \sin{45^{\circ}}\sin{30^{\circ}})(\cos{45^{\circ}}\cos{30^{\circ}} – \sin{45^{\circ}}\sin{30^{\circ}}) \\
&= (\cos{45^{\circ}}\cos{30^{\circ}})^{2} – (\sin{45^{\circ}}\sin{30^{\circ}})^{2} \\
&= \frac{2}{4} \cdot \frac{3}{4} – \frac{2}{4} \cdot \frac{1}{4} \\
&= \frac{4}{16} \\
&= \frac{1}{4}
\end{align}
$$

問題.$8$

$[1]$
$$
\large
\begin{align}
\sin{(\theta-30^{\circ})} = \frac{1}{2}
\end{align}
$$

$0^{\circ} \leq \theta < 360^{\circ}$より$-30^{\circ} \leq \theta – 30^{\circ} < 330^{\circ}$であるので、$\theta-30^{\circ}=30^{\circ}, 150^{\circ}$が成立する。よって$\theta=60^{\circ}, 180^{\circ}$である。

$[2]$
$$
\large
\begin{align}
2\sin^{2}{\theta} &= 3\cos{\theta} \\
2(1-\cos^{2}{\theta}) &= 3\cos{\theta} \\
2\cos^{2}{\theta} + 3\cos{\theta} – 2 &= 0 \\
(2\cos{\theta}-1)(\cos{\theta}+2) &= 0 \\
\cos{\theta} &= \frac{1}{2}
\end{align}
$$

ここで$0^{\circ} \leq \theta < 360^{\circ}$より、$\theta=60^{\circ},300^{\circ}$である。

$[3]$
$$
\large
\begin{align}
\sin{\theta} + \cos{\theta} &= 1 \\
\sqrt{2} \left( \sin{\theta} \cdot \frac{\sqrt{2}}{2} + \cos{\theta} \cdot \frac{\sqrt{2}}{2} \right) &= 1 \\
\sin{\theta} \cos{45^{\circ}} + \cos{\theta} \cos{45^{\circ}} &= \frac{1}{\sqrt{2}} \\
\sin{(\theta+45^{\circ})} &= \frac{1}{\sqrt{2}}
\end{align}
$$

$0^{\circ} \leq \theta < 360^{\circ}$より$45^{\circ} \leq \theta + 45^{\circ} < 405^{\circ}$であるので、$\theta+45^{\circ}=45^{\circ}, 135^{\circ}$が成立する。よって$\theta=0^{\circ}, 90^{\circ}$である。

数理技能問題

問題.$1$

下記のように示すことができる。
$$
\large
\begin{align}
\cos{(x+y)} \cos{(x-y)} &= (\cos{x}\cos{y}-\sin{x}\sin{y})(\cos{x}\cos{y}+\sin{x}\sin{y}) \\
&= \cos^{2}{x}\cos^{2}{y} – \sin^{2}{x}\sin^{2}{y} \\
&= \cos^{2}{x}\cos^{2}{y} – (1-\cos^{2}{x})\sin^{2}{y} \\
&= \cos^{2}{x}(\cos^{2}{y}+\sin^{2}{y}) – \sin^{2}{y} \\
&= \cos^{2}{x} – \sin^{2}{y}
\end{align}
$$

問題.$2$

$2$倍角の公式より$\sin{2 \alpha}, \cos{2 \alpha}$は下記のように表せる。
$$
\large
\begin{align}
\sin{2 \alpha} &= 2 \sin{\alpha}{\cos{\alpha}} \\
\cos{2 \alpha} &= 2 \cos^{2}{\alpha} – 1
\end{align}
$$

よって$\cos{3 \alpha}$は下記のように表せる。
$$
\large
\begin{align}
\cos{3 \alpha} &= \cos{(2\alpha + \alpha)} \\
&= \cos{2\alpha}\cos{\alpha} – \sin{2\alpha}\sin{\alpha} \\
&= (2\cos^{2}{\alpha}-1)\cos{\alpha} – 2\sin{\alpha}{\cos{\alpha}}\sin{\alpha} \\
&= 2\cos^{3}{\alpha} – \cos{\alpha} – 2\sin^{2}{\alpha}{\cos{\alpha}} \\
&= 2\cos^{3}{\alpha} – \cos{\alpha} – 2(1-\cos^{2}{\alpha}){\cos{\alpha}} \\
&= 2\cos^{3}{\alpha} – \cos{\alpha} + 2\cos^{2}{\alpha} – 2\cos{\alpha} \\
&= 4\cos^{3}{\alpha} – 3\cos{\alpha}
\end{align}
$$

問題.$3$

直線$y=-2x$が直線$y=0$となす角を$\alpha$、直線$y=3x$が直線$y=0$となす角を$\beta$とおく。このとき直線の傾きに基づいて、$\tan{\alpha}, \tan{\beta}$はそれぞれ下記のように表せる。
$$
\large
\begin{align}
\tan{\alpha} &= -2 \\
\tan{\beta} &= 3
\end{align}
$$

ここで加法定理に基づいて$\tan{(\alpha-\beta)}$は下記のように計算できる。
$$
\large
\begin{align}
\tan{(\alpha-\beta)} &= \frac{\sin{(\alpha-\beta)}}{\cos{(\alpha-\beta)}} \\
&= \frac{\sin{\alpha}\cos{\beta}+\sin{\alpha}\cos{\beta}}{\cos{\alpha}\cos{\beta}+\sin{\alpha}\sin{\beta}} \\
&= \frac{\tan{\alpha}-\tan{\beta}}{1+\tan{\alpha}\tan{\beta}} \\
&= \frac{-2 – 3}{1 + (-2) \cdot 3} \\
&= \frac{-5}{-5} \\
&= 1
\end{align}
$$

$\tan{(\alpha-\beta)}=1$より$\theta=\alpha-\beta=45^{\circ}$である。

問題.$4$

$\displaystyle \sin^{2}{\frac{\alpha}{2}} + \cos^{2}{\frac{\alpha}{2}} = 1$は下記のように変形することができる。
$$
\large
\begin{align}
\sin^{2}{\frac{\alpha}{2}} + \cos^{2}{\frac{\alpha}{2}} &= 1 \\
\frac{\displaystyle \sin^{2}{\frac{\alpha}{2}}}{\displaystyle \cos^{2}{\frac{\alpha}{2}}} + 1 &= \frac{1}{\displaystyle \cos^{2}{\frac{\alpha}{2}}} \\
\tan^{2}{\frac{\alpha}{2}} + 1 &= \frac{1}{\displaystyle \cos^{2}{\frac{\alpha}{2}}}
\end{align}
$$

ここで$\displaystyle \tan{\frac{\alpha}{2}}=t$とおくとき、上記より$\displaystyle \cos^{2}{\frac{\alpha}{2}} = \frac{1}{1+t^2}$が成立する。

$[1]$
$$
\large
\begin{align}
\sin{\alpha} &= \sin{\left( 2 \cdot \frac{\alpha}{2} \right)} \\
&= 2 \sin{\frac{\alpha}{2}} \cos{\frac{\alpha}{2}} \\
&= 2 \tan{\frac{\alpha}{2}} \cos^{2}{\frac{\alpha}{2}} \\
&= 2t \cdot \frac{1}{1+t^2} \\
&= \frac{2t}{1+t^2}
\end{align}
$$

$[2]$
$$
\large
\begin{align}
\cos{\alpha} &= \cos{\left( 2 \cdot \frac{\alpha}{2} \right)} \\
&= 2 \cos^{2}{\frac{\alpha}{2}} – 1 \\
&= 2 \cdot \frac{1}{1+t^2} – 1 \\
&= \frac{2-(1+t^2)}{1+t^2} \\
&= \frac{1-t^2}{1+t^2}
\end{align}
$$

$[3]$
$$
\large
\begin{align}
\tan{\alpha} &= \frac{\sin{\alpha}}{\cos{\alpha}} \\
&= \frac{2t}{\cancel{1+t^2}} \cdot \frac{\cancel{1+t^2}}{1-t^2} \\
&= \frac{2t}{1-t^2}
\end{align}
$$

問題.$5$

$[1]$
下記のように示すことができる。
$$
\large
\begin{align}
\sin{(90^{\circ}+\theta)} &= \sin{90^{\circ}}\cos{\theta} + \cos{90^{\circ}}\sin{\theta} \\
&= 1 \cdot \cos{\theta} + 0 \cdot \sin{\theta} \\
&= \cos{\theta}
\end{align}
$$

$[2]$
下記のように示すことができる。
$$
\large
\begin{align}
\sin{(180^{\circ}+\theta)} &= \sin{180^{\circ}}\cos{\theta} + \cos{180^{\circ}}\sin{\theta} \\
&= 0 \cdot \cos{\theta} + (-1) \cdot \sin{\theta} \\
&= -\sin{\theta}
\end{align}
$$

問題.$6$

問題.$7$

Streamlitの基本操作: 色々なテキスト(文字列)を表示させる

StreamlitPythonベースのWebアプリ開発フレームワークです。その特徴は、Webアプリに関する開発経験や知識が不要で、numpypandasmatplotlibといったPythonの基本的なライブラリが利用できれば、ブラウザベースの簡易的なダッシュボードを作ることができます。

Streamlit ではPythonコードに直接表示するコンポーネントを書いていきます。ここでは、よく使う基本的なコンポーネントのうち、文字列を表示させるためのコンポーネントの紹介と使用例を紹介します。

テキスト表示

テキストを表示するための方法はいくつかあります。以下の表に代表的なものを挙げます。詳細は公式ドキュメントを参照してください。

関数名概要
st.write文字列以外にも多くのオブジェクトを表示する便利な関数。
st.titleタイトルスタイルで文字列を表示する
st.markdownMarkdown形式でドキュメントを記述する。個人的には、見出しなどもMarkdownで書いてしまう。
st.codeソースコードをシンタックスハイライト表示できる。language引数で言語を指定可能(詳細は公式ドキュメント参照)

上記の中でst.writeは実は特殊な関数で、後述するデータフレームやグラフなどもwriteを利用することで表示できるようになります。

他にも、ヘッダースタイルの文字列の表示をするst.headerなどがありますが、st.markdownなどで賄うことができます。気になる方は、API referenceを参照してください(英語ですが、簡潔ですし、利用例と合わせて書かれているのでわかりやすいです)。

利用例

上記の関数を使った例は以下のようになります。

import streamlit as st
import numpy as np
import matplotlib.pyplot as plt

st.title("Streamlit Text Example")

st.markdown("""
## 概要
このページは、テキスト表示機能の具体例を記述するものです。

### 構成
- [st.write](https://docs.streamlit.io/library/api-reference/write-magic/st.write): 色々表示できる
- [st.code](https://docs.streamlit.io/library/api-reference/text/st.code): シンタックスハイライトしたコードを表示できる
""")

st.write("数値: ", 2)
st.write("配列も表示可能: ", np.random.normal(size=5))

body = """
import numpy as np
a = np.random.normal(0, 1, size=500)
"""
st.code(body, language="python")

上記のコードを実行すると以下のようなWebアプリが作成できます。

streamlit run src/streamlit/app_text.py

解説

主なポイントを解説します。

import streamlit as st

streamlitをインポートします。これで、Streamlitの機能が使えるようになります。

st.title("Streamlit Text Example")

タイトルスタイルでテキストを表示します。引数に文字列を指定すれば、そのまま文字列が表示されます。anchorオプションを指定することで、アンカーを指定できます(デフォルトでは入力テキストがアンカーになる)。

st.markdown("""
## 概要
このページは、テキスト表示機能の具体例を記述するものです。

### 構成
- [st.write](https://docs.streamlit.io/library/api-reference/write-magic/st.write): 色々表示できる
- [st.code](https://docs.streamlit.io/library/api-reference/text/st.code): シンタックスハイライトしたコードを表示できる
""")

Markdown形式(GitHub Flavored Markdown)でドキュメントを記載します。見出しレベルの指定や箇条書きなども対応しています。基本的には、Markdown形式でドキュメントを書いていくと楽なのではないかと思います。

st.write("数値: ", 2)
st.write("配列も表示可能: ", np.random.normal(size=5))

st.writeで文字列を表示しています。カンマ区切りで文字列を繋げていくこともできます。テキストだけでなく、数値も入力できます。また、辞書(dict)、配列やリストなどもst.writeで表示することができます。

body = """
import numpy as np
a = np.random.normal(0, 1, size=500)
"""
st.code(body, language="python")

st.codeでシンタックスハイライトされたソースコードを表示することができます。languageオプションで言語を指定できます(デフォルトでPython)。指定できる言語はドキュメントを参照してください。

まとめ

ここでは、Streamlitに文字列などを表示する例を解説しました。

関数を呼び出して、テキストを直接記入するだけで、Webアプリに表示されることが確認できました。Streamlitは、関数を呼び出した箇所にそのままテキストが表示されるので、とてもわかりやすいですね。その分、レイアウトをカスタマイズすることは難しいですが、簡易的なダッシュボードを作成するという点では、

参考

データ可視化のためのプラットフォームの基礎: Streamlit

データの可視化は、データを様々な角度から確認し、データ自体を理解する目的で行われることが多い印象です。探索的データ分析(EDA)と呼ばれることもあります。データ分析の結果は、自分自身で確認するだけでなく、上司や顧客など他者へ説明することが求められることが多いと思います。

このような背景から、データの可視化にあたっては、直感的な操作でインタラクティブにデータを確認できるインターフェースが備わっているととても便利です。このようなインタラクティブなデータ可視化ツールが容易に作成できるプラットフォームとして、streamlitというツールが知られています。

ここでは、Streamlitの環境構築と基礎的な使い方をまとめます。

Streamlit

Streamlitは、Python でWebアプリを開発するためのフレームワークです。主に、データ確認のためのWebアプリが非常に容易に開発できます。Webアプリの開発経験や知識はほぼ不要で、Pythonでpandasやmatplotlib等を利用した経験さえあれば、Webアプリを開発できます。

ただし、容易に開発ができるのには理由があり、他のWebアプリフレームワークと比較してデメリットもあります(大きくは二つ)。

  • Streamlitの優れている点
    • Webアプリの知識や開発経験が不要で、容易にWebアプリを作ることができる
    • インタラクティブにデータを確認できるダッシュボードが作成可能
    • データ入力などにも対応
  • Streamlitの欠点
    • 厳格にレイアウトが定まっているため、誰が作っても同じような見た目になる
    • パフォーマンス(速度)に課題

欠点の一つ目については、自由な表現をするにはCSSなどに直接手を加える必要があり、Webアプリの知識が必要になってきます。二つ目の欠点については、グラフの拡大などWebアプリ内のいずれかに変更を加えると、その都度アプリ全体のPythonコードを再実行します。そのため、一つ操作を加えると結果が反映されるまでに時間がかかってしまうということがあります。

以上の特徴から、簡易的なダッシュボード作成の際に向いているツールだと考えています。特に、jupyterlabと違ってソースコードが表示されないので、顧客への説明などに適しているのではないかと思います。

Streamlit についての詳細は下記の公式ドキュメントを参照ください。

https://streamlit.io/

Streamlitの導入

インストール

インストールはpip を利用できます。詳細は下記の公式インストールドキュメントを参照してください。

https://docs.streamlit.io/library/get-started/installation

pipenvやpoetryなどの仮想環境管理ツールを利用する場合には、それぞれの利用方法を確認ください。

pipでインストールをするには下記のコマンドを実行します。

pip install streamlit

下記コマンドでWebアプリにアクセスできればインストールは完了です。

streamlit hello

デフォルトの設定では、localhostの8501ポートでStreamlitアプリに繋がります。Streamlitコマンドを実行すると、ターミナルに接続URLが表示されるので確認してください。

ポート番号を指定するには、コンフィグファイルを編集するか、Streamlitコマンド実行時に下記のようにポートを指定してください。

streamlit hello --server.port 58090

server.port オプションでポートを設定できます。

StreamlitでWebアプリ作成の概要

StreamlitでWebアプリを開発するには、StreamlitをimportしたpythonファイルさえあればWebアプリができます。

例えば、標準正規分布に従う乱数のヒストグラムを表示するだけのアプリは以下のコードをpythonファイルとして用意しておきます(以下の例では app_main.py)。

import streamlit as st
import numpy as np
import matplotlib.pyplot as plt

st.title("Streamlit App Sample")

st.markdown("""
これはStreamlitのアプリのサンプルです。
""")

arr = np.random.normal(0, 1, size=500)
fig, ax = plt.subplots()
ax.hist(arr, bins=20)
st.pyplot(fig)

上記のように、タイトルやグラフのコンポーネントを直接記述します。

そして、下記コマンドを実行することでStreamlitのWebアプリを構築することができます。

streamlit run app_main.py

ブラウザから以下のようなWebアプリが確認できます。

Streamlit基本操作

ここまで見てきたように、Streamlit ではPythonコードに直接表示するコンポーネントを書いていきます。以下では、よく使う基本的なコンポーネントを紹介します。

テキスト

テキストを表示するにはいくつか方法があります。以下のページでテキストの表示について具体例をまとめています。

データフレーム(表)

グラフ

散布図

折れ線グラフ

棒グラフ

ヒストグラム

ウィジット

レイアウト(サイドバー)

その他覚えておくと良い機能

キャッシュ

複数ページアプリ

まとめ

Streamlitは、関数を呼び出した箇所にそのままコンポーネントが表示されるので、直感的に記述できることが見えたかなと思います。しかしその分、欠点として挙げている通り、レイアウトをカスタマイズすることは難しいです。

簡易的なダッシュボードを作成するという視点に絞ると、色々使えるのではないかと思います。

参考

数学検定2級 解説 〜公式問題集 解説&解答 Ch.7「確率分布」〜

数学検定$2$級は数ⅡBまで相当の数学の基本トピックに関して取り扱った検定であり、統計学に必要な数学を身につける際の指標に役に立ちます。当記事では「日本数学検定協会 監修」の「数学検定問題集 $2$級」より、第$7$章の「確率分布」の解説と演習問題の解答例などを取り扱いました。

・数学検定$2$級まとめ
https://www.hello-statisticians.com/math_certificate_2

本章のまとめ

演習

計算技能問題

問題.$1$

$[1]$
下記のように計算できる。
$$
\large
\begin{align}
\frac{3}{7} \times \frac{2}{6} = \frac{1}{7}
\end{align}
$$

$[2]$
下記のように計算できる。
$$
\large
\begin{align}
\frac{3}{7} \times \frac{4}{6} = \frac{2}{7}
\end{align}
$$

$[3]$
下記のように計算できる。
$$
\large
\begin{align}
\frac{4}{6} = \frac{2}{3}
\end{align}
$$

問題.$2$

確率は$\displaystyle \frac{1}{2}$である。

問題.$3$

$[1]$
下記のように計算できる。
$$
\large
\begin{align}
\frac{2}{5} \times \frac{1}{4} = \frac{1}{10}
\end{align}
$$

$[2]$
下記のように計算できる。
$$
\large
\begin{align}
\frac{2}{5} \times \frac{3}{4} + \frac{3}{5} \times \frac{2}{4} &= \frac{3}{10} + \frac{3}{10} \\
&= \frac{3}{5}
\end{align}
$$

問題.$4$

$[1]$
$$
\large
\begin{align}
\frac{3}{4} \times \frac{2}{3} \times \frac{3}{5} = \frac{3}{10}
\end{align}
$$

$[2]$
$$
\large
\begin{align}
\frac{3}{4} \times \frac{2}{3} \times \frac{2}{5} + \frac{3}{4} \times \frac{1}{3} \times \frac{3}{5} + \frac{1}{4} \times \frac{2}{3} \times \frac{3}{5} &= \frac{1}{5} + \frac{3}{20} + \frac{1}{10} \\
&= \frac{9}{20}
\end{align}
$$

$[3]$
$$
\large
\begin{align}
1 – \frac{1}{4} \times \frac{1}{3} \times \frac{2}{5} &= 1 – \frac{1}{30} \\
&= \frac{29}{30}
\end{align}
$$

問題.$5$

$[1]$
確率分布は下記のように表される。

$X$ $6$$7$$8$$9$$10$$11$$12$
$P(X=k)$ $\displaystyle \frac{1}{10}$$\displaystyle \frac{1}{10}$$\displaystyle \frac{2}{10}$$\displaystyle \frac{2}{10}$$\displaystyle \frac{2}{10}$$\displaystyle \frac{1}{10}$$\displaystyle \frac{1}{10}$

$[2]$
平均$E[X]$は下記のように計算できる。
$$
\large
\begin{align}
E[X] &= \frac{1}{10}(6+7+11+12) + \frac{2}{10}(8+9+10) \\
&= \frac{90}{10} \\
&= 9
\end{align}
$$

$[3]$
$E[X^2]$は下記のように計算できる。
$$
\large
\begin{align}
E[X^2] &= \frac{1}{10}(6^2+7^2+11^2+12^2) + \frac{2}{10}(8^2+9^2+10^2) \\
&= \frac{840}{10} \\
&= 84
\end{align}
$$

ここで$V[X]=E[X^2]-E[X]^2$より、分散$V[X]$は下記のように計算できる。
$$
\large
\begin{align}
V[X] &= E[X^2] – E[X]^2 \\
&= 84 – 9^2 \\
&= 3
\end{align}
$$

問題.$6$

$[1]$
確率分布は下記のように表せる。

$X$ $0$$1$$2$$3$$4$
$P(X=k)$ $\displaystyle \frac{1}{16}$$\displaystyle \frac{4}{16}$$\displaystyle \frac{6}{16}$$\displaystyle \frac{4}{16}$$\displaystyle \frac{1}{16}$

$[2]$
平均$E[X]$は下記のように計算できる。
$$
\large
\begin{align}
E[X] &= \frac{1}{16}(0+4) + \frac{4}{16}(1+3) + \frac{6}{16} \cdot 2 \\
&= \frac{4 + 16 + 12}{16} \\
&= 2
\end{align}
$$

$[3]$
$E[X^2]$は下記のように計算できる。
$$
\large
\begin{align}
E[X^2] &= \frac{1}{16}(0^2+4^2) + \frac{4}{16}(1^2+3^2) + \frac{6}{16} \cdot 2^2 \\
&= \frac{80}{16} \\
&= 5
\end{align}
$$

ここで$V[X]=E[X^2]-E[X]^2$より、分散$V[X]$は下記のように計算できる。
$$
\large
\begin{align}
V[X] &= E[X^2] – E[X]^2 \\
&= 5 – 2^2 \\
&= 1
\end{align}
$$

数理技能問題

問題.$1$

下記のように計算できる。
$$
\large
\begin{align}
\frac{2}{3} \times \frac{2}{4} + \frac{1}{3} \times \frac{1}{4} = \frac{5}{12}
\end{align}
$$

問題.$2$

$$
\large
\begin{align}
\frac{0.8 \cdot 0.2}{0.2 + 0.8 \cdot 0.2 + 0.8 \cdot 0.8 \cdot 0.2} &= \frac{160}{200 + 160 + 128} \\
&= \frac{160}{488} \\
&= \frac{20}{61}
\end{align}
$$

問題.$3$

下記のように計算を行うことができる。
$$
\large
\begin{align}
\frac{300(1-0.05)}{300(1-0.05)+200(1-0.06)} = \frac{285}{473}
\end{align}
$$

問題.$4$

下記のように計算を行える。
$$
\large
\begin{align}
\left( \frac{1}{3} \right)^{3} + {}_3 C_1 \left( \frac{2}{3} \right) \left( \frac{1}{3} \right)^{3} + {}_4 C_2 \left( \frac{2}{3} \right)^{2} \left( \frac{1}{3} \right)^{3} &= \left( \frac{1}{3} \right)^{3} \left[ 1 + \frac{3 \cdot 2}{3} + \frac{6 \cdot 4}{3^2} \right] \\
&= \left( \frac{1}{3} \right)^{3} \cdot \frac{3 + 6 + 8}{3} \\
&= \frac{17}{81}
\end{align}
$$

問題.$5$

$[1]$
確率分布は下記のように表せる。

$X$ $4$$5$$6$$7$
計算式 $\displaystyle \left( \frac{1}{2} \right)^{4} \times 2$$\displaystyle {}_{4} C_{1} \left( \frac{1}{2} \right)^{5} \times 2$$\displaystyle {}_{5} C_{2} \left( \frac{1}{2} \right)^{6} \times 2$$\displaystyle {}_{6} C_{3} \left( \frac{1}{2} \right)^{7} \times 2$
$P(X=k)$ $\displaystyle \frac{1}{8}$$\displaystyle \frac{1}{4}$$\displaystyle \frac{5}{16}$$\displaystyle \frac{5}{16}$

$[2]$
平均$E[X]$は下記のように計算できる。
$$
\large
\begin{align}
E[X] &= 4 \cdot \frac{1}{8} + 5 \cdot \frac{1}{4} (6+7) \cdot \cdot \frac{5}{16} \\
&= \frac{4 \cdot 2 + 5 \cdot 4 + 6 \cdot 5 + 7 \cdot 5}{16} \\
&= \frac{93}{16} = 5.8125
\end{align}
$$

$[3]$
$E[X^2]$は下記のように計算できる。
$$
\large
\begin{align}
E[X] &= 4^2 \cdot \frac{1}{8} + 5^2 \cdot \frac{1}{4} (6^2+7^2) \cdot \cdot \frac{5}{16} \\
&= \frac{4^2 \cdot 2 + 5^2 \cdot 4 + 6^2 \cdot 5 + 7^2 \cdot 5}{16} \\
&= \frac{557}{16}
\end{align}
$$

ここで$V[X]=E[X^2]-E[X]^2$より、分散$V[X]$は下記のように計算できる。
$$
\large
\begin{align}
V[X] &= E[X^2] – E[X]^2 \\
&= \frac{557}{16} – \left( \frac{93}{16} \right)^2 \\
&= \frac{263}{256}
\end{align}
$$

数学検定2級 解説 〜過去問題③ 解答例・解説 1次:計算技能検定・2次:数理技能検定〜

数学検定$2$級は数ⅡBまで相当の数学の基本トピックに関して取り扱った検定であり、統計学に必要な数学を身につける際の目安になります。当記事では「日本数学検定協会 監修」の「数学検定問題集 $2$級」の数学検定$2$級の内容に基づき、過去問題③の解答例と解説の作成を行いました。

・数学検定$2$級まとめ
https://www.hello-statisticians.com/math_certificate_2

$1$次:計算技能検定

問題$1 \,$ 式の展開

下記のように式の展開を行うことができる。
$$
\large
\begin{align}
(x + 3y)(x^2 – 3xy + 9y^2) &= (x^3 – 3x^2y + 9xy^2) + (3xy^2 – 9xy^2 + 27y^3) \\
&= x^3 + 27y^3
\end{align}
$$

・別解
下記のように展開・因数分解の式を応用することもできる。
$$
\large
\begin{align}
(x + 3y)(x^2 – 3xy + 9y^2) &= (x + 3y)(x^2 – x(3y) + (3y)^2) \\
&= x^3 + (3y)^3 \\
&= x^3 + 27y^3
\end{align}
$$

問題$2 \,$ 因数分解の公式

因数分解の公式に基づいて下記のように因数分解を行える。
$$
\large
\begin{align}
x^3 – 3x^2y + 3xy^2 – y^3 = (x-y)^3
\end{align}
$$

問題$3 \,$ 二重根号

$$
\large
\begin{align}
(x-y)^2 &= x^2 – 2xy + y^2 \\
&= (x^2+y^2) – 2xy
\end{align}
$$

上記より、$5-2\sqrt{6}$は二乗の和が$5$で積が$\sqrt{6}$の数によって$x,y$が構成されることから$x=\sqrt{2}, y=\sqrt{3}$があてはまる。よって、下記のように二重根号を外せる。
$$
\large
\begin{align}
\sqrt{5-2\sqrt{6}} &= \sqrt{(\sqrt{3}-\sqrt{2})^2} \\
&= \sqrt{3}-\sqrt{2}
\end{align}
$$

問題$4 \,$ 三角比・三角関数

$\tan{\theta} = -3, \, 90^{\circ}<\theta<180^{\circ}$であるので、$\cos{\theta}$は下記のように得られる。
$$
\large
\begin{align}
\cos{\theta} &= -\frac{1}{\sqrt{3^2+1^2}} \\
&= -\frac{1}{\sqrt{10}}
\end{align}
$$

問題$5 \,$ 順列・組み合わせ

${}_{6} C_{3}$通りであるので下記のように計算できる。
$$
\large
\begin{align}
{}_{6} C_{3} &= \frac{6 \cdot 5 \cdot 4}{3 \cdot 2 \cdot 1} \\
&= 20
\end{align}
$$

問題$6 \,$ 集合と要素

積集合$A \cap B$は下記のように表せる。
$$
\large
\begin{align}
A \cap B = \{ 1,7 \}
\end{align}
$$

問題$7 \,$ 二次方程式の判別式

二次方程式$2x^2+4kx+5k+3=0$の判別式$D$が$D>0$となるような$k$の範囲を求めれば良い。よって下記のように計算を行えば良い。
$$
\large
\begin{align}
\frac{D}{4} = (2k)^2 – 2(5k+3) & > 0 \\
2k^2 – 5k – 3 & > 0 \\
(2k+1)(k-3) & > 0
\end{align}
$$

上記より$\displaystyle k < -\frac{1}{2}, 3 < k$が得られる。

問題$8 \,$ 因数定理

$f(x)=x^3+3x^2+ax+4$が$x-2$で割り切れるとき、因数定理より$f(2)=0$が成立する。よってこのときの$a$は下記のように得られる。
$$
\large
\begin{align}
f(2) = 2^3 + 3 \cdot 2^2 + 2a + 4 &= 0 \\
a &= -12
\end{align}
$$

問題$9 \,$ 二次方程式の解と係数

解と係数の関係より$\alpha+\beta, \alpha \beta$は下記のように表される。
$$
\large
\begin{align}
\alpha + \beta &= -\frac{2}{3} \\
\alpha \beta &= \frac{1}{3}
\end{align}
$$

よって$\alpha^2+\beta^2$の値は下記のように得られる。
$$
\large
\begin{align}
\alpha^2+\beta^2 &= (\alpha+\beta)^2 – 2 \alpha \beta \\
&= \left( -\frac{2}{3} \right)^2 – 2 \cdot \frac{1}{3} \\
&= \frac{4}{9} – \frac{2}{3} \\
&= \frac{4}{9} – \frac{6}{9} \\
&= -\frac{2}{9}
\end{align}
$$

問題$10 \,$ 分母の複素数の実数化

等式は下記のように変形できる。
$$
\large
\begin{align}
a + bi &= \frac{3+i}{2-i} \\
&= \frac{(3+i)(2+i)}{(2-i)(2+i)} \\
&= \frac{6+5i+i^2}{2^2-i^2} \\
&= \frac{6+5i-1}{2^2+1} \\
&= \frac{5(1+i)}{5} \\
&= 1 + i
\end{align}
$$

上記より$a=1, b=1$が得られる。

問題$11 \,$ 対数の計算

下記のように式変形を行える。
$$
\large
\begin{align}
(\log_{3}{2} + \log_{3}{8}) \cdot \log_{4}{3} &= \log_{3}{2^4} \cdot \frac{\log_{3}{3}}{\log_{3}{4}} \\
&= \frac{4 \log_{3}{2}}{2 \log_{3}{2}} \\
&= 2
\end{align}
$$

問題$12 \,$ 点と直線の距離

点と直線の距離の公式に基づいて下記のように計算できる。
$$
\large
\begin{align}
d &= \frac{|0-3-7|}{\sqrt{1^2+3^2}} \\
&= \sqrt{10}
\end{align}
$$

問題$13 \,$ 多項式関数の定積分

下記のように計算できる。
$$
\large
\begin{align}
\int_{0}^{2} (x^2-1) dx &= \left[ \frac{1}{3}x^3 – x \right]_{0}^{2} \\
&= \frac{2^3}{3} – 2 \\
&= \frac{2}{3}
\end{align}
$$

問題$14 \,$ 等比数列の一般項

$[1]$
数列の一般項を$a_n$、公比を$r$とおくと、$a_n = a_0 r^n$である。よって$r$に関して下記が成立する。
$$
\large
\begin{align}
\frac{a_4}{a_1} = \frac{a_0 r^4}{a_0 r} &= \frac{48}{6} \\
r^{3} &= 8 \\
r &= 2
\end{align}
$$

$[2]$
$[1]$の結果より、$a_1=2a_0$であるので$a_0=3$である。よって$a_6$は下記のように得られる。
$$
\large
\begin{align}
a_6 &= a_0 r^6 \\
&= 3 \times 2^6 \\
&= 192
\end{align}
$$

・注意事項
高校数学の範囲では$a_n=a_1r^{n-1}$の場合が多いが、一般的には$a_n=a_0r^n$で用いられることが多いので、ここでは$a_0$を用いました。

問題$15 \,$ ベクトルの内積

$[1]$
内積の定義式に基づいて下記のように計算できる。
$$
\large
\begin{align}
\vec{a} \cdot \vec{b} &= |\vec{a}||\vec{b}| \cos{120^{\circ}} \\
&= 2 \times 3 \times -\frac{1}{2} \\
&= -3
\end{align}
$$

$[2]$
下記のように計算できる。
$$
\large
\begin{align}
|\vec{a}+2\vec{b}| &= \sqrt{(\vec{a}+2\vec{b}) \cdot (\vec{a}+2\vec{b})} \\
&= \sqrt{|\vec{a}|^2 + |\vec{b}|^2 + 2\vec{a} \cdot \vec{b}} \\
&= \sqrt{2^4 + 3^4 + 2 \cdot (-3)} \\
&= \sqrt{28} \\
&= 2 \sqrt{7}
\end{align}
$$

$2$次:数理技能検定

問題$1 \,$

問題$2 \,$

問題$3 \,$

問題$4 \,$

問題$5 \,$

問題$6 \,$

問題$7 \,$

統計検定準1級 問題解説 ~2017年6月実施 選択問題及び部分記述問題 問13~

過去問題

過去問題は統計検定公式が問題と解答例を公開しています。こちらを参照してください。

解答

[1]解答

$\boxed{ \ \mathsf{20}\ }$:①

結合されている終端ノードの距離は(ア),(イ)のいずれでも同じである.$A,B$の距離は$2$であり,表2から距離$2$なのは生徒$1$と生徒$2$の間だけなので,$A,B$が生徒$1$,$2$だとわかる.次に$D,E$の距離をみると約$1.5$であることが表2からわかる.生徒$3~5$の間で距離が$1.5$に近いのは生徒$4$と生徒$5$の$\sqrt{2}$であるからこれもわかる.最後に残ったのが$C$が生徒$3$である.

(ア)において,クラスター$\{A,B\}$と$C$がクラスターを形成しており,その距離は$2$より少し大きい.ここで,$A$と$C$の距離(つまり,生徒$1$と生徒$3$)及び,$B$と$C$(つまり生徒$2$と生徒$3$)の距離はそれぞれ,$\sqrt{17}$,$\sqrt{5}$となっている.$\sqrt{5} \approx 2.2$であるから(ア)が最近隣法であるとわかる.したがって,(イ)は最遠隣法となる.

[2]解答

(1) $\boxed{ \ \mathsf{21}\ }$:①

クラスター中心とそれに対応するクラスターは次のように変化する.

クラスター中心クラスター
初期点$(10,10)$,$(10,8)$$\{ 1 \}$,$\{2,3,4,5\}$
1回目の変化$(10,10)$,$(8,7.25)$$\{1,2\}$, $\{3,4,5\}$
2回目の変化$(10,9)$,$(7.3,7)$$\{1,2\}$, $\{3,4,5\}$

まず,初期点に対するクラスターを考える.下図から明らかに生徒$3$,$4$,$5$は生徒$1$よりも生徒$2$に近い.よって初期点に対して割当てられたクラスターは$\{1\}$,$\{2,3,4,5\}$である.

次に,このクラスターから新しいクラスター中心を求める(1回目の変化).クラスター$\{1\}$の中心は変化せず$(10,10)$である(赤い点).クラスター$\{2,3,4,5\}$に対応する中心は,

\[
\left( \dfrac{10+9+7+6}{4}, \dfrac{8+6+8+7}{4} \right)= (8,7.25)
\]

である(青い点).すると,生徒$1$,$2$が赤い点を中心とするクラスターに属し,生徒$3$,$4$,$5$が青い点を中心とするクラスターに属することがわかる.

したがって,出力されるクラスターは$\{1,2\}$,$\{3,4,5\}$である.

(2回目の変化)クラスター$\{1,2\}$,$\{3,4,5\}$に対応するクラスター中心はそれぞれ$(10,9)$,$(7.3,7)$である.これから出力されるクラスターは$\{1,2\}$,$\{3,4,5\}$であり変化しない.

以上から,出力されるクラスターは$\{1,2\}$,$\{3,4,5\}$である.

(2) $\boxed{ \ \mathsf{22}\ }$:④

下の図から初期点が$(a)$のときはクラスターは$\{1,2,3\}$,$\{4,5\}$となり,初期点が$(b)$のときは$\{1,4,5\}$,$\{2,3\}$となる.

Ch.12 「ベイズ推論」の章末問題の解答例 〜数理統計学(共立出版)〜

当記事は「数理統計学(共立出版)」の読解サポートにあたってChapter.$12$の「ベイズ推論」の章末問題の解答の作成を行いました。
基本的には書籍の購入者向けの解説なので、まだ入手されていない方は購入の上ご確認ください。また、解説はあくまでサイト運営者が独自に作成したものであり、書籍の公式ページではないことにご注意ください。

・解答まとめ
https://www.hello-statisticians.com/answer_textbook_math_stat#green

章末の演習問題について

問題12.1の解答例

$X \sim \mathrm{Bin}(n,p)$より、$p$の共役事前分布にベータ分布$\mathrm{Be}(\alpha,\beta)$を考えることができる。$[1]$、$[3]$もベータ分布の特殊な例と見ることができるので、実質的には$[2]$で$[1]$、$[3]$も内包することができる。

よって確率変数$Y$が$Y \sim \mathrm{Be}(\alpha,\beta)$であるときの$E[Y]$を先に導出し、その結果をそれぞれの設問で適用する。$E[Y]$は下記のように計算できる。
$$
\large
\begin{align}
E[Y] &= \int_{0}^{1} y \times \frac{1}{B(\alpha,\beta)} y^{\alpha-1} (1-y)^{\beta^1} dy \\
&= \frac{1}{B(\alpha,\beta)} \int_{0}^{1} y^{(\alpha+1)-1} (1-y)^{\beta^1} dy \\
&= \frac{B(\alpha+1,\beta)}{B(\alpha,\beta)} \\
&= \frac{\Gamma(\alpha+1)\cancel{\Gamma(\beta)}}{\Gamma(\alpha+\beta+1)} \frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha)\cancel{\Gamma(\beta)}} \\
&= \frac{\cancel{\Gamma(\alpha)}\alpha}{\cancel{\Gamma(\alpha+\beta)}(\alpha+\beta)} \frac{\cancel{\Gamma(\alpha+\beta)}}{\cancel{\Gamma(\alpha)}} \\
&= \frac{\alpha}{\alpha+\beta} \quad (1)
\end{align}
$$

$[1]$
ベータ分布$\mathrm{Be}(1,1)$は一様分布であるので、無情報事前分布と考えることができる。このとき$p$の事後分布を$P(p|x)$とおくと$P(p|x)$は下記のように考えることができる。
$$
\large
\begin{align}
P(p|x) & \propto P(x|p) P(p) \\
&= {}_{n} C_{x} p^{x}(1-p)^{n-x} \times \frac{1}{B(1,1)} p^{1-1}(1-p)^{1-1} \\
& \propto p^{(x+1)-1}(1-p)^{(n-x+1)-1}
\end{align}
$$

よって事後分布は$\mathrm{Be}(x+1,n-x+1)$であり、$p$のEAP推定量を$E[p|X]$とおくと$(1)$式より下記のように考えることができる。
$$
\large
\begin{align}
E[p|X] &= \frac{x+1}{(x+1)+(n-x+1)} \\
&= \frac{x+1}{n+2}
\end{align}
$$

$[2]$
$p$の事前分布にベータ分布$\mathrm{Be}(\alpha,\beta)$を考えるとき、事後分布$P(p|x)$は下記のように考えることができる。
$$
\large
\begin{align}
P(p|x) & \propto P(x|p) P(p) \\
&= {}_{n} C_{x} p^{x}(1-p)^{n-x} \times \frac{1}{B(\alpha,\beta)} p^{\alpha-1}(1-p)^{\beta-1} \\
& \propto p^{(x+\alpha)-1}(1-p)^{(n-x+\beta)-1}
\end{align}
$$

よって事後分布は$\mathrm{Be}(x+\alpha,n-x+\beta)$であり、$p$のEAP推定量を$E[p|X]$とおくと$(1)$式より下記のように考えることができる。
$$
\large
\begin{align}
E[p|X] &= \frac{x+\alpha}{(x+\alpha)+(n-x+\beta)} \\
&= \frac{x+\alpha}{n+\alpha+\beta}
\end{align}
$$

$[3]$
フィッシャー情報量$\displaystyle \sqrt{I(p)} = \sqrt{\frac{n}{p(1-p)}}$に比例するベータ分布$\displaystyle \mathrm{Be} \left( \frac{1}{2},\frac{1}{2} \right)$はジェフリーズの事前分布と考えられる。このとき$p$の事後分布を$P(p|x)$とおくと$P(p|x)$は下記のように考えることができる。
$$
\large
\begin{align}
P(p|x) & \propto P(x|p) P(p) \\
&= {}_{n} C_{x} p^{x}(1-p)^{n-x} \times \frac{1}{B \left( \frac{1}{2},\frac{1}{2} \right)} p^{\frac{1}{2}-1}(1-p)^{\frac{1}{2}-1} \\
& \propto p^{x+\frac{1}{2}-1}(1-p)^{n-x+\frac{1}{2}-1}
\end{align}
$$

よって事後分布は$\displaystyle \mathrm{Be} \left( x+\frac{1}{2},n-x+\frac{1}{2} \right)$であり、$p$のEAP推定量を$E[p|X]$とおくと$(1)$式より下記のように考えることができる。
$$
\large
\begin{align}
E[p|X] &= \frac{x+1/2}{(x+1/2)+(n-x+1/2)} \\
&= \frac{x+1/2}{n+1} \\
&= \frac{2x+1}{2(n+1)}
\end{align}
$$

問題12.2の解答例

まとめ