ブログ

Ch.24 「分割行列による計算」の演習問題の解答例 〜統計学のための数学入門30講(朝倉書店)〜

当記事は「統計学のための数学入門$30$講(朝倉書店)」の読解サポートにあたってChapter.$24$の「分割行列による計算」の章末問題の解答の作成を行いました。
基本的には書籍の購入者向けの解説なので、まだ入手されていない方は購入の上ご確認ください。また、解説はあくまでサイト運営者が独自に作成したものであり、書籍の公式ページではないことにご注意ください。

・書籍解答まとめ
https://www.hello-statisticians.com/answer_textbook_math#math_stat

本章のまとめ

演習問題解答

問題$24.1$

・$[1]$
$$
\large
\begin{align}
\left|\begin{array}{cc} AB & AD \\ CB & CD \end{array} \right| = 0
\end{align}
$$

上記は下記のように示すことができる。
$$
\large
\begin{align}
\left|\begin{array}{cc} AB & AD \\ CB & CD \end{array} \right| &= \left|\begin{array}{cc} A & O \\ C & O \end{array} \right|\left|\begin{array}{cc} B & D \\ O & O \end{array} \right| \\
&= 0
\end{align}
$$

・$[2]$
$$
\large
\begin{align}
\left|\begin{array}{cc} A & B \\ B & A \end{array} \right| = |A+B||A-B|
\end{align}
$$

上記は下記のように示すことができる。
$$
\large
\begin{align}
\left|\begin{array}{cc} A & B \\ B & A \end{array} \right| &= \left|\begin{array}{cc} A+B & A+B \\ B & A \end{array} \right| \\
&= \left|\begin{array}{cc} A+B & O \\ B & A-B \end{array} \right| \\
&= |A+B||A-B|
\end{align}
$$

問題$24.2$

統計検定2級 公式問題集 CBT対応版 解答例まとめ 〜7. 推定〜

「統計検定$2$級 公式問題集 CBT対応版」の解答例を取りまとめるにあたって、当記事では「PART.$2$ 分野・項目別 問題・解説」のCategory.$7$「推定」の解答例を作成しました。解答例は「統計の森」オリジナルのコンテンツであり、統計検定の公式とは一切関係ないことにご注意ください。

解答例

Q.1

全体の標本比率を$\hat{p}$とおく。また、標本比率$\hat{p}_1, \hat{p}_2, \hat{p}$に対応する母比率をそれぞれ$p_1, p_2, p$とおく。このとき、全体の母比率$p$は$p_1, p_2$を用いて下記のように表せる。
$$
\large
\begin{align}
p = \frac{N_1 p_1 + N_2 p_2}{N_1+N_2}
\end{align}
$$

よって全体の母比率の推定量である$\hat{p}$は下記のように表すことができる。
$$
\large
\begin{align}
\hat{p} = \frac{N_1 \hat{p}_1 + N_2 \hat{p}_2}{N_1 + N_2}
\end{align}
$$

このとき、$\hat{p}$の分散$V[\hat{p}]$は下記のように導出できる。
$$
\large
\begin{align}
V[\hat{p}] &= V \left[ \frac{N_1 \hat{p}_1 + N_2 \hat{p}_2}{N_1 + N_2} \right] \\
&= \left( \frac{N_1}{N_1 + N_2} \right)^2 V[\hat{p}_1] + \left( \frac{N_2}{N_1 + N_2} \right)^2 V[\hat{p}_2] \\
&= \left( \frac{N_1}{N_1 + N_2} \right)^2 \frac{p_1(1-p_1)}{n_1} + \left( \frac{N_2}{N_1 + N_2} \right)^2 \frac{p_2(1-p_2)}{n_2}
\end{align}
$$

よって$\hat{p}$の標準誤差$\mathrm{se}(\hat{p})$は下記のように得られる。
$$
\large
\begin{align}
\mathrm{se}(\hat{p}) &= \sqrt{V[\hat{p}]} \\
&= \sqrt{\left( \frac{N_1}{N_1 + N_2} \right)^2 \frac{p_1(1-p_1)}{n_1} + \left( \frac{N_2}{N_1 + N_2} \right)^2 \frac{p_2(1-p_2)}{n_2}}
\end{align}
$$

以上より、正解は②である。

・参考
分散に関する公式などは下記で詳しく取り扱いました。

Q.2

Q.3

標本比率を$\hat{p}$、母平均を$p$とおくと、$n$が十分大きい時「二項分布の正規近似」より$\displaystyle \hat{p} \sim \mathcal{N} \left( p, \frac{p(1-p)}{n} \right)$が成立する。このとき$p$の$95$%区間は標本比率$\hat{p}$に実測値を代入することで下記のように導出できる。
$$
\large
\begin{align}
-1.96 \leq & \frac{\hat{p}-p}{\sqrt{\frac{p(1-p)}{n}}} \leq 1.96 \\
\hat{p} – 1.96 \sqrt{\frac{p(1-p)}{n}} \leq & p \leq \hat{p} + 1.96 \sqrt{\frac{p(1-p)}{n}}
\end{align}
$$

上記の区間の幅が全ての$p$に関して$6$%以下であるには下記が成立すれば良い。
$$
\large
\begin{align}
2 \times 1.96 \sqrt{\frac{p(1-p)}{n}} & \leq 0.06 \\
\sqrt{n} & \geq \frac{2 \times 1.96}{0.06} \sqrt{0.5 (1-0.5)} \geq \frac{2 \times 1.96}{0.06} \sqrt{p(1-p)} \\
n & \geq \frac{1.96^2}{0.06^2} = 1067.1 \cdots
\end{align}
$$

上記より④が正解である。

Q.4

標本比率を$\hat{p}$とおくと、「二項分布の正規近似」により、$\displaystyle \hat{p} \sim \mathcal{N} \left( p, \frac{p(1-p)}{n} \right)$が成立する。よって下記のように$Z$を考えることができる。
$$
\large
\begin{align}
Z &= \frac{\hat{p}-p}{\sqrt{\frac{p(1-p)}{n}}} \\
Z & \sim \mathcal{N}(0,1)
\end{align}
$$

このとき$\hat{p}=20/200=0.1$を代入することで、下記のように$p$の$95$%区間を表せる。
$$
\large
\begin{align}
-1.96 \leq & \frac{0.1-p}{\sqrt{\frac{p(1-p)}{n}}} \leq 1.96 \\
0.1 – 1.96 \sqrt{\frac{p(1-p)}{n}} \leq & p \leq 0.1 + 1.96 \sqrt{\frac{p(1-p)}{n}} \quad (1) \\
0.1 – 1.96 \sqrt{\frac{\hat{p}(1-\hat{p})}{n}} \leq & p \leq 0.1 + 1.96 \sqrt{\frac{\hat{p}(1-\hat{p})}{n}} \quad (2) \\
0.1 – 1.96 \sqrt{\frac{0.1(1-0.1)}{200}} \leq & p \leq 0.1 + 1.96 \sqrt{\frac{0.1(1-0.1)}{200}} \\
0.1 – 0.04158 \leq & p \leq 0.1 + 0.04158 \quad (3) \\
\end{align}
$$

