数学検定1級 解説 〜公式問題集 解説&解答 Ch.4「応用数理」〜

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

・数学検定まとめ
https://www.hello-statisticians.com/math_certificate

①場合の数

計算技能問題

問題.$1$

問題.$2$

北に$5$回、東に$4$回進む必要があるが、この場合の数は${}_{9} C_{5}$で得られるので下記のように計算できる。
$$
\large
\begin{align}
{}_{9} C_{5} &= \frac{9 \cdot 8 \cdot 7 \cdot 6 \cdot \cancel{5}}{\cancel{5} \cdot 4 \cdot 3 \cdot 2 \cdot 1} \\
&= 9 \cdot 2 \cdot 7 \\
&= 126
\end{align}
$$

問題.$3$

・$4$つの数字が異なる場合
$$
\large
\begin{align}
{}_{10} C_{4} &= \frac{10 \cdot 9 \cdot 8 \cdot 7}{4 \cdot 3 \cdot 2 \cdot 1} \\
&= 10 \cdot 3 \cdot 7 = 210
\end{align}
$$

・$2$つが一致し、$3$種類
$$
\large
\begin{align}
3 {}_{10} C_{3} &= 3 \cdot \frac{10 \cdot 9 \cdot 8}{3 \cdot 2 \cdot 1} \\
&= 10 \cdot 9 \cdot 4 = 360
\end{align}
$$

・$2$つずつ一致し、$2$種類
$$
\large
\begin{align}
{}_{10} C_{2} &= \frac{10 \cdot 9}{2 \cdot 1} \\
&= 45
\end{align}
$$

・$3$が一致し、$2$種類
$$
\large
\begin{align}
2 \cdot {}_{10} C_{2} &= \frac{10 \cdot 9}{2 \cdot 1} \\
&= 90
\end{align}
$$

・$4$つの数字が一致し、$1$種類
$$
\large
\begin{align}
{}_{10} C_{1} = 10
\end{align}
$$

よって、場合の数は下記のように計算できる。
$$
\large
\begin{align}
210 + 360 + 45 + 90 + 10 = 715
\end{align}
$$

数理技能問題

問題.$1$

問題.$2$

問題.$3$

②確率

計算技能問題

問題.$1$

・$[1]$
対局数が$3$回である場合はどちらかの$3$連勝の場合であるので確率は下記のように計算できる。
$$
\large
\begin{align}
\left( \frac{1}{2} \right)^{3} \times 2 = \frac{1}{4}
\end{align}
$$

対局数が$4$回である場合は$2$勝$1$敗の棋士が$4$戦目で勝利する場合なので、下記のように確率を計算できる。
$$
\large
\begin{align}
\left( \frac{1}{2} \right)^{4} \times {}_{3} C_{1} \times 2 = \frac{3}{8}
\end{align}
$$

対局数が$5$回である場合は$2$勝$2$敗の棋士が$4$戦目で勝利する場合なので、下記のように確率を計算できる。
$$
\large
\begin{align}
\left( \frac{1}{2} \right)^{5} \times {}_{4} C_{2} \times 2 = \frac{3}{8}
\end{align}
$$

・$[2]$
$[1]$の結果より、期待値$E[X]$は下記のように計算できる。
$$
\large
\begin{align}
E[X] &= 3 \times \frac{1}{4} + 4 \times \frac{3}{8} + 5 \times \frac{3}{8} \\
&= \frac{1}{8}(6+12+15) = \frac{33}{8}
\end{align}
$$

問題.$2$

問題.$3$

・和が$9$になる場合
小さい順に並べた際の目の出方は下記のように列挙できる。
$$
\large
\begin{align}
(1,2,6), (1,3,5), (1,4,4), (2,2,5), (2,3,4), (3,3,3)
\end{align}
$$

上記の$(1,2,6), (1,3,5), (2,3,4)$は$3!=6$通り、$(1,4,4), (2,2,5)$は$3$通り、$(3,3,3)$は$1$通りである。よって確率は下記のように計算できる。
$$
\large
\begin{align}
\frac{1}{6^3}(3 \times 6 + 2 \times 3 + 1) = \frac{25}{216}
\end{align}
$$

・和が$10$になる場合
小さい順に並べた際の目の出方は下記のように列挙できる。
$$
\large
\begin{align}
(1,3,6), (1,4,5), (2,2,6), (2,3,5), (2,4,4), (3,3,4)
\end{align}
$$

