137

機械学習関連の技術記事を投稿します。137と言えば微細構造定数

【統計学入門(東京大学出版会)】第10章 練習問題 解答

東京大学出版会から出版されている統計学入門(基礎統計学Ⅰ)について第10章の練習問題の解答を書いていく。

本章以外の解答

本章以外の練習問題の解答は別の記事で公開している。
必要に応じて参照されたい。

10.1

誤差  e の分布が  N(0, 0.1) であるから、その期待値は  E(e) = 0 となる。 したがって、測定値の標本分布  \bar{X} の期待値は  E(\bar{X}) = 100 + E(e) = 100 である。

一方で分散  V(\bar{X}) は、


\begin{align}
V(\bar{X}) &= \frac{V(e)}{n} \\
&= \frac{0.1}{10} \\
&= 0.01
\end{align}

となる。

以上から、測定値の標本  \bar{X} の分布は  N(100, 0.01) と求まる。

 N(100, 0.01) N(0, 1) に標準化する場合、


\begin{align}
z = \frac{\bar{X} - 100}{\sqrt{0.01}}
\end{align}

となるから、両側の確率を求めることに注意すると、


\begin{align}
P \left( |\bar{X} - 100|) \gt 0.3 \right) &= P \left( |z| \gt 3 \right) \\
&= 2 \cdot P \left( z \gt 3 \right)
\end{align}

を満たす確率を求めればよい。 上記の確率を求めるPythonプログラムは次のとおりである。

from scipy.stats import norm

print(2 * norm.sf(x=3, loc=0, scale=1))

上記のプログラムを実行すると、次の結果が得られる。

0.0026997960632601866

10.2

測定回数を  n とすると10.1と同様、期待値は  E(\bar{X}) = 100、分散  V(\bar{X}) は、


\begin{align}
V(\bar{X}) &= \frac{V(e)}{n} \\
&= \frac{0.1}{n}
\end{align}

であるから、標準化により、


\begin{align}
z = \frac{\bar{X} - 100}{\sqrt{\frac{0.1}{n}}}
\end{align}

を得る。

したがって、


\begin{align}
P \left( | \bar{X} - 100 | \lt 0.1 \right) &= P \left( \frac{\sqrt{0.1} z}{\sqrt{n}} \lt 0.1 \right) \\
&= 1 - P \left( |z| \ge \sqrt{\frac{n}{10}} \right) \\
&= 1 - 2 \cdot P \left( z \ge \sqrt{\frac{n}{10}} \right) \\
&\ge 0.9
\end{align}

から、


\begin{align}
P \left( z \ge \sqrt{\frac{n}{10}} \right) &\lt 0.05
\end{align}

を満たす  n を求めればよい。

なお、この式を満たす  z は、次のPythonプログラムによって求められる。

from scipy.stats import norm

print(norm.ppf(q=1-0.05, loc=0, scale=1))

結果は、

1.6448536269514722

である。したがって  n は、


\begin{align}
1.6448536269514722 \lt \sqrt{\frac{n}{10}}
\end{align}

より  n \ge 27.06 と求まるから、測定を28回以上繰り返す必要がある。

10.3

i)

正規母集団から標本を抽出するため、その標本平均の標本分布は  N( \mu, \sigma^{2} / n ) に従う。 したがってその標準化、


\begin{align}
Z = \frac{ \bar{X} - \mu }{ \sqrt{ \frac{\sigma^{2}}{n} } }
\end{align}

は標準正規分布  N(0, 1) に従う。

したがって標準平均  \bar{X} が3と6にある確率は、


\begin{align}
P \left( 3 \le \bar{X} \le 6 \right) &= P \left( \frac{3 - \mu }{ \sqrt{ \frac{\sigma^{2}}{n} } } \le \frac{\bar{X} - \mu }{  \sqrt{ \frac{\sigma^{2}}{n} } } \le \frac{6 - \mu }{ \sqrt{ \frac{\sigma^{2}}{n} } } \right) \\
&= P \left( -0.8165 \le z \le 1.633 \right) \\
& = P \left( 0 \le z \le 0.8165 \right) + P \left( 0 \le z \le 1.633 \right)
\end{align}

で求めることができる。これをPythonプログラムを使って求める。

from scipy.stats import norm

x1 = 0.5 - norm.sf(x=0.8165, loc=0, scale=1)
x2 = 0.5 - norm.sf(x=1.633, loc=0, scale=1)
print(x1 + x2)