上記の$(1)$から$(2)$にかけて標準偏差を構成する$p$を$\hat{p}$で置き換えたが、母比率の推定でよく出てくる手順なので抑えておくとよい。$(3)$の計算結果より④が正解である。

Q.5

サンプル数 十分大きいそれほど大きくない
正規母集団からの無作為抽出 正規分布自由度$n-1$の$t$分布
非正規母集団からの無作為抽出 正規分布母集団分布による

上記より、③が正解である。

Q.6

標本比率を$\hat{p}_1-\hat{p}_2$、母比率を$p_1, p_2$、標本抽出数を$n_1, n_2$のようにおくとき、二項分布の正規近似により$\hat{p}_1-\hat{p}_2$に関して下記が成立する。
$$
\large
\begin{align}
\hat{p}_1-\hat{p}_2 \sim \mathcal{N} \left( p_1-p_2, \frac{\hat{p}_1(1-\hat{p}_1)}{n_1}+\frac{\hat{p}_2(1-\hat{p}_2)}{n_2} \right)
\end{align}
$$

上記より$p_1-p_2$の$95$%区間は下記のように導出できる。
$$
\large
\begin{align}
z_{\alpha=0.975} \leq & \frac{(\hat{p}_1-\hat{p}_2)-(p_1-p_2)}{\displaystyle \sqrt{\frac{\hat{p}_1(1-\hat{p}_1)}{n_1}+\frac{\hat{p}_2(1-\hat{p}_2)}{n_2}}} \leq z_{\alpha=0.025} \\
\hat{p}-1.96 \sqrt{\frac{\hat{p}_1(1-\hat{p}_1)}{n_1}+\frac{\hat{p}_2(1-\hat{p}_2)}{n_2}} \leq & p_1-p_2 \leq \hat{p}+1.96 \sqrt{\frac{\hat{p}_1(1-\hat{p}_1)}{n_1}+\frac{\hat{p}_2(1-\hat{p}_2)}{n_2}}
\end{align}
$$

それぞれに値を代入することで母比率の差の$95$%区間は下記のように得られる。
$$
\large
\begin{align}
0.067 \pm 1.96 \sqrt{\frac{0.483 \times 0.517}{1897} + \frac{0.416 \times 0.584}{1925}}
\end{align}
$$

上記に基づいて下記のような計算を行うことで$95$%区間の計算を行うことができる。

import numpy as np

lower_p = (0.483-0.416) - 1.96* np.sqrt(0.483*(1.-0.483)/1897. + 0.416*(1.-0.416)/1925.)
upper_p = (0.483-0.416) + 1.96* np.sqrt(0.483*(1.-0.483)/1897. + 0.416*(1.-0.416)/1925.)

print("lower_p: {:.3f}".format(lower_p))
print("upper_p: {:.3f}".format(upper_p))

・実行結果

lower_p: 0.036
upper_p: 0.098

上記より得られた区間$0.036 \leq p_1-p_2 \leq 0.098$は$0$を含まないので有意水準$5$%で割合が変化したといえる。よって②が正解である。

参考

・【統計検定$2$級対応】統計学入門まとめ
https://www.hello-statisticians.com/stat_basic

4.4.3 母分散の比の検定 〜統計検定2級対応・統計学入門まとめ〜

当まとめでは統計検定$2$級の公式テキストの副教材に用いることができるように、統計学入門に関して取り扱います。当記事では「統計検定$2$級対応 統計学基礎」の$4.4.3$節「母分散の比の検定」の内容を元に$F$分布を用いた母分散の比の検定の一連の流れについて確認を行います。
統計検定$2$級のテキストとの対応がわかりやすいように、目次を「統計検定$2$級対応 統計学基礎」と対応させました。学びやすさの観点からあえて目次を対応させましたが、当まとめは「統計の森」オリジナルのコンテンツであり、統計検定の公式とは一切関係ないことにご注意ください。

・統計検定$2$級対応・統計学入門まとめ
https://www.hello-statisticians.com/stat_basic

「母分散の比の検定」の概要

概要

発展事項

$F$検定に用いる$F$分布の確率密度関数の導出に関しては下記などで詳しく取り扱いました。

必要な数学

母分散の比の検定

F統計量

母分散$\sigma_x^2$と$\sigma_y^2$の$2$つの母集団に関して、それぞれ$m$個と$n$個の標本の不偏標本分散$\hat{\sigma}_x^2$と$\hat{\sigma}_y^2$を仮定します。このとき下記が成立します。
$$
\large
\begin{align}
\frac{(m-1)\hat{\sigma}_x^{2}}{\sigma_x^{2}} & \sim \chi^{2}(m-1) \\
\frac{(n-1)\hat{\sigma}_y^{2}}{\sigma_y^{2}} & \sim \chi^{2}(n-1)
\end{align}
$$

上記に基づいて$2$つの母集団の母分散の比の統計量$F$を下記のように定義することができます。
$$
\large
\begin{align}
F &= \frac{\frac{(m-1)\hat{\sigma}_x^{2}}{\sigma_x^{2} (m-1)}}{\frac{(n-1)\hat{\sigma}_y^{2}}{\sigma_y^{2} (n-1)}} \\
&= \frac{\hat{\sigma}_x^{2}}{\sigma_x^{2}} \cdot \frac{\sigma_y^{2}}{\hat{\sigma}_y^{2}} \sim F(m-1,n-1)
\end{align}
$$

詳しい導出の流れは下記で取り扱いました。

母分散の比の検定

$F$統計量」の導出より、下記のように$2$つの母集団の母分散の比の統計量$F$を定義することができます。
$$
\large
\begin{align}
F = \frac{\hat{\sigma}_x^{2}}{\sigma_x^{2}} \cdot \frac{\sigma_y^{2}}{\hat{\sigma}_y^{2}} \sim F(m-1,n-1)
\end{align}
$$

ここで上記の統計量に対し、帰無仮説$H_0: \, \sigma_x^2 = \sigma_y^2$を考えると、$F$統計量は下記のように変形できます。
$$
\large
\begin{align}
F &= \frac{\hat{\sigma}_x^{2}}{\sigma_x^{2}} \cdot \frac{\sigma_y^{2}}{\hat{\sigma}_y^{2}} \\
&= \frac{\hat{\sigma}_x^{2}}{\hat{\sigma}_y^{2}} \sim F(m-1,n-1)
\end{align}
$$

上記を元に「母分散の比の検定」を行うことができます。

確率変数の和X+Yの分散V[X+Y]などに関する公式とその導出

確率変数の和や差に関する分散の計算は二項分布、負の二項分布、超幾何分布を考える際や$2$標本の差の検定など、統計学ではよく出てきます。一方で、分散の計算にあたっては$X$と$Y$の相関を考慮する必要があり難しいので当記事では分散$V[X+Y]$に関する公式やその導出について取り扱いました。
「現代数理統計学(学術図書出版社)」の$3$章「多次元の確率変数」の解説や演習などを参考に作成を行いました。