上記の$(1,3,6), (1,4,5), (2,3,5)$は$3!=6$通り、$(2,2,6), (2,4,4), (3,3,4)$は$3$通りである。よって確率は下記のように計算できる。
$$
\large
\begin{align}
\frac{1}{6^3}(3 \times 6 + 3 \times 3) &= \frac{27}{216} \\
&= \frac{1}{8}
\end{align}
$$

問題.$4$

$V[X]=E[X^2]-E[X]^2$の導出であり、下記で取り扱った。

問題.$5$

「$n$回の試行で少なくとも$1$回$2$個とも$6$の目が出る確率」は余事象を考えれば良いので、$\displaystyle 1 – \left( \frac{35}{36} \right)^{n} > \frac{1}{2}$が成立する$n$の最小値を考えれば良い。

式変形を行うと、$\displaystyle \frac{1}{2} > \left( \frac{35}{36} \right)^{n}$である$n$の最小値を見つければ良いので、下記のプログラムを実行すると良い。

for i in range(27):
    print("n: {:.0f}, Prob: {:.3f}".format(i+1,(35./36.)**(i+1)))

・実行結果

n: 1, Prob: 0.972
n: 2, Prob: 0.945
n: 3, Prob: 0.919
n: 4, Prob: 0.893
n: 5, Prob: 0.869
[中略]
n: 22, Prob: 0.538
n: 23, Prob: 0.523
n: 24, Prob: 0.509
n: 25, Prob: 0.494
n: 26, Prob: 0.481
n: 27, Prob: 0.467

よって$n$の最小値は$n=25$である。

数理技能問題

問題.$1$

$3$の目が出る確率を$\displaystyle p = \frac{1}{6}$、回数を確率変数$X$で表すと、$n=360$のように十分大きいことから下記のように中心極限定理に基づく正規近似を考えることができる。
$$
\large
\begin{align}
X & \sim \mathrm{Bin}(n,p) \\
Z = \frac{X-E[X]}{\sqrt{V[X]}} = \frac{X-np}{\sqrt{np(1-p)}} & \sim \mathcal{N}(0,1)
\end{align}
$$

ここで$\displaystyle X=50, n=360, p=\frac{1}{6}$を代入すると、$Z$は下記のように計算できる。
$$
\large
\begin{align}
Z &= \frac{\displaystyle 50 – 360 \cdot \frac{1}{6}}{\displaystyle \sqrt{360 \cdot \frac{1}{6} \cdot \frac{5}{6}}} \\
&= \frac{-10}{\sqrt{50}} \\
&= – \sqrt{2}
\end{align}
$$

$X \leq 50$の確率は$Z \leq \sqrt{2}=1.414…$の確率に対応するので、この確率は下記のように計算できる。

import numpy as np
from scipy import stats

print("prob: {:.4f}".format(stats.norm.cdf(-np.sqrt(2))))

実行結果

prob: 0.0786

二項分布の正規近似に関しては下記も合わせて抑えておくと良い。

問題.$2$

・$[1]$
$$
\large
\begin{align}
Z = \frac{X-E[X]}{\sqrt{V[X]}} = \frac{X-np}{\sqrt{np(1-p)}} \sim \mathcal{N}(0,1)
\end{align}
$$

二項分布の正規近似より、確率変数$X \sim \mathrm{Bin}(n=1800,p=1/6)$は上記のように表せる。よって$P(290 \leq X \leq 310)$の値は下記のように考えられる。
$$
\large
\begin{align}
P(290 \leq X \leq 310) &= P \left( \frac{290-300}{\sqrt{300 \cdot 5/6}} \leq Z \leq \frac{310-300}{\sqrt{300 \cdot 5/6}} \right) \\
&= P \left( \frac{-10}{5\sqrt{10}} \leq Z \leq \frac{-10}{5\sqrt{10}} \right) \\
&= P(-0.632… \leq Z \leq 0.632…) \\
&= 2P(0 \leq Z \leq 0.632…) \\
&= 0.4726…
\end{align}
$$

・$[2]$
下記を実行することで正の整数$\alpha$に対応する$P(300-\alpha \leq X \leq 300+\alpha)$の確率をそれぞれ計算できる。

import numpy as np
from scipy import stats

for i in range(12):
    alpha = i+1.
    z_c = (alpha)/(5*np.sqrt(10.))
    prob = 2.*(0.5-(1.-stats.norm.cdf(z_c)))
    print("alpha: {:.0f}, prob: {:.3f}".format(alpha,prob))

実行結果