上記のプログラムを実行すると、

0.7416583899007179

が得られる。

ii)

標本分散  s^{2} は、 \chi^{2} 分布と次のような関係がある。


\begin{align}
\chi^{2} = \frac{(n-1) s^{2}}{\sigma^{2}}
\end{align}

したがって  s^{2} a を超える確率が0.05であるという条件より、


\begin{align}
P \left( s^{2} \gt a \right) &= P \left( \frac{(n-1) s^{2}}{\sigma^{2}} \gt \frac{(n-1) a}{\sigma^{2}} \right) \\
&= P \left( \chi^{2} \gt \frac{(n-1) a}{\sigma^{2}} \right) \\
&= 0.05
\end{align}

が得られるから、この式を満たす自由度  10-1 = 9 \chi^{2} の値を求める。

from scipy.stats import chi2

print(chi2.ppf(q=1-0.05, df=9))

上記のプログラムより、以下の結果が得られる。

16.918977604620448

したがって、


\begin{align}
\frac{(n-1) a}{\sigma^{2}} &= \frac{9a}{15} \\
&= 16.918977604620448
\end{align}

を満たす  a は、28.198となる。

10.4

母集団の分散が未知であるから、スチューデントのt分布を利用する。


\begin{align}
t &= \frac{\bar{X} - \mu}{\sqrt{\frac{s^{2}}{n}}} \\
&= \frac{\bar{X} - 3}{\frac{s}{\sqrt{15}}}
\end{align}

これを用いて、


\begin{align}
P \left( \frac{\bar{X} - 3}{s} \gt a \right) &= P \left( \frac{1}{\sqrt{15}} t \gt a \right) \\
&= P\left( t \gt \sqrt{15} a \right) \\
&= 0.01
\end{align}

この式を満たす自由度  15 - 1 = 14 t の値を求める。

from scipy.stats import t

print(t.ppf(q=1-0.01, df=14))

より、

2.624494067560231

と求まる。 したがって、


\begin{align}
2.624494067560231 = \sqrt{15} a
\end{align}

を満たす  a の値を求めればよく、その値は  a = 0.6776 である。

10.5

2標本問題である。 いずれの母集団の母平均と母分散が既知であるから、標本平均  \bar{X} \bar{Y} の差は正規分布


\begin{align}
N \left( \mu_{1} - \mu_{2}, \frac{\sigma_{1}^{2}}{m} + \frac{\sigma_{2}^{2}}{n} \right)
\end{align}

に従う。

各値を代入すると、


\begin{align}
N \left( \mu_{1} - \mu_{2}, \frac{\sigma_{1}^{2}}{m} + \frac{\sigma_{2}^{2}}{n} \right) &= N \left( -3, \frac{4}{5} \right)
\end{align}

が得られる。

10.6

母分散が既知のときに2つの標本分散の比を求めるときは、F分布


\begin{align}
F = \frac{\sigma_{2}^{2} s_{1}^{2}}{\sigma_{1}^{2} s_{2}^{2}}
\end{align}

を利用するのが便利である。


\begin{align}
P \left( \frac{s_{1}^{2}}{s_{2}^{2}} \gt c \right) &= P \left( F \gt \frac{\sigma_{2}^{2}}{\sigma_{1}^{2}} c \right) \\
&= P \left( F \gt \frac{4}{3} c \right) \\
&= 0.05
\end{align}

この式を満たす自由度  k_{1} = 10 - 1 = 9, k_{2} = 8 - 1 = 7 F の値を求める。

from scipy.stats import f

print(f.ppf(q=1-0.05, dfn=9, dfd=7))

より、

3.6766746989395105

と求まる。

したがって、


\begin{align}
3.6766746989395105 = \frac{4}{3} c
\end{align}

を満たす  c の値を求めればよく、その値は  c = 2.7575 である。

10.7

i)

母平均  \mu、母分散  \sigma^{2} とすると、標本平均の分布は  N(\mu, \sigma^{2} / 10) となる。 したがって標準化、


\begin{align}
z = \frac{\bar{X} - \mu}{\sigma} \sqrt{10}
\end{align}

を考えると、


\begin{align}
P \left( | \bar{X} - \mu | \gt 0.8 \sigma \right) &= P \left( \frac{| \bar{X} - \mu |}{\sigma} \gt 0.8 \right) \\
&= P \left( |z| \gt 0.8 \right) \\
&= 2 \cdot P \left( z \gt 0.8 \right) \\
&= 0.4237
\end{align}