・$3$章演習の解答例:現代数理統計学
https://www.hello-statisticians.com/explain-books-cat/math_stat_practice_ch3.html

公式

V[X+Y]の取り扱い

確率変数$X$と$Y$の和$X+Y$の分散$V[X+Y]$は下記のように表される。
$$
\large
\begin{align}
V[X+Y] = V[X] + V[Y] + 2 \mathrm{Cov}(X,Y)
\end{align}
$$

$X,Y$が独立である場合は$\mathrm{Cov}(X,Y)=0$であるので、$V[X+Y]=V[X]+V[Y]$が成立する。$V[X+Y]=V[X]+V[Y]$の式に関しては下記でも取り扱った。

V[X-Y]の取り扱い

確率変数$X$と$Y$の差$X-Y$の分散$V[X-Y]$は下記のように表される。
$$
\large
\begin{align}
V[X-Y] = V[X] + V[Y] – 2 \mathrm{Cov}(X,Y)
\end{align}
$$

$V[a_1 X_1 + \cdots + a_nX_n]$の取り扱い

確率変数$X_1, \cdots , X_n$の線形和$a_1 X_1 + \cdots + a_nX_n$の分散$V[a_1 X_1 + \cdots + a_nX_n]$は下記に基づいて計算できる。
$$
\large
\begin{align}
V[a_1 X_1 + \cdots + a_nX_n] = \sum_{i=1}^{n} a_i^2 V[X_i] + 2 \sum_{i<j} a_ia_j \mathrm{Cov}(X_i,X_j)
\end{align}
$$

式の導出

$V[X+Y]=V[X] + V[Y] + 2 \mathrm{Cov}(X,Y)$

$E[X+Y]=E[X]+E[Y], V[X]=E[(X-E[X])^2]=E[X^2]-E[X]^2$などが成立することに基づいて下記のように導出できる。
$$
\large
\begin{align}
V[X+Y] &= E[((X+Y)-E[X+Y])^2] \\
&= E[(X + Y – E[X] – E[Y])^2] \\
&= E[(X^2 + Y^2 + E[X]^2 + E[Y]^2 + 2XY – 2XE[X] \\
& – 2YE[Y] – 2XE[Y] – 2YE[X] + 2E[X]E[Y])] \\
&= E[X^2] – E[X]^2 + E[Y^2] – E[Y]^2 + 2E[XY] – 2E[X]E[Y] \\
&= V[X] + V[Y] + 2 \mathrm{Cov}(X,Y)
\end{align}
$$

$V[X-Y] = V[X] + V[Y] – 2 \mathrm{Cov}(X,Y)$

$E[X+Y]=E[X]+E[Y], V[X]=E[(X-E[X])^2]=E[X^2]-E[X]^2$などが成立することに基づいて下記のように導出できる。
$$
\large
\begin{align}
V[X+Y] &= E[((X-Y)-E[X-Y])^2] \\
&= E[(X – Y – E[X] + E[Y])^2] \\
&= E[(X^2 + Y^2 + E[X]^2 + E[Y]^2 – 2XY – 2XE[X] \\
& – 2YE[Y] + 2XE[Y] + 2YE[X] – 2E[X]E[Y])] \\
&= E[X^2] – E[X]^2 + E[Y^2] – E[Y]^2 – 2E[XY] + 2E[X]E[Y] \\
&= V[X] + V[Y] + 2 \mathrm{Cov}(X,Y)
\end{align}
$$

$\displaystyle V[a_1 X_1 + \cdots + a_nX_n] = \sum_{i=1}^{n} a_i^2 V[X_i] + 2 \sum_{i<j} a_ia_j \mathrm{Cov}(X_i,X_j)$

$Z = a_1 X_1 + \cdots + a_nX_n$と定義し、$V[Z]=E[(Z-E[Z])^2]$を計算することで導出できる。詳しい導出は下記で取り扱った。

参考

4.4.2 対応ある2標本の検定 〜統計検定2級対応・統計学入門まとめ〜

当まとめでは統計検定$2$級の公式テキストの副教材に用いることができるように、統計学入門に関して取り扱います。当記事では「統計検定$2$級対応 統計学基礎」の$4.4.2$節「対応ある$2$標本の場合」の内容を元に対応のある$2$標本に関する検定について確認を行います。
統計検定$2$級のテキストとの対応がわかりやすいように、目次を「統計検定$2$級対応 統計学基礎」と対応させました。学びやすさの観点からあえて目次を対応させましたが、当まとめは「統計の森」オリジナルのコンテンツであり、統計検定の公式とは一切関係ないことにご注意ください。

・統計検定$2$級対応・統計学入門まとめ
https://www.hello-statisticians.com/stat_basic

「対応ある$2$標本の検定」の概要

概要

$d_1$ $65.0$$79.3$$55.9$$73.2$$58.0$$68.5$$68.1$$69.9$$71.7$$58.3$
$d_2$ $65.1$$75.1$$49.5$$69.9$$55.0$$64.3$$65.3$$70.8$$75.2$$53.5$
$\Delta$ $0.1$$-4.2$$-6.4$$-3.3$$-3.0$$-4.2$$-2.8$$0.9$$3.5$$-4.8$
「統計検定$2$級対応 統計学基礎」 第$4$章 例$2$

上記はダイエット処方の効果を確かめるにあたって、処方前の体重$d_1$、処方後の体重$d_2$と体重の変化$\Delta$を表にしたものです。以下、実際の効果を確かめるにあたって、帰無仮説$H_0: \, \Delta=0$と対立仮説$H_1: \, \Delta<0$に関して仮説検定を行います。

このときに$d_1$と$d_2$に相関があり「$4.4.1$ 母平均の差の検定」と同様な手法を用いることはできないので、当記事で以下取り扱う「対応ある$2$標本の取り扱い」の流れを抑えておく必要があります。

必要な数学

$\sqrt{x}$や$x^2$の取り扱いなど、基本的な計算を抑えておけば十分です。

対応ある$2$標本の検定

検定の流れ

前節の$d_1, d_2$の行の値は用いず、$\Delta$の行のみを用います。観測値を$\delta_1, \cdots , \delta_{10}$とおき、下記のように$\bar{\delta}, \hat{\sigma}_{\delta}^{2}$を定義します。
$$
\large
\begin{align}
\bar{\delta} &= \frac{1}{10} \sum_{i=1}^{10} \delta_{i} \\
\hat{\sigma}_{\delta}^{2} &= \frac{1}{9} \sum_{i=1}^{10} (\delta_{i}-\bar{\delta})^2
\end{align}
$$

このとき、下記のように検定統計量の実現値$t$を計算します。
$$
\large
\begin{align}
t &= \frac{\bar{\delta}}{\hat{\sigma}_{\delta}/\sqrt{n}} \\
&= \frac{\sqrt{n} \bar{\delta}}{\hat{\sigma}_{\delta}}
\end{align}
$$

上記に対応する統計量が自由度$10-1=9$の$t$分布$t(9)$に従うことを元に仮説検定を行うことができます。