alpha: 1, prob: 0.050
alpha: 2, prob: 0.101
alpha: 3, prob: 0.150
alpha: 4, prob: 0.200
alpha: 5, prob: 0.248
alpha: 6, prob: 0.296
alpha: 7, prob: 0.342
alpha: 8, prob: 0.387
alpha: 9, prob: 0.431
alpha: 10, prob: 0.473
alpha: 11, prob: 0.513
alpha: 12, prob: 0.552

上記より$P(300-\alpha \leq X \leq 300+\alpha)<0.5$が成立する最大の正の整数$\alpha$は$\alpha=10$である。

問題.$3$

問題.$4$

③統計・日程計画

計算技能問題

問題.$1$

平均、標準偏差、相関係数の定義に基づいて、下記を実行することで計算を行うことができる。

import numpy as np

x = np.array([51., 63., 75., 68., 79., 65., 68., 72., 58., 49])
y = np.array([64., 79., 74., 59., 66., 56., 48., 63., 69., 59.])

mean_x, mean_y = np.mean(x), np.mean(y)
S_x2, S_y2 = np.mean(x**2)-mean_x**2, np.mean(y**2)-mean_y**2
r_xy = (np.mean(x*y)-mean_x*mean_y)/np.sqrt(S_x2*S_y2)

print("・[1]")
print("mean X: {:.1f}".format(mean_x))
print("st_X: {:.2f}".format(np.sqrt(S_x2)))
print("・[2]")
print("mean Y: {:.1f}".format(mean_y))
print("st_Y: {:.2f}".format(np.sqrt(S_y2)))
print("・[3]")
print("cor(X,Y): {:.5f}".format(r_xy))

・実行結果

・[1]
mean X: 64.8
st_X: 9.31
・[2]
mean Y: 63.7
st_Y: 8.51
・[3]
cor(X,Y): 0.09134

平均、標準偏差、相関係数の定義や式変形に関しては下記などで詳しく取り扱った。

問題.$2$

問題.$3$

問題.$4$

数理技能問題

問題.$1$

$\displaystyle V[\overline{X}] = \frac{180}{\sqrt{100}} = 18$より、母平均の$99$%区間は下記のように計算できる。
$$
\large
\begin{align}
\overline{X} \pm z_{\alpha=0.005} V[\overline{X}] &= 1450 \pm 2.58 \times 18 \\
&= 1403.56, 1496.44
\end{align}
$$

問題.$2$

$$
\large
\begin{align}
\hat{y}_i &= ax_i + b \\
a &= \frac{S_{xy}}{S_{x^{2}}} \\
b &= \bar{y} – a \bar{x} \\
S_{xy} &= E[XY]-E[X]E[Y] = \frac{1}{n} \sum_{i=1}^{n} x_iy_i – \bar{x}\bar{y} \\
S_{x^{2}} &= E[X^2]-E[X]^2 = \frac{1}{n} \sum_{i=1}^{n} x_{i}^{2} – \bar{x}^2
\end{align}
$$

上記の式に基づいて下記を実行することで計算が行える。

import numpy as np

x = np.array([1., 2., 3., 4., 5., 6., 7.])
y = np.array([316.6, 320., 325.5, 331.1, 338.7, 345.9, 354.1])

s_xy = np.mean(x*y) - np.mean(x)*np.mean(y)
s_x2 = np.mean(x**2) - np.mean(x)**2

a = s_xy/s_x2
b = np.mean(y) - a*np.mean(x)

print(a*11.+b)

実行結果

377.5035...

解答に用いた回帰の式の導出は下記で詳しく取り扱った。

問題.$3$

下記を実行することで得票数を整数で割った際の商が得られる。

import numpy as np

x = np.array([2300, 969, 634, 511, 505])
for i in range(7):
    print("x/{:.0f}: {}".format(i+1,x/(i+1)))

・実行結果

x/1: [2300  969  634  511  505]
x/2: [1150  484  317  255  252]
x/3: [766 323 211 170 168]
x/4: [575 242 158 127 126]
x/5: [460 193 126 102 101]
x/6: [383 161 105  85  84]
x/7: [328 138  90  73  72]

上記より比例代表制ドント方式に基づいて、$A$党が$5$人、$B$党が$2$人、$C, D, E$党がそれぞれ$1$人ずつ当選することが確認できる。

④数値計算

計算技能問題

問題.$1$

問題.$2$

数理技能問題

問題.$1$

問題.$2$

⑤コンピュータ・電卓

計算技能問題

問題.$1$

問題.$2$

問題.$3$

問題.$4$

数理技能問題

問題.$1$

問題.$2$

問題.$3$