なお、最後は次のPythonプログラムによって求めた。

from scipy.stats import norm

print(2 * norm.sf(x=0.8, loc=0, scale=1))

ii)

自由度が  10 - 1 = 9 であることに注意してスチューデントのt分布


\begin{align}
t = \frac{\bar{X} - \mu}{\sqrt{\frac{s^{2}}{n}}}
\end{align}

を用いると、


\begin{align}
P \left( | \bar{X} - \mu | \gt 0.8 s \right) &= P \left( \frac{| \bar{X} - \mu |}{s} \gt 0.8 \right) \\
&= P \left( |t| \gt 0.8 \right) \\
&= 2 \cdot P \left( t \gt 0.8 \right) \\
&= 0.4443
\end{align}

なお、最後は次のPythonプログラムによって求めた。

from scipy.stats import t

print(2 * t.sf(x=0.8, df=9))

iii)

自由度が  10 - 1 = 9 であることに注意して  \chi^{2} 分布


\begin{align}
\chi^{2} = \frac{(n - 1) s^{2}}{\sigma^{2}}
\end{align}

を用いると、


\begin{align}
1 - P \left( \frac{1}{2} \lt \frac{s^{2}}{\sigma^{2}} \lt 2 \right) &= 1 - P \left( \frac{9}{2} \lt 9 \cdot \frac{s^{2}}{\sigma^{2}} \lt 18 \right)  \\
&= 1 - P \left( \frac{9}{2} \lt \chi^{2} \lt 18 \right) \\
&= 1 - \left( P \left( \chi^{2} \gt \frac{9}{2} \right) - P \left( \chi^{2} \gt 18 \right) \right)  \\
&= 0.1596
\end{align}

なお、最後は次のPythonプログラムによって求めた。

from scipy.stats import chi2

print(1- (chi2.sf(x=9/2, df=9) - chi2.sf(x=18, df=9)))

iv)

2標本問題である。

自由度が  10 - 1 = 9, 10 - 1 = 9 のスチューデントのt分布


\begin{align}
t = \frac{ (\bar{X} - \bar{Y}) - (\mu_{1} - \mu_{2}) }{ s \sqrt{\frac{1}{m} + \frac{1}{n}} }
\end{align}

を用いると、母平均が等しい(すなわち、 \mu_{1} = \mu_{2})ことに注意して、


\begin{align}
P \left( |\bar{X} - \bar{Y}| \ge 3s \right) &= P \left( \frac{|\bar{X} - \bar{Y} - (\mu_{1} - \mu_{2})|}{s \sqrt{\frac{1}{10} + \frac{1}{10}}} \ge \frac{3}{\sqrt{\frac{1}{10} + \frac{1}{10}}} \right) \\
&= P \left( |t| \ge 3 \sqrt{5} \right) \\
&= 0.0045718554422791826
\end{align}

なお、最後は次のPythonプログラムによって求めた。

from scipy.stats import f
from math import sqrt

print(f.sf(x=3 * sqrt(5), dfn=9, dfd=9))

v)

2標本問題である。

自由度が  10 - 1 = 9, 10 - 1 = 9 のF分布


\begin{align}
F &= \frac{\sigma_{2}^{2}}{\sigma_{1}^{2}} \cdot \frac{s_{1}^{2}}{s_{2}^{2}}
\end{align}

と母分散が等しい  \sigma_{1}^{2} = \sigma_{2}^{2} ことを用いて、


\begin{align}
P \left( \frac{s_{2}^{2}}{s_{1}^{2}} \ge 3 \right) + P \left( \frac{s_{1}^{2}}{s_{2}^{2}} \ge 3 \right) &= P \left( \frac{\sigma_{2}^{2}}{\sigma_{1}^{2}} \cdot \frac{s_{2}^{2}}{s_{1}^{2}} \ge 3 \right) + P \left( \frac{\sigma_{1}^{2}}{\sigma_{2}^{2}} \cdot \frac{s_{1}^{2}}{s_{2}^{2}} \ge 3 \right)  \\
&= P \left( F \ge 3 \right) + P \left( F \le \frac{1}{3} \right) \\
&= P \left( F \ge 3 \right) + 1 - P \left( F \ge \frac{1}{3} \right) \\
&= 0.1173
\end{align}

なお、最後は次のPythonプログラムによって求めた。

from scipy.stats import f