具体的な計算例

対応ある$2$標本の検定法を用いる

前項の式に基づいて下記を実行することで検定を行うことができます。

import numpy as np
from scipy import stats

delta = np.array([0.1, -4.2, -6.4, -3.3, -3.0, -4.2, -2.8, 0.9, 3.5, -4.8])
sigma2 = np.sum((delta-np.mean(delta))**2)/(delta.shape[0]-1.)

t = np.sqrt(delta.shape[0]) * np.mean(delta) / np.sqrt(sigma2)

if stats.t.cdf(t,10-1)<0.05:
    print("t: {:.3f}, reject H_0.".format(t))
else:
    print("t: {:.3f}, accept H_0.".format(t))

・実行結果

t: -2.543, reject H_0.

通常の$2$標本の検定を用いる

$4.4.1$ 母平均の差の検定」の内容に基づいて下記を実行することで検定を行うことができます。

import numpy as np
from scipy import stats

d = np.array([[65.0, 79.3, 55.9, 73.2, 58.0, 68.5, 68.1, 69.9, 71.7, 58.3], [65.1, 75.1, 49.5, 69.9, 55.0, 64.3, 65.3, 70.8, 75.2, 53.5]])
mean_d = np.mean(d,axis=1)
mean_d_mat = np.repeat(mean_d,10).reshape([2,10])

sum_sigma2 = np.sum((d-mean_d_mat)**2,axis=1)
sigma2 = np.sum(sum_sigma2)/(d.shape[1]+d.shape[1]-2.)

t = (mean_d[1]-mean_d[0]) / (np.sqrt(1./d.shape[1] + 1./d.shape[1]) * np.sqrt(sigma2))

if stats.t.cdf(t,10+10-2)<0.05:
    print("t: {:.3f}, reject H_0.".format(t))
else:
    print("t: {:.3f}, accept H_0.".format(t))

・実行結果

t: -0.652, accept H_0.

計算結果

「対応ある$2$標本」の検定法を用いた場合結果が有意であり、「通常の$2$標本の検定」を用いるとき有意でない結果が得られました。この解釈に関しては次項で取り扱います。

対応ある2標本の取り扱いの必要性の解釈

標本平均の差$\overline{X}-\overline{Y}$の分散$V[\overline{X}-\overline{Y}]$は$\overline{X}$と$\overline{Y}$に相関がある場合、下記のように表されます。
$$
\large
\begin{align}
V[\overline{X}-\overline{Y}] = V[\overline{X}] + V[\overline{Y}] – 2 \mathrm{Cov}(\overline{X},\overline{Y})
\end{align}
$$

$4.4.1$ 母平均の差の検定」では$\mathrm{Cov}(\overline{X},\overline{Y})=0$を前提としているので、$V[\overline{X}-\overline{Y}] = V[\overline{X}] + V[\overline{Y}]$のように表されたことに注意が必要です。

このように「対応ある$2$標本」の場合は、$2$つのグループ間に正の相関があると$\overline{X}-\overline{Y}$の分散$V[\overline{X}-\overline{Y}]$が小さくなることに注意が必要です。冒頭の例に対し、$d_1$と$d_2$の散布図を描くと下記が得られます。

import numpy as np
import matplotlib.pyplot as plt

d = np.array([[65.0, 79.3, 55.9, 73.2, 58.0, 68.5, 68.1, 69.9, 71.7, 58.3], [65.1, 75.1, 49.5, 69.9, 55.0, 64.3, 65.3, 70.8, 75.2, 53.5]])

plt.scatter(d[0], d[1])
plt.show()

・実行結果

上記のように$2$つの標本には相関があることが確認できます。相関係数は下記のように計算できます。

import numpy as np

d = np.array([[65.0, 79.3, 55.9, 73.2, 58.0, 68.5, 68.1, 69.9, 71.7, 58.3], [65.1, 75.1, 49.5, 69.9, 55.0, 64.3, 65.3, 70.8, 75.2, 53.5]])
mean_d = np.mean(d,axis=1)
mean_d_mat = np.repeat(mean_d,10).reshape([2,10])

cov = np.mean((d[0]-np.mean(d[0]))*(d[1]-np.mean(d[0])))
sigma2 = np.mean((d-mean_d_mat)**2,axis=1)
r = cov / np.sqrt(sigma2[0]*sigma2[1]) 

print("r: {:.3f}".format(r))

・実行結果

r: 0.950

ここでの相関係数の値が$0.950$が得られるなど$2$標本間には強相関があるので、前項のような結果が得られたと解釈しておくと良いです。

発展事項①

通常の$2$標本の検定を用いる」の計算で用いる分散から$2 \mathrm{Cov}(\overline{X},\overline{Y})$分を引いた際の検定は下記のように計算できます。

import numpy as np
from scipy import stats

d = np.array([[65.0, 79.3, 55.9, 73.2, 58.0, 68.5, 68.1, 69.9, 71.7, 58.3], [65.1, 75.1, 49.5, 69.9, 55.0, 64.3, 65.3, 70.8, 75.2, 53.5]])
mean_d = np.mean(d,axis=1)
mean_d_mat = np.repeat(mean_d,10).reshape([2,10])

sum_sigma2 = np.sum((d-mean_d_mat)**2,axis=1)
sum_cov = np.sum((d[0]-np.mean(d[0]))*(d[1]-np.mean(d[0])))
sigma2 = (np.sum(sum_sigma2)-2*sum_cov)/(d.shape[1]+d.shape[1]-2.)

t = (mean_d[1]-mean_d[0]) / (np.sqrt(1./d.shape[1] + 1./d.shape[1]) * np.sqrt(sigma2))

if stats.t.cdf(t,10+10-2)<0.05:
    print("t: {:.3f}, reject H_0.".format(t))
else:
    print("t: {:.3f}, accept H_0.".format(t))

・実行結果

t: -2.543, reject H_0.

この結果は「対応ある$2$標本の検定法を用いる」の結果と一致します。

発展事項②

$$
\large
\begin{align}
V[\overline{X}-\overline{Y}] = V[\overline{X}] + V[\overline{Y}] – 2 \mathrm{Cov}(\overline{X},\overline{Y})
\end{align}
$$

上記の式の導出は下記などで取り扱いました。

正規分布のモーメント母関数を用いた「母平均の差」の推定に関する導出

「母平均の差」の「区間推定」や「検定」は統計検定$2$級などでよく出題される基本的な問題です。一方で、「標本平均の差」が従う確率分布に関する導出に関する解説がなされない場合が多いです。そこで当記事では正規分布のモーメント母関数を元に詳しい導出を取りまとめました。

正規分布のモーメント母関数

正規分布のモーメント母関数の式

正規分布のモーメント母関数を$m_{X}(t)$とおくと、$m_{X}(t)$は下記のように表せる。
$$
\large
\begin{align}
m_{X}(t) = \exp \left( \mu t + \frac{\sigma^2 t^2}{2} \right) \quad (1)
\end{align}
$$

正規分布のモーメント母関数の導出