print(f.sf(x=3, dfn=9, dfd=9) + 1 - f.sf(x=1/3, dfn=9, dfd=9))

10.8

母集団分布が2次元の正規分布であるから、z変換を行った結果が標準正規分布になることを用いる。


\begin{align}
z = \frac{1}{2} \ln \left( \frac{1+r}{1-r} \right) \\
\eta = \frac{1}{2} \ln\left( \frac{1+\rho}{1-\rho} \right)
\end{align}

このとき、


\begin{align}
\sqrt{n-3} (z-\eta) = N(0, 1)
\end{align}

が確率0.95の範囲に収まるような  c_{1}, c_{2} を求めることになる。 すなわち、


\begin{align}
-1.96 \le \sqrt{12} (z - \eta) \le 1.96
\end{align}

を満たせばよい。 なお標準正規分布で確率0.95(上側確率0.05)となる値は、次のPythonプログラムによって求めた。

from scipy.stats import norm

print(norm.ppf(q=(1-0.95)/2, loc=0, scale=1))

ここで、 \rho = 15 であるから、


\begin{align}
\eta &= \frac{1}{2} \ln \left( \frac{1+0.6}{1-0.6} \right) \\
&= 0.693147
\end{align}

と求まる。 したがって、


\begin{align}
0.127344 \le  z \le 1.25895
\end{align}

一方で、


\begin{align}
r = \frac{e^{2z} - 1}{e^{2z} + 1}
\end{align}

であるから、


\begin{align}
0.1267 \le  r \le 0.8508
\end{align}

が得られ、 c_{1} = 0.1267, c_{2} = 0.8508 と求まる。

10.9

i)

(a)

自由度nの  \chi_{(n)}^{2} 分布の定義は、 z を標準正規分布に従う確率変数として、


\begin{align}
\chi_{(n)}^{2} = \sum_{k=1}^{n} z_{(k)}^{2}
\end{align}

である。 したがって、自由度1の  \chi_{(1)}^{2} 分布は、


\begin{align}
\chi_{(1)}^{2} = z_{(1)}^{2}
\end{align}

となるが、 \chi_{1}^{2} 分布は上側確率のみを与えるので、このための補正を行うと、


\begin{align}
\chi_{\alpha (1)}^{2} = z_{\frac{\alpha}{2} (1)}^{2}
\end{align}

が得られる。

(b)

本書より、自由度  k のスチューデントのt分布の2乗  t_{(k)}^{2} は、F分布  F_{(1, k)} に従う。 ただしt分布は両側確率を与えるものである一方、F分布は上側確率のみを与えるから、(a)の議論と同様に補正を行って、


\begin{align}
t_{\frac{\alpha}{2} (k)}^{2} = F_{\alpha (1, k)}
\end{align}

が得られる。

(c)

 k = 120 であるから、 k が十分に大きい値であると考えることができる。 つまり、標本数を  \infty として考えてよく、このとき標本分散  s^{2} は母分散  \sigma^{2} に近づく。 したがって、


\begin{align}
t_{\alpha (k)} &= \frac{z_{\alpha (k \ge 120)}}{\sqrt{ \frac{s^{2}}{\sigma^{2}} }} \\
&\rightarrow \frac{z_{\alpha (k \ge 120)}}{\sqrt{ \frac{\sigma^{2}}{\sigma^{2}} }} \\
&= z_{\alpha (k \ge 120)}
\end{align}

ii)

i)の各値を求めるPythonプログラムを次に示す。

from scipy.stats import norm, chi2, t, f

alpha = 0.05
k = 120

print("=== (a) ===")
print("Z2: {}".format(norm.ppf(q=1-alpha/2, loc=0, scale=1)**2))
print("chi2: {}".format(chi2.ppf(q=1-alpha, df=1)))

print("=== (b) ===")
print("t2: {}".format(t.ppf(q=1-alpha/2, df=k)**2))
print("F: {}".format(f.ppf(q=1-alpha, dfn=1, dfd=k)))

print("=== (c) ===")
print("t: {}".format(t.ppf(q=1-alpha, df=k)))
print("Z: {}".format(norm.ppf(q=1-alpha, loc=0, scale=1)))

上記のプログラムを実行すると、次のような結果が得られる。

=== (a) ===
Z2: 3.8414588206941254
chi2: 3.841458820694124
=== (b) ===
t2: 3.9201244088524523
F: 3.9201244089699054
=== (c) ===
t: 1.6576508993473795
Z: 1.6448536269514722