モーメント母関数の定義である$m_{X}(t)=E[e^{tX}]$に基づいて導出を行うことができる。詳しくは「正規分布のモーメント母関数の導出」で詳しく取り扱った。

標本平均の差が従う分布

母分散が既知かつ等しい場合の「母平均の差」の推定の流れ

標本平均$\overline{X}, \overline{Y}$がそれぞれ下記のように正規分布に従うと仮定する。
$$
\large
\begin{align}
\overline{X} & \sim \mathcal{N} \left( \mu_1, \frac{\sigma^2}{m} \right) \\
\overline{Y} & \sim \mathcal{N} \left( \mu_2, \frac{\sigma^2}{n} \right)
\end{align}
$$

このとき、$\overline{X}-\overline{Y}$に関して下記が成立する。
$$
\large
\begin{align}
\overline{X}-\overline{Y} \sim \mathcal{N} \left( \mu_1-\mu_2, \frac{\sigma^2}{m}+\frac{\sigma^2}{n} \right) \quad (2)
\end{align}
$$

上記に基づいて母平均の差$\mu_1-\mu_2$の区間推定や仮説検定を考えることができる。$\mu_1-\mu_2$の$95$%区間は下記のように表せる。
$$
\large
\begin{align}
-1.96 \leq & \frac{(\overline{X}-\overline{Y})-(\mu_1-\mu_2)}{\sqrt{\frac{\sigma^2}{m}+\frac{\sigma^2}{n}}} \leq 1.96 \\
-1.96 \leq & \frac{(\overline{X}-\overline{Y})-(\mu_1-\mu_2)}{\sqrt{\frac{1}{m}+\frac{1}{n}}\sigma} \leq 1.96 \\
(\overline{X}-\overline{Y}) – 1.96 \sqrt{\frac{1}{m}+\frac{1}{n}}\sigma \leq & \mu_1-\mu_2 \leq (\overline{X}-\overline{Y}) + 1.96 \sqrt{\frac{1}{m}+\frac{1}{n}}\sigma
\end{align}
$$

同様に帰無仮説を$H_0: \, \mu_1-\mu_2 = 0$とする際の検定統計量$Z$は下記のように表せる。
$$
\large
\begin{align}
Z &= \frac{(\overline{X}-\overline{Y})-(\mu_1-\mu_2)}{\sqrt{\frac{\sigma^2}{m}+\frac{\sigma^2}{n}}} \\
&= \frac{\overline{X}-\overline{Y}}{\sqrt{\frac{1}{m}+\frac{1}{n}}\sigma}
\end{align}
$$

ここでは「母分散が既知かつ等しい場合」を取り扱ったが、そのほかの場合に関しても$(2)$に基づいて導出が行われるので基本的な考え方は同様である。「母分散が既知かつ等しい」場合以外に関しては詳しくは下記などで取り扱った。

次項では$(2)$が成立することを正規分布のモーメント母関数を用いて示す。

(2)の導出

確率変数$X \sim \mathcal{N}(\mu_1,\sigma_1^2)$と$Y \sim \mathcal{N}(\mu_2,\sigma_2^2)$に対応するモーメント母関数を$m_{X}(t), m_{Y}(t)$とおくと、$(1)$式に基づいてそれぞれ下記のように表せる。
$$
\large
\begin{align}
m_{X}(t) &= \exp \left( \mu_1 t + \frac{\sigma_1^2 t^2}{2} \right) \\
m_{Y}(t) &= \exp \left( \mu_2 t + \frac{\sigma_2^2 t^2}{2} \right)
\end{align}
$$

このとき確率変数$X-Y$のモーメント母関数は下記のように考えることができる。
$$
\large
\begin{align}
m_{X-Y}(t) &= E[e^{t(X-Y)}] \\
&= E[e^{tX}]E[e^{-tY}] \\
&= m_{X}(t) m_{Y}(-t) \\
&= \exp \left( \mu_1 t + \frac{\sigma_1^2 t^2}{2} \right) \times \exp \left( \mu_2 (-t) + \frac{\sigma_2^2 (-t)^2}{2} \right) \\
&= \exp \left( (\mu_1-\mu_2) t + \frac{(\sigma_1^2+\sigma_2^2) t^2}{2} \right)
\end{align}
$$

モーメント母関数と確率分布の$1$対$1$対応が成立するので、上記より$X \sim \mathcal{N}(\mu_1,\sigma_1^2), Y \sim \mathcal{N}(\mu_2,\sigma_2^2)$のとき$X-Y \sim \mathcal{N}(\mu_1-\mu_2,\sigma_1^2+\sigma_2^2)$が成立することが示せる。

「$X \sim \mathcal{N}(\mu_1,\sigma_1^2), Y \sim \mathcal{N}(\mu_2,\sigma_2^2)$のとき$X-Y \sim \mathcal{N}(\mu_1-\mu_2,\sigma_1^2+\sigma_2^2)$が成立する」を用いることで$(2)$が成立することも確認できる。

統計検定2級 公式問題集 CBT対応版 解答例まとめ 〜9. カイ二乗検定〜

「統計検定$2$級 公式問題集 CBT対応版」の解答例を取りまとめるにあたって、当記事では「PART.$2$ 分野・項目別 問題・解説」のCategory.$9$「カイ二乗検定」の解答例を作成しました。解答例は「統計の森」オリジナルのコンテンツであり、統計検定の公式とは一切関係ないことにご注意ください。

適合度検定

Q.1

ア)
$1$等、$2$等、ハズレの$3$パターンあるので自由度は$3-1=2$である。

イ)
検定統計量の値$\chi^2$は下記のように計算できる。
$$
\large
\begin{align}
\chi^2 &= \frac{(5-0.2 \cdot 50)^2}{0.2 \cdot 50} + \frac{(12-0.3 \cdot 50)^2}{0.3 \cdot 50} + \frac{(5-0.5 \cdot 50)^2}{0.5 \cdot 50} \\
&= \frac{(5-10)^2}{10} + \frac{(12-15)^2}{15} + \frac{(33-25)^2}{25} \\
&= 5.66
\end{align}
$$

ウ)
自由度$2$の$\chi^2$分布$\chi^2(2)$の上側$5$%点は約$5.99$であるので帰無仮説は棄却できない。

上記より、④が正解である。

Q.2

ア)
確率が$p=1/6$のように既知であるので自由度は$6-1=5$である。

イ)
自由度$5$の$\chi^2$分布の上側$5$%点は$\chi^2_{\alpha=0.05}(5)=11.07>2.59$であるので帰無仮説は棄却できない。

上記より③が正解である。

Q.3

ア)
期待度数は夏季と冬季の値を元に下記のように計算できる。
$$
\large
\begin{align}
\frac{42+25}{2} = 33.5
\end{align}
$$

イ)
自由度$(2-1)(5-1)=4$の$\chi^2$分布の上側$5$%点は$\chi^2_{\alpha=0.05}(4)=9.49$であり、$9.49<20.41$であるので帰無仮説は棄却でき、$2$つの分布は同等でないといえる。

以上より④が正解である。

・参考
下記のような計算を実行することで検定統計量の計算や仮説検定を行うことができる。

import numpy as np
from scipy import stats

observed_x = np.array([[18., 42., 24., 11., 1.], [13., 25., 23., 19., 16.]])
expected_x = np.mean(observed_x,axis=0)
expected_x_mat = np.repeat(expected_x,2).reshape([5,2]).T

chi2 = np.sum((observed_x-expected_x_mat)**2/expected_x_mat)

if stats.chi2.ppf(1-0.05,4) < chi2:
    print("chi^2: {:.2f}, reject H_0.".format(chi2))
else:
    print("chi^2: {:.2f}, accept H_0.".format(chi2))

・実行結果

chi^2: 20.51, reject H_0.

Q.4

ア)
自由度は$5-1=4$である。

イ)
自由度$4$の$\chi^2$分布$\chi^2(4)$の上側$5$%点$\chi^2_{\alpha=0.05}(4)=9.49$であり、$9.49<12.0$より帰無仮説は棄却できるので「平均$2$のポアソン分布に従わない」といえる。

以上より、③が正しい。

・参考
下記のような計算を実行することでポアソン分布の確率関数に基づいて期待度数の計算を行うことができる。

import numpy as np
import math

lamb = 2.
prob = np.zeros(5)

for i in range(prob.shape[0]-1):
    prob[i] = lamb**i * np.e**(-lamb) / math.factorial(i)

prob[-1] = 1. - np.sum(prob[:-1])

print(prob*100)

・実行結果

[ 13.53352832  27.06705665  27.06705665  18.04470443  14.28765395]

独立性検定

Q.1

ア)
期待度数は下記のように計算できる。
$$
\large
\begin{align}
100 \times \frac{27}{100} \times \frac{49}{100} = 13.23
\end{align}
$$


自由度は$(2-1)(2-1)=1$である。

よって①が正解である。

・参考
自由度$1$の$\chi^2$分布$\chi^2(1)$を用いた検定は下記より行うことができる。

import numpy as np
from scipy import stats

observed = np.array([[19., 30.], [8., 43.]])
expected_p = np.array([[(27.*49.)/(100.**2), (73.*49.)/(100.**2)], [(27.*51.)/(100.**2), (73.*51.)/(100.**2)]])

chi2 = np.sum((observed-expected_p*100.)**2/(expected_p*100.))

if stats.chi2.ppf(1-0.05,1) < chi2:
    print("chi^2: {:.3f}, reject H_0.".format(chi2))
else:
    print("chi^2: {:.3f}, accept H_0.".format(chi2))

・実行結果

chi^2: 6.759, reject H_0.

Q.2

検定統計量の$\chi^2$の値は表$B$の総和の$6.60$である。また、自由度$(2-1)(3-1)=2$の片側$5$%検定を考えるので、$\chi^2_{\alpha=0.05}=5.99 < 6.60$より帰無仮説は棄却される。よって②が正解である。

・参考
表$B$は下記のような計算を行うことで作成できる。

import numpy as np

observed_x = np.array([[5., 10., 15.], [10., 5., 5.]])
expected_x = np.array([[15.*30./50., 15.*30./50., 20.*30./50.], [15.*20./50., 15.*20./50., 20.*20./50.]])

chi2_mat = (observed_x-expected_x)**2/expected_x

print(chi2_mat)

・実行結果

[[ 1.77777778  0.11111111  0.75      ]
 [ 2.66666667  0.16666667  1.125     ]]

Q.3

ア)
期待度数は下記のように計算できる。
$$
\large
\begin{align}
120 \times \frac{90}{120} \times \frac{64}{120} = 48
\end{align}
$$

イ)
下記のような計算を実行することで帰無仮説$H_0が$5$%で棄却できることが確認できる。

import numpy as np
from scipy import stats

observed_x = np.array([[53., 11.], [37., 19.]])
expected_x = np.array([[90.*64./120., 30.*64./120.], [90.*56./120., 30.*56./120.]])

chi2 = np.sum((observed_x-expected_x)**2/expected_x)

if stats.chi2.ppf(1.-0.05,1) < chi2:
    print("chi^2: {:.2f} > {:.2f}, reject H_0".format(chi2, stats.chi2.ppf(1.-0.05,1)))
else:
    print("chi^2: {:.2f} < {:.2f}, accept H_0".format(chi2, stats.chi2.ppf(1.-0.05,1)))

・実行結果

chi^2: 4.46 > 3.84, reject H_0

以上より、③が正解である。

Q.4

自由度$1$の$\chi^2$分布の上側$5$%点は$\chi^2_{\alpha=0.05}(1)=3.84$であり、$3.84<69.04$であるので有意水準$5$%で帰無仮説を棄却し、「風向きと季節には関連がある」といえる。よって⑤が正解である。

・参考
$\chi^2$統計量は下記のように計算できる。

import numpy as np

observed_x = np.array([[105., 15.], [102., 143.]])
n = np.sum(observed_x)
expected_x = np.array([[207.*120./n, 158.*120./n], [207.*245./n, 158.*245./n]])

chi2 = np.sum((observed_x-expected_x)**2/expected_x)

print("chi^2: {:.2f}".format(chi2))

・実行結果

chi^2: 69.03

参考

・【統計検定$2$級対応】統計学入門まとめ
https://www.hello-statisticians.com/stat_basic

4.4.1 母平均の差の検定 〜統計検定2級対応・統計学入門まとめ〜

当まとめでは統計検定$2$級の公式テキストの副教材に用いることができるように、統計学入門に関して取り扱います。当記事では「統計検定$2$級対応 統計学基礎」の$4.4.1$節「母平均の差の検定」の内容を元に母分散既知・未知の場合の母平均の差の検定の方法について確認を行います。
統計検定$2$級のテキストとの対応がわかりやすいように、目次を「統計検定$2$級対応 統計学基礎」と対応させました。学びやすさの観点からあえて目次を対応させましたが、当まとめは「統計の森」オリジナルのコンテンツであり、統計検定の公式とは一切関係ないことにご注意ください。

・統計検定$2$級対応・統計学入門まとめ
https://www.hello-statisticians.com/stat_basic

「母平均の差の検定」の概要

概要

$L$ $90$$76$$90$$64$$86$$51$$72$$90$$95$$78$
$H$ $73$$102$$118$$104$$81$$107$$100$$87$$117$$111$
$C$ $116$$68$$32$$142$$110$$56$$94$$64$$92$$104$
「統計検定$2$級対応 統計学基礎」 第$4$章 例$6$

上記のように$L$、$H$、$C$の$3$つのグループに関して観測値が得られたとき、$2$グループを選んでそれぞれのグループの母平均に差があるかを調べる場合を考えます。

このときの一連の手順が「母平均の差の検定」であり、次節で「母分散既知の場合」、「母分散未知かつ等しい場合」、「母分散未知かつ等しくない場合」の$3$つに場合分けし、それぞれについて検定の手順を確認します。

必要な数学

$\sqrt{x}$や$x^2$の取り扱いなど、基本的な計算を抑えておけば十分です。

母平均の検定

母分散既知の場合

$L$からの標本の実現値$x_1, \cdots , x_m$が$\mathcal{N}(\mu_1,\sigma^2)$に基づいて生成され、$H$からの標本の実現値$y_1, \cdots , y_n$が$\mathcal{N}(\mu_2,\sigma^2)$に基づいて生成されると仮定します。

このとき、標本平均$\overline{X}, \overline{Y}$を下記のように定めます。
$$
\large
\begin{align}
\overline{X} &= \frac{1}{m} \sum_{i=1}^{m} X_i \\
\overline{Y} &= \frac{1}{n} \sum_{j=1}^{n} Y_j \\
\overline{X} & \sim \mathcal{N} \left( \mu_1,\frac{\sigma^2}{m} \right), \quad \overline{Y} \sim \mathcal{N} \left( \mu_2,\frac{\sigma^2}{n} \right)
\end{align}
$$

ここで標本平均の差の$\overline{X}-\overline{Y}$を考えるとき、正規分布のモーメント母関数などを用いることで下記を示すことができます。
$$
\large
\begin{align}
\overline{X}-\overline{Y} \sim \mathcal{N} \left( \mu_1-\mu_2, \frac{\sigma^2}{m}+\frac{\sigma^2}{n} \right)
\end{align}
$$

上記より、$\displaystyle \overline{X}-\overline{Y} \sim \mathcal{N} \left( \mu_1-\mu_2, \left(\frac{1}{m}+\frac{1}{n}\right)\sigma^2 \right)$が成立します。よって、検定統計量$Z$を下記のように定義することができます。
$$
\large
\begin{align}
Z &= \frac{(\overline{X}-\overline{Y})-(\mu_1-\mu_2)}{\sqrt{\frac{1}{m}+\frac{1}{n}}\sigma} \\
Z & \sim \mathcal{N}(0,1)
\end{align}
$$

上記に対し$\mu_1-\mu_2$に対して帰無仮説$H_0: \, \mu_1-\mu_2=0$などを仮定し、$z_{\alpha=0.025}=1.96$などを用いることで両側$5$%検定を行うことができます。

発展事項

$\displaystyle \overline{X}-\overline{Y} \sim \mathcal{N} \left( \mu_1-\mu_2, \left(\frac{1}{m}+\frac{1}{n}\right)\sigma^2 \right)$が成立することは正規分布のモーメント母関数を用いることで示すことができます。詳しくは下記で取り扱いました。

上記の導出にはモーメント母関数の理解が必須なので、統計検定$2$級範囲では下記のように$E[\overline{X}-\overline{Y}], V[\overline{X}-\overline{Y}]$の計算で抑えておくでも十分です。
$$
\large
\begin{align}
E[\overline{X}-\overline{Y}] &= E[\overline{X}] – E[\overline{Y}] \\
V[\overline{X}-\overline{Y}] &= V[\overline{X}] + V[-\overline{Y}] \\
&= V[\overline{X}] + (-1)^2V[\overline{Y}] = V[\overline{X}] + V[\overline{Y}]
\end{align}
$$

母分散未知かつ等しい場合

母分散未知かつ等しくない場合

1.2.2 ①幹葉図 〜統計検定2級対応・統計学入門まとめ〜

当まとめでは統計検定$2$級の公式テキストの副教材に用いることができるように、統計学入門に関して取り扱います。当記事では「統計検定$2$級対応 統計学基礎」の$1.2.2$節「幹葉図」の内容を元にヒストグラムと同様の目的で用いられる幹葉図に関して取り扱いました。
統計検定$2$級のテキストとの対応がわかりやすいように、目次を「統計検定$2$級対応 統計学基礎」と対応させました。学びやすさの観点からあえて目次を対応させましたが、当まとめは「統計の森」オリジナルのコンテンツであり、統計検定の公式とは一切関係ないことにご注意ください。

・統計検定$2$級対応・統計学入門まとめ
https://www.hello-statisticians.com/stat_basic

幹葉図の概要

概要

幹葉図(stem and leaf plots)はヒストグラムと同様に、度数分布の可視化にあたってよく用いられます。幹葉図は下記のように表されます。

stem: 4, leaves: 5599
stem: 5, leaves: 22599
stem: 6, leaves: 0244445557777
stem: 7, leaves: 022224445555577999
stem: 8, leaves: 01359

上記は「人文・社会科学の統計学の演習$2.1$」の結果を用いました。図を元に$6$〜$7$の間のサンプルが多いことが確認できます。このように幹葉図はヒストグラムと同様な用途で用いることができます。

必要な数学

幹葉図の作成にあたって必要な数学知識は特にありませんが、プログラムを用いて作成する場合は割り算の商と余りの演算を重点的に抑えておくと良いと思います。

幹葉図

幹葉図のプログラム

幹葉図は下記のようなプログラムを実行することで作成できます。

import numpy as np

x = np.array([5.6, 8.8, 7.5, 6.2, 9.2, 7.2, 7.1, 7.7, 8.2, 7.5, 6.8, 8.5, 6.8, 8.8, 7.6])

stem = np.unique(x//1)
leaf = x%1

leaves = dict()

for i in range(stem.shape[0]):
    leaves[int(stem[i])] = list()

for i in range(x.shape[0]):
    leaves[int(x[i]//1)].append(int(np.floor(((x[i]+0.01)%1)*10)))

for i in range(stem.shape[0]):
    leaves[int(stem[i])] = np.sort(leaves[int(stem[i])])
    l = ""
    for j in range(len(leaves[int(stem[i])])):
        l += str(leaves[int(stem[i])][j])
    print("stem: {}, leaves: {}".format(int(stem[i]),l))

・実行結果

stem: 5, leaves: 6
stem: 6, leaves: 288
stem: 7, leaves: 125567
stem: 8, leaves: 2588
stem: 9, leaves: 2

9.29.1999999などのように表されたので、$14$行目でx[i]+0.01を計算しました。厳密な取り扱いではないので、プログラム自体は修正を行う可能性があります。

1.2.2 ④ローレンツ曲線とジニ係数 〜統計検定2級対応・統計学入門まとめ〜

当まとめでは統計検定$2$級の公式テキストの副教材に用いることができるように、統計学入門に関して取り扱います。当記事では「統計検定$2$級対応 統計学基礎」の$1.2.2$節「ローレンツ曲線」の内容を元に経済などの分野でよく用いられるローレンツ曲線とジニ係数の概要に関して取り扱いました。
統計検定$2$級のテキストとの対応がわかりやすいように、目次を「統計検定$2$級対応 統計学基礎」と対応させました。学びやすさの観点からあえて目次を対応させましたが、当まとめは「統計の森」オリジナルのコンテンツであり、統計検定の公式とは一切関係ないことにご注意ください。

・統計検定$2$級対応・統計学入門まとめ
https://www.hello-statisticians.com/stat_basic

ローレンツ曲線・ジニ係数の概要

概要

ローレンツ曲線(Lorenz curve)はM.O.ローレンツが考案した「所得などの量の集中度や格差を表すグラフ」です。ローレンツ曲線は下記のようなグラフで表されます。

統計検定$2$級 公式問題集 CBT対応版 Q.$1.8$より

上図は日本、アメリカ、スウェーデン、中国、ドイツの$5$か国の五分位所得割合に基づくローレンツ曲線を表したものです。ローレンツ曲線は上にいくほど「平等」で下にいくほど「不平等」であることを表します。図ではスウェーデン、ドイツ、日本、アメリカ、中国の順で平等であることが読み取れます。

ジニ係数(Gini’s coefficient)はグラフの$(0,0)$と$(5,100)$を通る直線とそれぞれのローレンツ曲線の間の面積の$2$倍で定義される指標であり、ジニ係数が大きいほど「不平等」であると考えられます。なお、グラフは$2011$〜$2014$年を元に作成されているので、その点には注意が必要です。

必要な数学

ジニ係数は「完全平等曲線」と「ローレンツ曲線」の間の面積の$2$倍で定義されるので、積分の定義や台形公式に基づく数値積分の基本的な計算法に関しては抑えておくと良いです。

ローレンツ曲線とジニ係数

ローレンツ曲線

ローレンツ曲線の描画にあたっては、まず所得の順に家計を並べ、世帯数を元に五等分します。たとえば$1$億世帯ある場合は所得の順に$1$億世帯をソートし、$2,000$万世帯ずつで五等分を行います。このときにそれぞれの$2,000$万世帯ずつが全体の所得に占める割合を計算します。計算結果は度数分布表と同様の要領で、表で表すことが可能です。前節で確認したローレンツ曲線に対応する表を作成すると、下記のように表せます。

階級 第$1$階級第$2$階級第$3$階級第$4$階級第$5$階級
日本 $5.4$$10.7$$16.3$$24.1$$43.5$
アメリカ $5.1$$10.3$$15.4$$22.7$$46.4$
スウェーデン $8.7$$14.3$$17.8$$23.0$$36.2$
中国 $5.2$$9.8$$14.9$$22.3$$47.9$
ドイツ $8.4$$13.1$$17.2$$22.7$$38.6$
統計検定$2$級 公式問題集 CBT対応版 Q.$1.8$より

上記の表を確認するにあたっては、どの行も「左から右にいくにつれて数字が必ず大きくなる」という点は抑えておく必要があります。このことは元々所得の順にソートを行なった上でグループ分けし、割合を計算したことを鑑みれば必然です。

次に「確率の累積」を左から順に計算します。左から「第$1$階級の数字」、「第$1$階級の数字+第$2$階級の数字」〜「第$1$階級の数字+第$2$階級の数字+$\cdots$+第$5$階級の数字」の数字を並べます。五カ国の例に基づいて計算すると下記のような結果が得られます。

階級 第$1$階級第$2$階級第$3$階級第$4$階級第$5$階級
日本 $5.4$$16.1$ $32.4$$56.5$$100$
アメリカ $5.1$$15.4$$30.8$$53.5$$99.9$
スウェーデン $8.7$$23$ $40.8$$63.8$$100$
中国 $5.2$$15$ $29.9$$52.2$$100.1$
ドイツ $8.4$$21.5$ $38.7$$61.4$$100$
統計検定$2$級 公式問題集 CBT対応版 Q.$1.8$より

上記を元にローレンツ曲線の描画を行うことができます。累積を計算するので一番右の列は$100$に近い値になりますが、有効数字や四捨五入を行う都合上、必ずしも$100$に一致しないことにも注意が必要です。一連の流れは下記を実行することでグラフを描くことができます。

import numpy as np
import matplotlib.pyplot as plt

x = np.array([[5.4, 10.7, 16.3, 24.1, 43.5], [5.1, 10.3, 15.4, 22.7, 46.4], [8.7, 14.3, 17.8, 23.0, 36.2], [5.2, 9.8, 14.9, 22.3, 47.9], [8.4, 13.1, 17.2, 22.7, 38.6]])

x_cum = np.zeros([x.shape[0],x.shape[0]+1])
x_cum[:,1:] = np.cumsum(x,axis=1)

nation_label = ["JPN", "USA", "SWE", "CHN", "DEU"]
for i in range(x_cum.shape[0]):
    plt.plot(np.arange(6),x_cum[i,:],label=nation_label[i])

plt.legend(loc="upper left")
plt.show()

・実行結果

統計検定$2$級 公式問題集 CBT対応版 Q.$1.8$より

ジニ係数

ジニ係数は全世帯が平等である場合の完全平等線(complete equality line)とローレンツ曲線の間の面積の$2$倍に対応します。下記を実行することで前項の例に完全平等線を追加することができます。

import numpy as np
import matplotlib.pyplot as plt

x = np.array([[5.4, 10.7, 16.3, 24.1, 43.5], [5.1, 10.3, 15.4, 22.7, 46.4], [8.7, 14.3, 17.8, 23.0, 36.2], [5.2, 9.8, 14.9, 22.3, 47.9], [8.4, 13.1, 17.2, 22.7, 38.6]])

x_cum = np.zeros([x.shape[0],x.shape[0]+1])
x_cum[:,1:] = np.cumsum(x,axis=1)

nation_label = ["JPN", "USA", "SWE", "CHN", "DEU"]
for i in range(x_cum.shape[0]):
    plt.plot(np.arange(6)/5.,x_cum[i,:]/100.,label=nation_label[i])

plt.plot(np.array([0.,1.]), np.array([0., 1.]), color="black",label="equality line")

plt.legend(loc="upper left")
plt.show()

・実行結果

ジニ係数の計算にあたって目盛りの範囲を$[0,1]$に調整を行なった

上図のようなローレンツ曲線を元に「不平等」かどうかを論じることができますが、前項の表では第$1$階級では相対確率がアメリカ<中国である一方で、それ以外ではアメリカ>中国が成立するなど、取り扱いが難しい場合があります。

このような場合に面積に基づいて定量化を行うジニ係数のような指標があると用いやすいです。各国のジニ係数は台形公式に基づいて下記のような処理を行うことで計算することができます。

import numpy as np

x = np.array([[5.4, 10.7, 16.3, 24.1, 43.5], [5.1, 10.3, 15.4, 22.7, 46.4], [8.7, 14.3, 17.8, 23.0, 36.2], [5.2, 9.8, 14.9, 22.3, 47.9], [8.4, 13.1, 17.2, 22.7, 38.6]])

x_cum = np.zeros([x.shape[0],x.shape[0]+1])
x_cum[:,1:] = np.cumsum(x,axis=1)/100.

s = np.repeat(1.*1./2.,5)
for i in range(x.shape[1]):
    s -= 0.2*(x_cum[:,i]+x_cum[:,i+1])/2.

Gini = 2*s

print(Gini)

・実行結果

[ 0.3584  0.381   0.2548  0.3906  0.28  ]

上記より、ジニ係数を大きい順に並べると、「中国」、「アメリカ」、「日本」、「ドイツ」、「スウェーデン」であることが確認できます。