ブログ

【目的・目標別】統計学の理解にあたって知っておきたい数学の理解と学習にあたってのロードマップ

昨今統計学の必要性が一般的に言われている中で、ほとんど必ず出てくる質問に「統計学の理解にあたって数学はどのくらい知っておくと良いか」というのがあります。当記事では目的別の到達目標を明示した上でそれぞれの目標達成にあたってのロードマップとなるように内容をまとめました。

目的別の到達目標

統計学を大まかに把握したい

「統計学を大まかに把握したい方」は、「統計検定2級のトピックに関して、問題が解ける」を目指すと良いです。統計検定2級は正答率6割が合格ラインとされますが、問題が7割ほど解けるようになれば大まかに把握したと考えて良いと思います。
統計検定2級レベルの主なトピックは、記述統計、確率論、推測統計が主ですが、記述統計について理解し、確率論、推測統計については簡単に手順を抑えれば大まかに把握することができると思います。

ここまでの内容であれば一般向けのわかりやすい解説も多いので高度な数学の理解は不要ですが、数式の表記には慣れておく方が望ましいです。そのため中学レベル〜高校2年生レベルの数学の基本事項は同時に抑える方が良いと思います。
基本的には数学は必須ではないが、数学検定2級レベルは同時に身につけるのが望ましいというのを当記事の見解とします。

統計学を使って専門的に考察したい

「統計学を使って専門的に考察したい方」は、「統計検定の2級のトピックの問題が解けるだけでなく、内容を理解し関連の発展項目についても簡単に把握している」を目指すと良いです。
統計検定の準1級、1級の問題は少々マニアックな問題も出題されるので、必ずしも点数を目安にしなくても良いと思いますが、問題のいくつかはだいたいわかるレベルまで到達できると望ましいのではないかと思います。どちらかというと2級の問題をしっかり理解した上で解けるまで到達できる方が重要度が高いと思います。

このレベルにまで到達するにあたっては通称「赤本」とされる東京大学出版会の「基礎統計学Ⅰ 統計学入門」が非常におすすめです。統計検定2級レベルの解説を行う書籍や解説コンテンツなどは流れの解説が中心で背景の解説が少ないものも多いので、手堅い理解ができない場合があります。よって赤本を1冊読み切ることで、統計検定2級レベルのトピックに対し、単に問題が解けるだけでなく、全体的な背景も同時に理解できるようになると良いと思います。
必要な数学についてはこの赤本を読むことができるレベルは必須なので、数学検定2級相当の高校数学の数ⅡBまでは必ず抑えると良いと思います。また、専門的に統計学を利用するにあたって、数ⅢCも軽くは抑えておく方が応用時にプラスになりやすいので、数ⅢCも並行で進めておくと良いと思います。

統計学のプロフェッショナルになりたい

「統計学のプロフェッショナルになりたい方」は、「統計検定準1級と1級の合格」を一つの目標にすると良いのではないかと思います。どちらもそれほど簡単な試験ではない一方で、難しい本を何冊も読破するよりは具体的に問題が作成されている分、目標設定がしやすいと思います。

さて、統計検定の準1級と1級の合格にあたっての学習ですが、これらに取り掛かる前に2級の内容を固めることが前提となります。よって、「2級には合格したけれど、内容の理解が十分でない方」は前項でもご紹介した赤本を先に読み切った上で準1級以降に取り掛かると良いです。

さて、上記の赤本を読み切った上で準1級、1級に取り組むわけですが、統計検定の公式から出されている準1級のワークブックは比較的確認しやすいのでおすすめです。

ここで上記のワークブックに取り組む際の注意事項は、「比較的」読みやすい一方で、幅広いトピックを取り扱ったことでトピックによっては記載だけではわからない場合もあることです。7章、8章で取り扱われる漸近論などや、フィッシャーの線形判別などは本来もう少し説明がある方が望ましいのではという印象を受けました。反対に、確率母関数やモーメント母関数の説明はわかりやすいなど、トピックごとに読みやすさが大きく異なる印象です。
とはいえ、準1級以上の内容については全てのトピックをわかりやすく記述されるケースはほぼないので、何冊かを入手し、手元で見比べながら学習を進めると良いと思います。

辞書的に用いるにあたって一番おすすめなのが上記の「パターン認識と機械学習」です。この本は全体を通して高度な内容が概ね同じ難易度で記載されるので、「だいたい把握したけれどもう少し詳しく理解したい」などの際に非常に有用です。
よって、「パターン認識と機械学習」を所々参照が可能な数学力を身につけると良いと思います。高校数学の全トピックに加えて、線形代数を抑えておけば基本的な数学の理解は十分だと思います。
統計学で利用する数学は「高校数学レベル+線形代数」を抑えるだけでは一見難しい場合もあるのですが、トリッキーに見える数式展開はだいたい決まっており、数式展開のパターンを抑えておくことで対処可能です。
・ラグランジュの未定乗数法
・二次形式をベクトルで微分する
概ね上記のトピックなどを抑えておくことで対処が可能であり、上記の理解にあたっては「高校数学+線形代数」の理解があれば概ね可能なので、「高校数学+線形代数」さえ身につければあとはいくつかパターンを抑えるだけになります。

特に二次形式のベクトルでの微分はよく出てくるのですが、下記で取り扱いましたので詳しくは下記をご確認ください。
https://www.hello-statisticians.com/explain-terms-cat/pca1.html

習得するにあたってのロードマップ

高校2年生レベル(数学検定2級)

数学検定の2級は高校2年生で取り扱う数ⅡBに概ね対応するように問題が作成されます。よって、数学検定の2級を目安に学習を進めると良いと思います。
数学検定2級では答えだけを記載する1次試験と論述を記載する2次試験の二段階の試験ですが、基本問題について取り扱われた1次試験の問題が解ければ十分だと思います。「数学はどのくらい必要か」という話の際にやたら難しい内容が必要と考える方が多くおられるようですが、基本問題がわかれば十分なので学生時に取り組んだよりも簡単なレベルで十分であることについては知るべきです。具体的にそれぞれのトピックについてはたとえば下記のレベルでわかれば十分だと思います。
・$\displaystyle \sum$は$\displaystyle \sum_{i=1}^{n} i = 1+2+3+…+n$のように和を表す記号である。
・微分とは関数の傾きを意味する。
・指数関数は$y=a^x$、対数関数は$y=log_{a} x$のように表す。
基本問題を解くうちに上記は自然と身に付く内容ですが、難しいと感じる方もおられるようです。学生時のようにテストで点を取れる必要もないので、基本的な問題を参考書を見ながら解くうちに理解できればそれで十分です。

学習の進め方は問題演習を多めに取り組むのが良いのではと思います。チャート式の白チャートなどの基本問題がわかるまで取り組むと力がつくのではと思います。また、問題演習にあたって最初は解き方がわからないかもしれませんが、解答を見ながら理解して解き方を覚えるという形で進めても大丈夫です。
基本問題のパターンはそれほど多くないので、パターンを覚えることで理解につなげるという形式で学習を進めるで十分だと思います。

高校卒業レベル_理系(数学検定準1級)

数学検定準1級は理系の高校卒業レベルを取り扱うとされます。が、少々問題が難しい印象も受けます。
よって、前項と同様な形式で参考書を選び、基本問題だけ取り組む形で十分だと思います。

大学教養課程レベル(高校数学+線形代数 etc)

高校数学は大学受験用の参考書が揃っているので学習が進めやすいですが、大学の内容は記述がわかりやすい書籍は非常に少ない印象です。とはいえ行列の積、固有値・固有ベクトル、逆行列がわかればそれほど困らないというのも事実です。
よって、高校数学の範囲で取り扱われることもある行列を中心に取り組んで、線形代数は必要に応じて取り組むでも十分だと思います。特に行列の積、固有値・固有ベクトル、逆行列は至る所で出てくるので必ず抑えておくようにしましょう。
また、チャート式の線形代数も出版されているようなので、そちらも取り組むと良いかもしれません。

まとめ

当記事では「統計学の理解にあたって知っておきたい数学の理解と学習にあたってのロードマップ」についてまとめました。大学の数学のテキストは記載が不必要に難しいものが多いので、なるべく高校までの参考書を中心に理解を試みるのが良いと思います。
また、キャンパスゼミなども薦められる場合も見かけますが、キャンパスゼミは所々ミスリードもある印象のためあまりお薦めしません。なるべく高校の参考書を中心に学習を進めて、必要に応じて専門書やWebの情報を探すと良いのではと思います。

群内分散と群間分散の比の最大化からフィッシャーの線形判別の導出について確認する

フィッシャーの線形判別については所々で出てくる一方で、途中計算が省略されるケースも多い。当稿では可能な限り明示的に導出を行うことで、理解しやすい内容になるように試みるものとする。
「パターン認識と機械学習(PRML)」の上巻の$4.1.4$節の導出が比較的わかりやすいので、主にこちらを参考に確認を行う。

前提の確認

内積と正射影

$D$次元のベクトルの$\mathbf{x}_n$と$\mathbf{w}$を考える。それぞれ下記のように表すことができる。
$$
\begin{align}
\mathbf{x}_n &= \left(\begin{array}{c} x_{n1} \\ \vdots \\ x_{nD} \end{array} \right) \\
\mathbf{w} &= \left(\begin{array}{c} w_1 \\ \vdots \\ w_D \end{array} \right)
\end{align}
$$
上記を用いて本論のフィッシャーの線形判別では$\mathbf{x}_n$をサンプル、$\mathbf{w}$を変数のように取り扱う任意のベクトルとし、最適化の指標を設けて$\mathbf{w}$に関して基準値を最大にするように最適化問題を解く。そのため、$\mathbf{x}_n$で表した際の$n$はサンプルのインデックスであると考えればよい。

上記のように$D$次元のベクトルの$\mathbf{x}_n$と$\mathbf{w}$を定義した際に、$\mathbf{x}_n$から$\mathbf{w}$への射影を行うことを考える。これは内積を計算することで求めることができる。

$$
\begin{align}
\mathbf{w}^{\mathrm{T}}\mathbf{x}_n &= \left(\begin{array}{r} w_1 & … & w_D \end{array} \right) \left(\begin{array}{c} x_{n1} \\ \vdots \\ x_{nD} \end{array} \right)
\end{align}
$$

フィッシャーの線形判別

問題設定

$2$クラス分類問題を考える。クラス$C_1$に属するサンプルが$N_1$個、クラス$C_2$に属するサンプルが$N_2$個と考える。また、サンプルは$D$次元ベクトルの$\mathbf{x}_n$と表すこととする。
このとき、下記のように各クラスに含まれるサンプルの平均ベクトルの$\mathbf{m}_1$と$\mathbf{m}_2$を計算する。
$$
\begin{align}
\mathbf{m}_1 &= \frac{1}{N_1} \sum_{n \in C_1} \mathbf{x}_n \\
\mathbf{m}_2 &= \frac{1}{N_2} \sum_{n \in C_2} \mathbf{x}_n
\end{align}
$$

ここで$\mathbf{m}_1$は$N_1$個のサンプルの平均、$\mathbf{m}_2$は$N_2$個のサンプルの平均となる。この時にそれぞれのクラスの平均ベクトルをベクトル$\mathbf{w}$への射影は下記のように表すことができる。
$$
\begin{align}
m_1 &= \mathbf{w}^{\mathrm{T}} \mathbf{m}_1 \\
m_2 &= \mathbf{w}^{\mathrm{T}} \mathbf{m}_2
\end{align}
$$

上記において$m_1$と$m_2$はそれぞれ$\mathbf{w}$への$\mathbf{m}_1$と$\mathbf{m}_2$の射影であると考えることができる。またここで、$\mathbf{w}$は大きさよりも向きに意味があるので、$\displaystyle \mathbf{w}^{\mathrm{T}}\mathbf{w} = \sum_{i=1}^{D} w_i^2=1$という制約を設けることとする。

ここまでに定義した内容を元に、クラス分類を行うにあたっての射影先のベクトル$\mathbf{w}$について考える。

シンプルな解法

$$
\begin{align}
m_2-m_1 = \mathbf{w}^{\mathrm{T}} (\mathbf{m}_2-\mathbf{m}_1) \cdot \cdot \cdot (1)
\end{align}
$$

一番シンプルな考え方は上記を最大化する$\mathbf{w}$を求めることである。$\displaystyle \mathbf{w}^{\mathrm{T}}\mathbf{w} = \sum_{i=1}^{D} w_i^2=1$の制約の元で、$(1)$が最大となる$\mathbf{w}$を求めるにあたっては、ラグランジュの未定乗数法に基づいて、下記の最大値問題を解けば良い。
$$
\begin{align}
L(\mathbf{w}, \lambda) &= m_2-m_1 + \lambda(1-\mathbf{w}^{\mathrm{T}}\mathbf{w}) \\
&= \mathbf{w}^{\mathrm{T}} (\mathbf{m}_2-\mathbf{m}_1) + \lambda(1-\mathbf{w}^{\mathrm{T}}\mathbf{w})
\end{align}
$$
上記を$\mathbf{w}$と$\lambda$に関して微分すると下記のようになる。
$$
\begin{align}
\frac{\partial L(\mathbf{w}, \lambda)}{\partial \mathbf{w}} &= \mathbf{m}_2-\mathbf{m}_1 – 2\lambda \mathbf{w} \\
\frac{\partial L(\mathbf{w}, \lambda)}{\partial \lambda} &= 1-\mathbf{w}^{\mathrm{T}}\mathbf{w}
\end{align}
$$
上記がそれぞれ$0$に等しいので、ここから下記のような条件が得られる。
$$
\begin{align}
\frac{\partial L(\mathbf{w}, \lambda)}{\partial \mathbf{w}} &= 0 \\
\mathbf{m}_2-\mathbf{m}_1 – 2\lambda \mathbf{w} &= 0 \\
\mathbf{m}_2-\mathbf{m}_1 &= 2\lambda \mathbf{w}
\end{align}
$$
$$
\begin{align}
\frac{\partial L(\mathbf{w}, \lambda)}{\partial \lambda} &= 0 \\
1-\mathbf{w}^{\mathrm{T}}\mathbf{w} &= 0 \\
\mathbf{w}^{\mathrm{T}}\mathbf{w} &= 1
\end{align}
$$
上記より、$\mathbf{m}_2-\mathbf{m}_1$と$\mathbf{w}$が平行であれば、$\displaystyle \mathbf{w}^{\mathrm{T}}\mathbf{w} =1$の制約の元で、(1)が最大となる。

よって、$\mathbf{w} \propto \mathbf{m}_2-\mathbf{m}_1$と$\mathbf{w}^{\mathrm{T}}\mathbf{w}=1$を満たす$\mathbf{w}$がここで求める$\mathbf{w}$となる。

フィッシャーの線形判別

シンプルな解法は数式がシンプルで解きやすい一方で、各クラスの共分散によってはうまく分類できないケースがある。下記で示した”Pattern Recognition and Machine Learning”のFigure4.6の左の図ような場合は単にそれぞれのクラスからの平均ベクトルを取るだけでは誤分類が多くなる。

“Pattern Recognition and Machine Learning(Figure 4.6) より”

この課題の解決にあたってよく用いられるのが上図の右の図で表されたフィッシャーの線形判別である。フィッシャーの線形判別は単に平均ベクトルからの射影が大きくなる$\mathbf{w}$ではなく、射影したベクトルにおいてそれぞれのクラス内の分散が小さくなるようにするような$\mathbf{w}$を求めるべきだという考え方である。具体的にはクラス間の分散とクラス内の分散の比を目的関数とした最適化を行う。
以下ではクラス内分散$V_W$($W$は”within-class”を意味する)とクラス間分散$V_B$($B$は”between-class”を意味する)の比を$\displaystyle J(\mathbf{w}) = \frac{V_B}{V_W}$の最大化について考える。ここで$V_W$と$V_B$はそれぞれ下記のように表すことができる。
$$
\begin{align}
V_W &= \sum_{n \in C_1} (y_n-m_1)^2 + \sum_{n \in C_2} (y_n-m_2)^2 \\
&= \sum_{n \in C_1} (\mathbf{w}^{\mathrm{T}}\mathbf{x}_n-\mathbf{w}^{T}\mathbf{m}_1)^2 + \sum_{n \in C_2} (\mathbf{w}^{\mathrm{T}}\mathbf{x}_n-\mathbf{w}^{T}\mathbf{m}_2)^2 \\
&= \sum_{n \in C_1} (\mathbf{w}^{\mathrm{T}}(\mathbf{x}_n-\mathbf{m}_1))^2 + \sum_{n \in C_2} (\mathbf{w}^{\mathrm{T}}(\mathbf{x}_n-\mathbf{m}_2))^2 \\
&= \sum_{n \in C_1} \mathbf{w}^{\mathrm{T}}(\mathbf{x}_n-\mathbf{m}_1)(\mathbf{x}_n-\mathbf{m}_1)^{\mathrm{T}}\mathbf{w} + \sum_{n \in C_2} \mathbf{w}^{\mathrm{T}}(\mathbf{x}_n-\mathbf{m}_2)(\mathbf{x}_n-\mathbf{m}_2)^{\mathrm{T}}\mathbf{w} \\
&= \mathbf{w}^{\mathrm{T}}\left(\sum_{n \in C_1}(\mathbf{x}_n-\mathbf{m}_1)(\mathbf{x}_n-\mathbf{m}_1)^{\mathrm{T}}+\sum_{n \in C_2} (\mathbf{x}_n-\mathbf{m}_2)(\mathbf{x}_n-\mathbf{m}_2)^{\mathrm{T}}\right)\mathbf{w} \\
&= \mathbf{w}^{\mathrm{T}}\mathbf{S}_W\mathbf{w} \\
V_B &= (m_2-m_1)^2 \\
&= (\mathbf{w}^{\mathrm{T}} (\mathbf{m}_2-\mathbf{m}_1))^2 \\
&= \mathbf{w}^{\mathrm{T}}(\mathbf{m}_2-\mathbf{m}_1)(\mathbf{m}_2-\mathbf{m}_1)^{\mathrm{T}}\mathbf{w} \\
&= \mathbf{w}^{\mathrm{T}}\mathbf{S}_B\mathbf{w}
\end{align}
$$
途中計算において成分表示までは行わなかったが、成分表示も行えば下記の導出に類似する。
https://www.hello-statisticians.com/explain-terms-cat/pca1.html
また、途中計算において下記のように$\mathbf{S}_W$と$\mathbf{S}_B$を定義した。
$$
\begin{align}
\mathbf{S}_W &= \sum_{n \in C_1}(\mathbf{x}_n-\mathbf{m}_1)(\mathbf{x}_n-\mathbf{m}_1)^{\mathrm{T}}+\sum_{n \in C_2} (\mathbf{x}_n-\mathbf{m}_2)(\mathbf{x}_n-\mathbf{m}_2)^{\mathrm{T}} \\
\mathbf{S}_B &= (\mathbf{m}_2-\mathbf{m}_1)(\mathbf{m}_2-\mathbf{m}_1)^{\mathrm{T}} \cdot \cdot \cdot (2)
\end{align}
$$

よって$J(\mathbf{w})$は下記のように表せる。
$$
\begin{align}
J(\mathbf{w}) &= \frac{V_B}{V_W} \\
&= \frac{\mathbf{w}^{\mathrm{T}}\mathbf{S}_B\mathbf{w}}{\mathbf{w}^{\mathrm{T}}\mathbf{S}_W\mathbf{w}}
\end{align}
$$
ここで$J(\mathbf{w})$を最大にする$\mathbf{w}$を考えるにあたって、$J(\mathbf{w})$の微分を考える。
$$
\begin{align}
\frac{\partial J(\mathbf{w})}{\partial \mathbf{w}} = \frac{2\mathbf{S}_B\mathbf{w}(\mathbf{w}^{\mathrm{T}}\mathbf{S}_W\mathbf{w}) – 2(\mathbf{w}^{\mathrm{T}}\mathbf{S}_B\mathbf{w})\mathbf{S}_W\mathbf{w}}{(\mathbf{w}^{\mathrm{T}}\mathbf{S}_W\mathbf{w})^2}
\end{align}
$$
上記において$\mathbf{w}^{\mathrm{T}}\mathbf{S}_W\mathbf{w}$と$\mathbf{w}^{\mathrm{T}}\mathbf{S}_B\mathbf{w}$は単なるスカラーのため、式の形ほど複雑な計算とはならないことに注意しておくとよい。ここで$\displaystyle \frac{\partial J(\mathbf{w})}{\partial \mathbf{w}}$が$0$となる場合は下記が成立する。
$$
\begin{align}
\mathbf{S}_B\mathbf{w}(\mathbf{w}^{\mathrm{T}}\mathbf{S}_W\mathbf{w}) &= (\mathbf{w}^{\mathrm{T}}\mathbf{S}_B\mathbf{w})\mathbf{S}_W\mathbf{w} \\
(\mathbf{w}^{\mathrm{T}}\mathbf{S}_B\mathbf{w})\mathbf{S}_W\mathbf{w} &= \mathbf{S}_B\mathbf{w}(\mathbf{w}^{\mathrm{T}}\mathbf{S}_W\mathbf{w}) \\
(\mathbf{w}^{\mathrm{T}}\mathbf{S}_B\mathbf{w})\mathbf{S}_W\mathbf{w} &= (\mathbf{w}^{\mathrm{T}}\mathbf{S}_W\mathbf{w})\mathbf{S}_B\mathbf{w}
\end{align}
$$
ここで$(2)$より$\mathbf{S}_B\mathbf{w}$は$(\mathbf{m}_2-\mathbf{m}_1)(\mathbf{m}_2-\mathbf{m}_1)^{\mathrm{T}}\mathbf{w}$となるが、$(\mathbf{m}_2-\mathbf{m}_1)^{\mathrm{T}}\mathbf{w}$がスカラーとなるため、$\mathbf{S}_B\mathbf{w}$は$\mathbf{m}_2-\mathbf{m}_1$に平行なベクトルとなる。よって、$\mathbf{w}$の満たす条件は下記となる。
$$
\begin{align}
\mathbf{w} \propto \mathbf{S}_W^{-1}(\mathbf{m}_2-\mathbf{m}_1)
\end{align}
$$

$S_W$と$S_B$の解釈

前項では$S_W$と$S_B$について唐突に定義された印象があるが、前項で導出された$\mathbf{w} \propto \mathbf{S}_W^{-1}(\mathbf{m}_2-\mathbf{m}_1)$の解釈を行うにあたって、$S_W$の解釈が必要となり、それに関連して$S_B$も抑えておくと良いと思われる。

前項でクラス内分散$V_W$とクラス間分散$V_B$について定義したが、$S_W$と$S_B$はそれぞれに対応する分散共分散行列である。
https://www.hello-statisticians.com/explain-terms-cat/pca1.html#i-6
分散共分散行列が出てくることについては、基本的には上記の議論を参考に理解すればよい。が、大元の$V_W$と$V_B$の定義が少々基本的な分散の定義とは異なっているため、一般的な分散共分散行列と完全に同じではないことには注意しておくとよい。

$$
\begin{align}
S_W = \sum_{n \in C_1}(\mathbf{x}_n-\mathbf{m}_1)(\mathbf{x}_n-\mathbf{m}_1)^{\mathrm{T}}+\sum_{n \in C_2} (\mathbf{x}_n-\mathbf{m}_2)(\mathbf{x}_n-\mathbf{m}_2)^{\mathrm{T}}
\end{align}
$$
まず上記で表した$S_W$は二つのクラス内において、それぞれクラスの平均ベクトルを元に分散を計算している。クラス内においては一般的な分散共分散行列ではあるが、その和を計算していることに注意が必要である。ここで、サンプル数で割らないのは一般的な分散共分散行列とは異なるが、$J(\mathbf{w})$の最大化にあたって重要なのは向きであり、大きさではないことを考えて割らないと考えればよいと思われる。また、サンプル数で割らないことによって、サンプル数に基づいた重み付け和を考えていることになり、重み付け平均と同様な意味を持ち、サンプル数が多いクラスの分散共分散行列をより参考にすると考えれば良さそうである。

$$
\begin{align}
S_B &= (\mathbf{m}_2-\mathbf{m}_1)(\mathbf{m}_2-\mathbf{m}_1)^{\mathrm{T}}
\end{align}
$$
$S_B$はクラス間の分散に対応する分散共分散行列とされるが、二つのベクトルの差の二乗を計算しており、平均からの差の二乗和を計算していないことが一般的な分散の数式と異なるように見える。が、二値における分散を計算すると、二つの差の二乗のスカラー倍が分散となることも合わせて抑えておくとよい。
$$
\begin{align}
\left( m_1 – \frac{m_1+m_2}{2} \right)^2 + \left( m_2 – \frac{m_1+m_2}{2} \right)^2 &= \left( \frac{m_2-m_1}{2} \right)^2 + \left( \frac{m_1-m_2}{2} \right)^2 \\
&= \frac{(m_2-m_1)^2}{4} + \frac{(m_2-m_1)^2}{4} \\
&= \frac{(m_2-m_1)^2}{2} \\
&= \frac{1}{2}V_B
\end{align}
$$
上記に基づいて$S_B$が導出されるため、こちらも向きの最適化を考えるにあたってはスカラー倍は考えなくて良いのであれば、この定義で十分である。

$\mathbf{w} \propto \mathbf{S}_W^{-1}(\mathbf{m}_2-\mathbf{m}_1)$の図形的解釈

https://www.hello-statisticians.com/explain-terms-cat/linear_discriminant1.html#i-6
上記で結果の図示が取り扱われているが、数式$\mathbf{w} \propto \mathbf{S}_W^{-1}(\mathbf{m}_2-\mathbf{m}_1)$の図形的解釈について明示的に議論されるケースが少ないため、ここでまとめることとする。

前項の$S_W$を考えるにあたって、二つのクラスの分散共分散行列が等しいと考える方がイメージがつかみやすいので、以下そのように考えるとする。
$$
\begin{align}
S_W = \left(\begin{array}{cc} 1 & 0.7 \\ 0.7 & 1 \end{array} \right)
\end{align}
$$
たとえば上記のような分散共分散行列$S_W$に基づいて考えるにあたって、上記の固有値は$(1-\lambda)^2-0.7^2=0$より、$\lambda=1.7, 0.3$、対応する大きさ$1$の固有ベクトルは$\displaystyle \left(\begin{array}{c} \frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} \end{array} \right), \left(\begin{array}{c} -\frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} \end{array} \right)$となる。

https://www.hello-statisticians.com/explain-terms-cat/multi_norm_dist1.html#i-9
https://www.hello-statisticians.com/explain-terms-cat/multi_norm_dist1.html#i-10
この時の$S_W^{-1}(\mathbf{m}_2-\mathbf{m}_1)$の解釈は固有ベクトルを$\mathbf{u}_i$のようにおき、上記を参考にすることで理解することができる。
$$
\begin{align} S_W^{-1}(\mathbf{m}_2-\mathbf{m}_1) = \sum_{i=1}^{D} \frac{1}{\lambda_i} \mathbf{u}_i \mathbf{u}_i^{\mathrm{T}} (\mathbf{m}_2-\mathbf{m}_1)
\end{align}
$$
この式において、$\mathbf{u}_i^{\mathrm{T}} (\mathbf{m}_2-\mathbf{m}_1)$は$(\mathbf{m}_2-\mathbf{m}_1)$の$\mathbf{u}_i$への正射影であり、スカラー値となる。よって、$\mathbf{u}_i \mathbf{u}_i^{\mathrm{T}} (\mathbf{m}_2-\mathbf{m}_1)$の向きは$\mathbf{u}_i$となる。

要するに$S_W$の固有ベクトルの$\displaystyle \frac{\mathbf{u}_i^{\mathrm{T}} (\mathbf{m}_2-\mathbf{m}_1)}{\lambda_i}$倍の重み付け和を求めることで、$\mathbf{w}$の向きを求めるというのがフィッシャーの線形判別である。ここで、$(\mathbf{m}_2-\mathbf{m}_1)$と平行な固有ベクトル$\mathbf{u}_i$がある場合、他の固有ベクトルは$(\mathbf{m}_2-\mathbf{m}_1)$と直交するため、$(\mathbf{m}_2-\mathbf{m}_1)$と平行な固有ベクトル$\mathbf{u}_i$が$\mathbf{w}$の向きになると考えるとわかりやすい。またこの時、前述のように二つのクラスそれぞれに関しての分散共分散行列が等しいと考えるなら、それぞれのクラスの固有ベクトルの向きと$\mathbf{w}$の向きが一致すると考えるとイメージしやすい。

まとめ

行列計算がなかなか複雑なため、ある程度ベクトルを用いた微分については慣れておくとよいと思います。

制約条件付き最適化問題におけるラグランジュの未定乗数法の導出と図形的解釈について

制約付き最適化問題の解法としてよく用いられる「ラグランジュの未定乗数法」だが、本論で議論されるというよりはAppendixなどで解説されることが多い。
当記事では「パターン認識と機械学習(PRML)」の上巻のAppendixを参考に、ラグランジュの未定乗数法の導出と図形的解釈について確認するものとする。

前提知識

ラグランジュの未定乗数法の概要

https://www.hello-statisticians.com/explain-terms-cat/pca1.html#i-4
概要は上記にまとめた。

ラグランジュの未定乗数法の応用

https://www.hello-statisticians.com/explain-terms-cat/pca1.html#i-6
ラグランジュの未定乗数法は上記のように主成分分析の導出などでも用いられる。多くの問題は制約付き最適化問題に帰着されることが多いので、ラグランジュの未定乗数法の応用例は非常に多い。

1変数関数のテイラー展開(復習)

まずは1変数関数のテイラー展開について復習する。関数$f$の$n$次の導関数を$f^{(n)}$とすると、$x=a$の周辺におけるテイラー展開は下記のようになる。
$$
\large
\begin{align}
f(x) &= \sum_{n=0}^{\infty} \frac{f^{(n)}(a)}{n!}(x-a)^n
\end{align}
$$

ここで$f^{(n)}(a)$は$x=a$における$f$の$n$次微分係数である。また、$a=0$においてはマクローリン展開と呼び、下記のように表す。
$$
\large
\begin{align}
f(x) &= \sum_{n=0}^{\infty} \frac{f^{(n)}(0)}{n!}x^n
\end{align}
$$

具体的な関数のマクローリン展開については下記で取り扱った。

https://www.hello-statisticians.com/explain-terms-cat/maclaurin-seriese.html

2変数関数のテイラー展開

2変数のスカラー関数$f(x,y)$のテイラー展開について考える。点$(x,y)=(a,b)$の周辺におけるテイラー展開は下記のようになる。

2変数のスカラー関数$f(x,y)$のテイラー展開について考える。点$(x,y)=(a,b)$の周辺におけるテイラー展開は下記のようになる。
$$
\large
\begin{align}
f(x,y) &= \sum_{n=0}^{\infty} \frac{1}{n!} \left( (x-a)\frac{\partial}{\partial x} + (y-b)\frac{\partial}{\partial y} \right)^{n} f(x,y)|_{x=a,y=b}
\end{align}
$$

上記において、「$|_{x=a,y=b}$」は$f(x,y)$の偏微分の計算を先に行ってから$(x,y)=(a,b)$を代入するという意味合いで用いた。

またここで、$x$を$a+x$、$y$を$b+y$で置き換えて、下記のように表記することもできる。
$$
\large
\begin{align}
f(a+x,b+y) &= \sum_{n=0}^{\infty} \frac{1}{n!} \left( x\frac{\partial}{\partial x} + y\frac{\partial}{\partial y} \right)^{n} f(x,y)|_{x=a,y=b}
\end{align}
$$

当稿の作成にあたり参考にした「パターン認識と機械学習(PRML)」ではこの表記を主に用いているため、以下ではこちらの表記を用いる。

多変数関数のテイラー展開

$$
\large
\begin{align}
\mathbf{x} &= \left(\begin{array}{c} x_1 \\ \vdots \\ x_p \end{array} \right) \\
\mathbf{\epsilon} &= \left(\begin{array}{c} \epsilon_1 \\ \vdots \\ \epsilon_p \end{array} \right)
\end{align}
$$

上記で定義した$\mathbf{x}$、$\mathbf{\epsilon}$を用いて多変数のスカラー関数$f(\mathbf{\epsilon})$の$\mathbf{\epsilon}=\mathbf{x}$の周囲での一次のテイラー展開について考える。ここで2変数までと異なり$x$や$y$ではなく$\mathbf{\epsilon}$を変数としたのには注意が必要で、これも参考にした「パターン認識と機械学習(PRML)」の表記に合わせるにあたって変更した。
$$
\begin{align}
f(x_1+\epsilon_1, \cdots , x_p+\epsilon_p) &= \frac{f(\mathbf{x})}{0!} + \frac{1}{1!}\left( \epsilon_1\frac{\partial}{\partial \epsilon_1} + \cdots + \epsilon_p\frac{\partial}{\partial \epsilon_p} \right) f(\epsilon_1, \cdots , \epsilon_p)|_{\epsilon_1=x_1, \cdots , \epsilon_p=x_p} \\
&= \frac{f(\mathbf{x})}{0!} + \frac{1}{1!}\left( \epsilon_1\frac{\partial}{\partial \epsilon_1} + \cdots + \epsilon_p\frac{\partial}{\partial \epsilon_p} \right) f(x_1, \cdots , x_p) \\
&= \frac{f(\mathbf{x})}{0!} + \frac{1}{1!}\left( \epsilon_1\frac{\partial f(x_1, \cdots , x_p)}{\partial \epsilon_1} + \cdots + \epsilon_p\frac{\partial f(x_1, \cdots , x_p)}{\partial \epsilon_p} \right) \\
&= \frac{f(\mathbf{x})}{0!} + \frac{1}{1!}\left(\begin{array}{r} \epsilon_1 & \cdots & \epsilon_p \end{array} \right) \left(\begin{array}{c} \frac{\partial f(x_1, \cdots , x_p)}{\partial \epsilon_1} \\ \vdots \\ \frac{\partial f(x_1, \cdots , x_p)}{\partial \epsilon_p} \end{array} \right) \\
&= f(\mathbf{x}) + \mathbf{\epsilon}^{T} \nabla f(\mathbf{x})
\end{align}
$$

上記の導出にあたって$\nabla$は下記のように定義した。
$$
\large
\begin{align}
\nabla &= \left(\begin{array}{c} \frac{\partial}{\partial \epsilon_1} \\ \vdots \\ \frac{\partial}{\partial \epsilon_p} \end{array} \right)
\end{align}
$$
ここで導出した一次の多変数関数のテイラー展開を用いて、以下ではラグランジュの未定乗数法の導出と図形的解釈を行う。

ラグランジュの未定乗数法の導出と図形的解釈

制約条件が等号で与えられる場合

$$
\large
\begin{align}
\mathbf{x} &= \left(\begin{array}{c} x_1 \\ \vdots \\ x_p \end{array} \right) \\
\mathbf{\epsilon} &= \left(\begin{array}{c} \epsilon_1 \\ \vdots \\ \epsilon_p \end{array} \right)
\end{align}
$$

上記のように$\mathbf{x}$、$\mathbf{\epsilon}$を定義した際に、下記の最適化問題を考える。
$$
\large
\begin{align}
&\mathrm{maximize}: f(\mathbf{x}) \\
&\mathrm{constraint}: g(\mathbf{x})=0
\end{align}
$$

ここで$f(\mathbf{x})$が最適化問題の目的関数、$g(\mathbf{x})=0$が最適化問題の制約条件である。このとき、前述の多変量関数のテイラー展開の考え方を元に、$g(\mathbf{x}+\mathbf{\epsilon})$の一次のテイラー展開を考える。
$$
\large
\begin{align}
g(\mathbf{x}+\mathbf{\epsilon}) \simeq g(\mathbf{x}) + \mathbf{\epsilon}^{T} \nabla g(\mathbf{x})
\end{align}
$$

上記において、$g(\mathbf{x}+\mathbf{\epsilon}) = g(\mathbf{x})$より$\mathbf{\epsilon}^{T} \nabla g(\mathbf{x})=0$が導出できる。ここで$\mathbf{\epsilon}$は$g(\mathbf{x})$の接線方向のベクトルであるため、$\nabla g(\mathbf{x})$は$g(\mathbf{x})$によって定義される領域に垂直なベクトルとなる。

また、$\nabla f(\mathbf{x})$も$g(\mathbf{x})=0$によって定義される領域に垂直なベクトルとなる。これにより$\nabla g(\mathbf{x})$と$\nabla f(\mathbf{x})$が平行で、$\nabla f(\mathbf{x}) + \lambda \nabla g(\mathbf{x})=0$が成立することがわかる。
$$
\large
\begin{align}
L(\mathbf{x}, \lambda) \equiv f(\mathbf{x}) + \lambda g(\mathbf{x})
\end{align}
$$

したがって、上記のように$L(\mathbf{x}, \lambda)$を定義すると、下記が成立する。
$$
\large
\begin{align}
\nabla L(\mathbf{x}, \lambda) &= \nabla f(\mathbf{x}) + \lambda \nabla g(\mathbf{x}) \\
&= 0
\end{align}
$$

よって、$L(\mathbf{x}, \lambda)$の最大化を考えることで、制約付きの最適化問題を解くことができる。

制約条件が不等号で与えられる場合

まとめ

「ラグランジュの未定乗数法」は「制約つき最適化問題」を解くにあたって用いられるので、多くの問題において用いられる非常に役に立つ解法です。
導出にあたっては「制約条件の関数」と「目的関数」の二つの勾配ベクトルが「制約条件」が作る線や平面などと直交し、二つの勾配ベクトルが平行であることを用いることで図形的な解釈を行いつつ示すことが可能です。

https://www.maruzen-publishing.co.jp/item/b294524.html

主成分分析が分散共分散行列の固有値・固有ベクトルで得られることを確認する

多次元のベクトルから主要なベクトルを構築する主成分分析は分散共分散行列の固有値・固有ベクトルを用いて導出できることが知られている。とはいえ、関連の数式を確認すると、二次形式が出てくることでなかなか導出が難しい。
そこで本稿では関連の導出を可能な限り数式変形を追いやすいようにまとめるものとする。導出にあたっては「パターン認識と機械学習(PRML)」の下巻の$12$章の導出が詳しいので、こちらの記載を元に数式変形を追いやすいように所々改変する。

前提知識

固有値・固有ベクトルの導出

下記などで詳しく取り扱った。

分散共分散行列の概要

行列$\mathbf{S}$の$(i,i)$成分を$i$番目の変数$x_i$の分散、$(i,j)$成分を$i$番目の変数$x_i$と$j$番目の変数$x_j$の共分散でそれぞれ表す場合、$\mathbf{S}$を分散共分散行列という。

ラグランジュの未定乗数法

制約条件ありの最適化問題(定義域の条件がある最大値問題)を解くにあたって、よく用いられるのがラグランジュの未定乗数法である。具体例を元に考える方がわかりやすいので、以下の問題を解くことを考えることとする。
$$
\begin{align}
\mathrm{maximize} &: f(x_1, x_2) = x_1+x_2 \\
\mathrm{constraint} &: x_1^2+x_2^2 = 1
\end{align}
$$
上記は高校数学の数Ⅱでも見かける問題であり、下図を利用して解くことができる。

図のように考えることで、$x_2=-x_1+k$で考えた直線が$x_1^2+x_2^2 = 1$を通る際の、$k$が最大値となる$x_1$と$x_2$を求めることで制約付き最適化問題を解くことができる。この問題においては$\displaystyle (x_1,x_2) = \left(\frac{\sqrt{2}}{2}, \frac{\sqrt{2}}{2} \right)$がここでの解となる。

ここまでで確認した解法を用いることで、高校レベルの数学のトピックを元に問題を解くことができる一方で、もう少し複雑な関数に対して計算を行うにあたって毎回図を描いて考えるのは大変である。このような時にラグランジュの未定乗数法が役に立つ。
$$
\begin{align}
\mathrm{maximize}: f(x_1, x_2, \lambda) = x_1+x_2+\lambda(1-(x_1^2+x_2^2))
\end{align}
$$
ラグランジュの未定乗数法では上記のように関数をおき、$f(x_1, x_2, \lambda)$を最大にする$x_1,x_2,\lambda$を求める手法である。ここで、それぞれを変数とみなし偏微分を計算すると下記のようになる。
$$
\begin{align}
\frac{\partial f(x_1, x_2, \lambda)}{\partial x_1} &= 1 – 2 \lambda x_1 \\
\frac{\partial f(x_1, x_2, \lambda)}{\partial x_2} &= 1 – 2 \lambda x_2 \\
\frac{\partial f(x_1, x_2, \lambda)}{\partial \lambda} &= 1 – (x_1^2 + x_2^2)
\end{align}
$$
ここで、上記が全て$0$となるような$x_1,x_2,\lambda$を求める。

$\displaystyle x_1 = \frac{1}{2 \lambda}$、$\displaystyle x_2 = \frac{1}{2 \lambda}$を$1 – (x_1^2 + x_2^2)=0$に代入し、$\displaystyle \lambda = \frac{1}{\sqrt{2}}$が求められる。
またこれを$\displaystyle x_1 = \frac{1}{2 \lambda}$、$\displaystyle x_2 = \frac{1}{2 \lambda}$に代入することで、$\displaystyle x_1 = \frac{\sqrt{2}}{2}$、$\displaystyle x_2 = \frac{\sqrt{2}}{2}$を得ることができ、これは図を用いて得た結果と一致する。

このようにラグランジュの未定乗数法を用いることで、制約ありの最適化問題を解くにあたって一関数の最大値問題のみを考えれば良くなり、導出が行いやすくなる。

二次形式とベクトル(二乗和をベクトルと行列で表す)

二次形式(quadratic form)は変数に関する次数が$2$の多項式である。たとえば$x_1$と$x_2$を変数とした時、下記は二次形式である。
$$
\begin{align}
ax_1^2 + bx_1 &x_2 + cx_2^2 \\
(abc &\neq 0)
\end{align}
$$
二次形式には様々な式の形があるが、主成分分析や回帰分析など統計に関連する計算においては二乗和を行列表記に変換することが多い。
$$
\begin{align}
\sum_{i=1}^{n} (w_1 x_{i1} + w_2 x_{i2})^2
\end{align}
$$
以下では、上記の二乗和の変形に関する代表的なパターンのみ紹介する。
$$
\begin{align}
\sum_{i=1}^{n} (w_1 x_{i1} + w_2 x_{i2})^2 &= (w_1 x_{11} + w_2 x_{12})^2 + \cdots + (w_1 x_{n1} + w_2 x_{n2})^2 \\
&= \left(\begin{array}{r} w_1x_{11} + w_1x_{12} & \cdots & w_1x_{n1} + w_1x_{n2} \end{array} \right) \left(\begin{array}{c} w_1x_{11} + w_1x_{12} \\ \vdots \\ w_1x_{n1} + w_1x_{n2} \end{array} \right) \\
&= \left(\begin{array}{r} w_1 & w_2 \end{array} \right) \left(\begin{array}{rr} x_{11} & \cdots & x_{n1} \\ x_{12} & \cdots & x_{n2} \end{array} \right) \left(\begin{array}{cc} x_{11} & x_{12} \\ \vdots & \vdots \\ x_{n1} & x_{n2} \end{array} \right) \left(\begin{array}{c} w_1 \\ w_2 \end{array} \right) \\
&= \left(\begin{array}{r} w_1 & w_2 \end{array} \right) \left(\begin{array}{cc} \displaystyle \sum_{i=1}^{n} x_{i1}^2 & \displaystyle \sum_{i=1}^{n} x_{i1}x_{i2} \\ \displaystyle \sum_{i=1}^{n} x_{i2}x_{i1} & \displaystyle \sum_{i=1}^{n} x_{i2}^2 \end{array} \right) \left(\begin{array}{c} w_1 \\ w_2 \end{array} \right) \cdot \cdot \cdot (a)
\end{align}
$$
上記のような計算を行うことで二乗和を$\mathbf{w}^{\mathrm{T}}\mathbf{X}^{\mathrm{T}}\mathbf{X}\mathbf{w}$のような計算式で表すことが可能となる。これを元に回帰分析の最小二乗法の式を解くと正規方程式が得られるし、$\mathbf{X}$を平均からの差で置き換えることで$\mathbf{X}^{\mathrm{T}}\mathbf{X}$が分散共分散行列に変形でき本稿のテーマである主成分分析の導出にも活用できる。

ここで一番注意が必要なのが、$(a)$がスカラーであることである。変形前の左辺を見ればスカラーであることが自明ではあるものの、行列の変形を多く行ううちに行列のように考えがちでそうなると議論がわからなくなるため、この辺はなるべく注意しておくと良い。

スカラー関数をベクトルで微分する($\nabla$)

最適化問題は数学的には最大値問題に帰着することが多い。そのため、大概の問題において前項で表したような二次形式に関して微分を行い最大値問題や最小値問題を解くことが試みられる。この時に多変数のスカラー関数の偏微分を行うと考えることもできるが、式の形が複雑な場合などはベクトル表記のまま微分することもある。

ベクトル表記に基づく微分は行なっていること自体は偏微分と変わらないものの、変形にあたって通常の関数の微分のように詳細の計算は記述されないことが多いため、別途抑えておく必要がある。
$$
\begin{align}
\mathbf{w} = \left(\begin{array}{c} w_1 \\ \vdots \\ w_p \end{array} \right)
\end{align}
$$

本項では上記で表した$p$次元ベクトル$\mathbf{w}$でスカラー関数を微分することを考える。微分にあたっては下記のように演算子を定めるとする。
$$
\begin{align}
\nabla = \frac{\partial}{\partial \mathbf{w}} = \left(\begin{array}{c} \frac{\partial}{\partial w_1} \\ \vdots \\ \frac{\partial}{\partial w_p} \end{array} \right)
\end{align}
$$

この時、$\nabla (w_1+w_2+w_3+…+w_p)$は下記のように全ての要素が$1$の$p$次元ベクトルに一致する。
$$
\begin{align}
\nabla (w_1+w_2+w_3+…+w_p) &= \frac{\partial}{\partial \mathbf{w}}(w_1+w_2+w_3+…+w_p) \\
&= \left(\begin{array}{c} \frac{\partial}{\partial w_1} \\ \vdots \\ \frac{\partial}{\partial w_p} \end{array} \right)(w_1+w_2+w_3+…+w_p) \\
&= \left(\begin{array}{c} 1 \\ \vdots \\ 1 \end{array} \right)
\end{align}
$$

次に$p$次元ベクトル$\mathbf{x}$を導入し、内積(行列の積の演算で表記するが、$1$行$p$列×$p$行$1$列の行列の積は内積と変わらないのでここではあえて内積と表記した)をベクトルで微分することを考える。
$$
\begin{align}
\mathbf{x} = \left(\begin{array}{c} x_1 \\ \vdots \\ x_p \end{array} \right)
\end{align}
$$

ここで$\mathbf{x}$は上記のように定義する。この時内積は下記の二通りで表記できる。
$$
\begin{align}
\mathbf{x}^{\mathrm{T}}\mathbf{w} &= \left(\begin{array}{r} x_1 & \cdots & x_p \end{array} \right) \left(\begin{array}{c} w_1 \\ \vdots \\ w_p \end{array} \right) \\
\mathbf{w}^{\mathrm{T}}\mathbf{x} &= \left(\begin{array}{r} w_1 & \cdots & w_p \end{array} \right) \left(\begin{array}{c} x_1 \\ \vdots \\ x_p \end{array} \right)
\end{align}
$$

上記のスカラー関数(内積はスカラー関数)に対して、下記のように$\mathbf{w}$で微分を行うことができる。
$$
\begin{align}
\nabla \mathbf{x}^{\mathrm{T}}\mathbf{w} &= \nabla \left(\begin{array}{r} x_1 & … & x_p \end{array} \right) \left(\begin{array}{c} w_1 \\ \vdots \\ w_p \end{array} \right) \\
&= \nabla (x_1w_1+x_2w_2+…x_pw_p) \\
&= \left(\begin{array}{c} x_1 \\ \vdots \\ x_p \end{array} \right) \\
&= \mathbf{x} \\
\nabla \mathbf{w}^{\mathrm{T}}\mathbf{x} &= \left(\begin{array}{r} w_1 & … & w_p \end{array} \right) \left(\begin{array}{c} x_1 \\ \vdots \\ x_p \end{array} \right) \\
&= \nabla (w_1x_1+w_2x_2+…w_px_p) \\
&= \left(\begin{array}{c} x_1 \\ \vdots \\ x_p \end{array} \right) \\
&= \mathbf{x}
\end{align}
$$
上記のように計算結果はどちらも$\mathbf{x}$となる。

次は$\mathbf{w}^{\mathrm{T}}\mathbf{w}$の微分について考える。下記のように微分を行うことができる。
$$
\begin{align}
\nabla \mathbf{w}^{\mathrm{T}}\mathbf{w} &= \nabla \left(\begin{array}{r} w_1 & … & w_p \end{array} \right) \left(\begin{array}{c} w_1 \\ \vdots \\ w_p \end{array} \right) \\
&= \nabla (w_1^2+w_2^2+…w_p^2) \\
&= 2\left(\begin{array}{c} w_1 \\ \vdots \\ w_p \end{array} \right) \\
&= 2\mathbf{w}
\end{align}
$$
途中で出てきたスカラー関数は$\mathbf{w}$の二次式のため、この計算は二次形式のベクトルでの微分と考えて良い。

次は$\mathbf{w}^{\mathrm{T}}\mathbf{A}\mathbf{w}$の微分について考える。ここで$A$は下記のように定義する。
$$
\begin{align}
\mathbf{A} = \left(\begin{array}{rrr} a_{11} & .. & a_{1p} \\ .. & .. & .. \\ a_{p1} & .. & a_{pp} \end{array} \right)
\end{align}
$$

以下、$\mathbf{w}^{\mathrm{T}}\mathbf{A}\mathbf{w}$を$\mathbf{w}$で微分する。
$$
\begin{align}
\nabla \mathbf{w}^{\mathrm{T}}\mathbf{A}\mathbf{w} &= \nabla \left(\begin{array}{r} w_1 & … & w_p \end{array} \right) \left(\begin{array}{rrr} a_{11} & .. & a_{1p} \\ .. & .. & .. \\ a_{p1} & .. & a_{pp} \end{array} \right) \left(\begin{array}{c} w_1 \\ \vdots \\ w_p \end{array} \right) \\
&= \nabla \left(\begin{array}{r} w_1 & … & w_p \end{array} \right) \left(\begin{array}{c} w_1a_{11}+..+w_pa_{1p} \\ \vdots \\ w_1a_{p1}+..+w_pa_{pp} \end{array} \right) \\
&= \nabla \left( w_1(w_1a_{11}+..+w_pa_{1p})+…+w_p(w_1a_{p1}+..+w_pa_{pp}) \right) \\
&= \left(\begin{array}{c} 2a_{11}w_1+..+(a_{1p}+a_{p1})w_p \\ \vdots \\ (a_{p1}+a_{1p})w_1+..+2a_{pp}w_p \end{array} \right) \\
&= \left(\begin{array}{ccc} 2a_{11} & .. & (a_{1p}+a_{p1}) \\ .. & .. & .. \\ (a_{p1}+a_{1p}) & .. & 2a_{pp} \end{array} \right) \left(\begin{array}{c} w_1 \\ \vdots \\ w_p \end{array} \right) \\
&= (\mathbf{A}+\mathbf{A}^{\mathrm{T}})\mathbf{w}
\end{align}
$$

ここで$\mathbf{A}^{\mathrm{T}}$は$\mathbf{A}$の転置行列であり、$\mathbf{A}$が対称行列であれば$\nabla \mathbf{w}^{\mathrm{T}}\mathbf{A}\mathbf{w} = 2\mathbf{A}\mathbf{w}$となり、これは一般的な二次式の微分と同様の形になる。

また、前項で確認した$\mathbf{w}^{\mathrm{T}}\mathbf{X}^{\mathrm{T}}\mathbf{X}\mathbf{w}$の$\mathbf{X}^{\mathrm{T}}\mathbf{X}$は対称行列となるので、$\nabla \mathbf{w}^{\mathrm{T}}\mathbf{X}^{\mathrm{T}}\mathbf{X}\mathbf{w} = 2\mathbf{X}^{\mathrm{T}}\mathbf{X}\mathbf{w}$となる。前項では$\mathbf{X}$を$n$行$2$列と考えたが、$n$行$p$列としても対称行列となるため、$\nabla \mathbf{w}^{\mathrm{T}}\mathbf{X}^{\mathrm{T}}\mathbf{X}\mathbf{w} = 2\mathbf{X}^{\mathrm{T}}\mathbf{X}\mathbf{w}$はp次元の$\mathbf{w}$に関して成立する。

主成分分析の導出

以下では主成分が分散共分散行列の固有ベクトルを計算することで得られることを確認する。まず、「主成分とは何を指すべきか」という定義から確認する。主成分は「二次元以上のサンプルが与えられた際に、分散を最大にする方向である」と考えることで一般的に定義される。

要するに上図におけるオレンジのベクトルの方向が主成分であるとイメージしておくとよい。ここでこの定義から「オレンジのベクトルが分散共分散行列の固有ベクトルで与えられること」が導出できれば、「主成分は分散共分散行列の固有ベクトルを求めることで得られる」とすることができる。

ここでは議論の簡易化のために総数$n$の$i$番目のサンプルが$2$次元ベクトル$\displaystyle \mathbf{x}_i = \left(\begin{array}{c} a_i \\ b_i \end{array} \right)$で得られることとする。また、サンプルの平均ベクトルが$\displaystyle \mathbf{\bar{x}} = \left(\begin{array}{c} \bar{a} \\ \bar{b} \end{array} \right)$で得られることとする。$3$次元以上についても基本的には同様に考えることができるので、一般的な議論と同様に考えておけば良い。このとき単位ベクトル$\displaystyle \mathbf{u} = \left(\begin{array}{c} u_1 \\ u_2 \end{array} \right)$を考えると、サンプルの平均ベクトルを始点とするサンプルのベクトル$\mathbf{x}_i-\mathbf{\bar{x}}$から単位ベクトル$\mathbf{u}$への正射影を考えると下記のように計算することができる。
$$
\begin{align}
(\mathbf{x}_i^{\mathrm{T}}-\mathbf{\bar{x}}^{\mathrm{T}}) \mathbf{u} &= (a_i-\bar{a})u_1 + (b_i-\bar{b})u_2 \cdot \cdot \cdot (1)
\end{align}
$$

上記の左辺は内積と同様であるので、$\displaystyle (\mathbf{x}_i-\mathbf{\bar{x}}) \cdot \mathbf{u}$と表すこともできる。また、左辺で使われている文字がベクトルであるのに対して、右辺で使われている文字は単なるスカラー(数)であることは注意しておきたい。

ここで$(1)$式は単位ベクトル$\displaystyle \mathbf{u} = \left(\begin{array}{c} u_1 \\ u_2 \end{array} \right)$に$\mathbf{x}_i-\mathbf{\bar{x}}$を射影したベクトルであり、上図の青の線の長さに相当する。これに基づいて$\mathbf{x}_i^{\mathrm{T}} \mathbf{u}$の分散$\displaystyle \frac{1}{n} \sum_{i=1}^{n}(\mathbf{x}_i^{\mathrm{T}}\mathbf{u}-\mathbf{\bar{x}}^{\mathrm{T}}\mathbf{u})^2 = \frac{1}{n} \sum_{i=1}^{n}((\mathbf{x}_i^{\mathrm{T}}-\mathbf{\bar{x}}^{\mathrm{T}}) \mathbf{u})^2$を計算すると下記のようになる。
$$
\begin{align}
\frac{1}{n} \sum_{i=1}^{n}((\mathbf{x}_i^{\mathrm{T}}-\mathbf{\bar{x}}^{\mathrm{T}}) \mathbf{u})^2 &= \frac{1}{n}\sum_{i=1}^{n}((a_i-\bar{a})u_1 + (b_i-\bar{b})u_2)^2 \\
&= \frac{1}{n} \left(\begin{array}{r} (a_1-\bar{a})u_1 + (b_1-\bar{b})u_2 & … & (a_n-\bar{a})u_1 + (b_n-\bar{b})u_2 \end{array} \right) \left(\begin{array}{c} (a_1-\bar{a})u_1 + (b_1-\bar{b})u_2 \\ \vdots \\ (a_n-\bar{a})u_1 + (b_n-\bar{b})u_2 \end{array} \right) \\
&= \frac{1}{n} \left(\begin{array}{r} u_1 & u_2 \end{array} \right) \left(\begin{array}{rr} a_1-\bar{a} & … & a_n-\bar{a} \\ b_1-\bar{b} & … & b_n-\bar{b} \end{array} \right) \left(\begin{array}{cc} a_1-\bar{a} & b_1-\bar{b} \\ \vdots & \vdots \\ a_n-\bar{a} & b_n-\bar{b} \end{array} \right) \left(\begin{array}{c} u_1 \\ u_2 \end{array} \right) \\
&= \frac{1}{n} \left(\begin{array}{r} u_1 & u_2 \end{array} \right) \left(\begin{array}{rr} \displaystyle \sum_{i=1}^{n}(a_i-\bar{a})(a_i-\bar{a}) & \displaystyle \sum_{i=1}^{n}(a_i-\bar{a})(b_i-\bar{b}) \\ \displaystyle \sum_{i=1}^{n}(b_i-\bar{b})(a_i-\bar{a}) & \displaystyle \sum_{i=1}^{n}(b_i-\bar{b})(b_i-\bar{b}) \end{array} \right) \left(\begin{array}{c} u_1 \\ u_2 \end{array} \right) \\
&= \left(\begin{array}{r} u_1 & u_2 \end{array} \right) \left(\begin{array}{rr} \displaystyle \frac{1}{n}\sum_{i=1}^{n}(a_i-\bar{a})(a_i-\bar{a}) & \displaystyle \frac{1}{n}\sum_{i=1}^{n}(a_i-\bar{a})(b_i-\bar{b}) \\ \displaystyle \frac{1}{n}\sum_{i=1}^{n}(b_i-\bar{b})(a_i-\bar{a}) & \displaystyle \frac{1}{n}\sum_{i=1}^{n}(b_i-\bar{b})(b_i-\bar{b}) \end{array} \right) \left(\begin{array}{c} u_1 \\ u_2 \end{array} \right) \cdot \cdot \cdot (2)
\end{align}
$$

ここで$(2)$式において、$\left(\begin{array}{r} u_1 & u_2 \end{array} \right)$と$\displaystyle \left(\begin{array}{c} u_1 \\ u_2 \end{array} \right)$の間の行列は数式よりサンプル$\mathbf{x}_1, \mathbf{x}_2, …, \mathbf{x}_n$の分散共分散行列であることがわかる。$2$変数で考えたため、分散共分散行列が$2$行$2$列となったことも着目しておくとよい。この分散共分散行列を$\mathbf{S}$とおくことにする。

ここでここまでに導出した$\mathbf{u}^{\mathrm{T}}\mathbf{S}\mathbf{u}$を$\mathbf{u}$が単位ベクトルであるという制約条件の下で最大化することを考える。$\mathbf{u}$が単位ベクトルであることは$\mathbf{u}^{\mathrm{T}}\mathbf{u} = u_1^2+u_2^2 = 1^2 = 1$が成立することに等しい。これによりラグランジュの未定乗数法より下記を最大化する$\mathbf{u}$を求める問題となる。
$$
\begin{align}
\mathbf{u}^{\mathrm{T}}\mathbf{S}\mathbf{u} + \lambda(1-\mathbf{u}^{\mathrm{T}}\mathbf{u})
\end{align}
$$

上記の$\mathbf{u}$に関する微分が$0$ベクトル$\mathbf{0}$になる際の$\mathbf{u}$の満たす条件を計算すると下記のようになる。(必要十分条件というより、必要条件と考えて議論を進めていることに注意。)
$$
\begin{align}
2\mathbf{S}\mathbf{u} – &2\lambda\mathbf{u} = \mathbf{0} \\
\mathbf{S}\mathbf{u} &= \lambda\mathbf{u} \cdot \cdot \cdot (3)
\end{align}
$$

上記は分散共分散行列$\mathbf{S}$に関する固有値・固有ベクトルに関する式となる。またこのとき$(3)$式の両辺に左から$\mathbf{u}^{\mathrm{T}}$をかけることを考える。
$$
\begin{align}
\mathbf{u}^{\mathrm{T}}\mathbf{S}\mathbf{u} = \lambda\mathbf{u}^{\mathrm{T}}\mathbf{u}
\end{align}
$$

上記において、固有値$\lambda$はスカラーなので順番を入れ替えることができた。また、前述のように$\mathbf{u}$が単位ベクトルなので$\mathbf{u}^{\mathrm{T}}\mathbf{u} = 1$が成立する。よって、$\lambda$は下記のように表せる。
$$
\begin{align}
\lambda = \mathbf{u}^{\mathrm{T}}\mathbf{S}\mathbf{u}
\end{align}
$$
上記を$(2)$式と見比べることで、分散共分散行列$\mathbf{S}$の固有値$\lambda$は分散の値を表していることがわかる。このとき、固有ベクトルの中から固有値$\lambda$を最大にするベクトルを選べばこれが第1主成分となる。

まとめ

$\mathbf{S}\mathbf{u} = \lambda\mathbf{u}$や$\mathbf{u}^{\mathrm{T}}\mathbf{S}\mathbf{u}$の導出が書籍などの記載では省略されることが多いので、なるべく導出の流れがわかりやすいように記載を行いました。
少々難しい式変形ではありますが、線形回帰のパラメータを導出する際の正規方程式を解くときにも似たような式変形を行うので、可能な限り抑えておくと良いです。どうしても難しい際も$2$次元で表記することで大体のイメージはつかめるので、何度か導出を追って把握すると良いのではと思います。

↓演習問題
https://www.hello-statisticians.com/practice/stat_practice9.html

参考

「統計学実践ワークブック」 演習問題中心 第5章 離散型分布

統計検定準$1$級対応の公式テキストである「統計学実践ワークブック」を$1$章から順に演習問題を中心に解説していきます。
今回は第$5$章「離散型分布」です。

本章のポイント

$4$章までで確率変数や確率密度関数について扱ってきました。本章では、離散型確率変数が従う確率分布である「離散型分布」の代表的なものが紹介されています。

確率分布は扱いたい問題に合わせて様々なものが作られてきました。離散型分布では特に、「ベルヌーイ分布」、「二項分布」、「ポアソン分布」が実用上よく使われています(実用の観点からはこれらの分布が扱いやすいからといった理由が主かもしれませんが)。また、これらの分布は互いに関連があり、ベルヌーイ分布を起点にそれぞれ導出することができます。

確率分布の性質を把握するために、確率変数の値の範囲を確認し(これは定義されている)、期待値と分散を導出してみると良いと思います。また、乱数を生成してヒストグラムを描いてみるのも役立ちますね。

ベルヌーイ分布

「離散型確率分布の数式まとめ」の「ベルヌーイ分布」で詳しく取り扱いました。

二項分布

「離散型確率分布の数式まとめ」の「二項分布」で詳しく取り扱いました。

演習問題解説

問5.1

ウィルスを研究するある研究機関がある。多くのウィルスを検査して滅多に現れないウィルスAを発見することが目的である。今、検査するウィルスが$n$株あり、それぞれのウィルス検査は独立行われ、ウィルスAの発見率は$p$で一定であるとする。

$(1)$ $n$株のウィルスの中にウィルスAが少なくとも$1$株は見つかる確率$\beta$を求めよ

一定確率$p$で独立に$n$回行われる試行に対して、$k$回事象が発生する場合の$k$は二項分布$\mathrm{Bin}(k | p, n)$に従います。本問は、二項分布を利用すれば良いことがわかります。

ウィルスAが少なくとも一つは見つかる確率は、$n$株の中からウィルスAが一つも見つからない場合を$1.0$から引いたものとなります。つまり

$$
\beta = 1.0 – \mathrm{Bin}(k=0 | p, n)
$$

です。

ということで、二項分布の定義に従って素直に計算します。

$$
\begin{align}
\beta &= 1.0 – \mathrm{Bin}(k=0 | p, n) \\
&= 1.0 – \frac{n!}{k! (n-k)!}p^k(1-p)^{n-k} \\
&= 1.0 – \frac{n!}{n!} (1-p)^n = 1-(1-p)^n
\end{align}
$$

$(2)$ Aの発見率$p=1/5000, β=0.98$のときの$n$の値を求めよ

テキストには近似値として次の値が与えられています。

  • $\log(1-p) \simeq -p$
  • $\log(0.02) \simeq -3.9$

$(1)$で$\beta$を導出していますので、これを単純に展開するだけです。

$$
\begin{align}
\beta = 1-(1-p)^n &= 0.98 \\
(1-p)^n &= 0.02 \\
n \log (1-p) &= \log 0.02 \\
n &= \frac{\log 0.02}{\log (1-p)} \\
n &\simeq \frac{-3.9}{- \frac{1}{5000}} \\
n &\simeq 19500
\end{align}
$$

$4$行目から$5$行目で問に設定されている近似値を代入しています。

問5.2

ある町に住む$40$代前半の男女$79$人を無作為に選び、就業者と非就業者の数を集計した(集計テーブル自体はここでは掲載しません。テキストを参照ください)。

集計の結果、男性で就業者の人数は$40$人であった。

$79$人から$25$人をランダムに選ぶ時、男性で就業者の人数$X$の確率関数を求めよ

この問は、集計の設定から、男性/女性と就業者/非就業者の$4$区分に分けられます。しかし、具体的な問では、男性で就業者の人数$X$について問われているため、$4$区分を$X$の区分とその他の区分と二つに分けて考えます。このように考えますと、$X$は超幾何分布$\mathrm{HG}(N, M, n)$に従うとわかります。

$$
\begin{align}
p(X=x) &= \mathrm(HG)(x | N=79, M=40, n=25) \\
&= \frac{_mC_x \cdot _{N-M}C_{n-x}}{_nC_n} = \frac{ _{40}C_x \cdot _{39}C_{25-x} }{_{79}C_{25}}
\end{align}
$$

問5.3

ある$9$人のグループ($N=9$)のうち、関東地方出身者は$3$人($R=3$)、関東地方以外の出身者は6人だった。このグループから無作為非復元抽出で$4$人を抽出したとする。

$i$番目の人が関東地方出身であるか否かを確率変数とする($X_i = \{0, 1\} (i=1,2,3,4)$)。$X_i=1$とは、$i$番目の人が関東地方出身であることを示す。

$(1)$ $E[X^2_i]$を求めよ

期待値の定義通りに書き下してみます。

$$
E[X^2_i] = \sum_x x^2 p(X_i=x) = (x=1)p(X_i=1) + (x=0)p(X_i=0) = p(X_i=1)
$$

$X_i$は$0$か$1$をとる確率変数なので、期待値を計算するためには$0$と$1$の場合の和になります。ここで、$X_i=0$の場合には$0$となるため、$p(X_i=1)$を導出すればよいことがわかります(上式)。

では、$p(X_i=1)$を考えます。$N$人の中から$n$人を無作為抽出するパターンの数は$_NP_n$となります。このパターン数を全体として、$i$番目が関東出身者であるパターン数を考えれば良いわけです。$i$番目が特定の人(関東出身者$3$人のうちの一人)になるパターン数は、$i$番目が固定されているので、$(N-1)$個から$(n-1)$個を抽出するパターン数ということになります($_{N-1}P_{n-1}$)。関東出身者は$R=3$人おり、$i$番目に入る「特定の人」はこの$3$人のうち誰でも良いわけです。なので、「$i$番目が関東出身者であるパターン数」は$R \cdot _{N-1}P_{n-1}$となります。

以上をまとめて計算すると以下のようになります。

$$
\begin{align}
p(X_i=1) &= \frac{R \cdot _{N-1}P_{n-1}}{_NP_n} \\
&= \frac{3 \cdot _{9-1}P_{4-1}}{_9P_4} = \frac{1}{3}
\end{align}
$$

$(2)$ $X_i, X_j, i \neq j$に対して、$E[X_i X_j]$を求めよ

上記$(1)$と同じ考え方で導出できます。

まずは、期待値の定義通りに展開して、どのような確率を出せば良いのかを考えます。

$$
\begin{align}
E[X_i X_j] &= \sum_i \sum_j x_i x_j p(X_i=x_i, X_j=x_j) \\
&= p(X_i=1, X_j=1)
\end{align}
$$

二つの確率変数の積なので、$x_i = x_j = 1$以外は全て$0$となります。そのため、$p(X_i=1, X_j=1)$を考えれば良いことがわかります。

$i$番目と$j$番目が共に関東出身者であるパターンを考えることになるため、$2$枠が固定されます。そのため、$(N-2)$個から$(n-1)$個を抽出するパターン数ということで$_{N-2}P_{n-2}$パターンあります。この$2$枠の取り方として、関東出身者は$4$人いるので、$_4P_2$パターンあります。全てのパターン数は$(1)$と同じなので、結局以下のようになります。

$$
\begin{align}
E[X_i X_j] &= p(X_i=1, X_j=1) \\
&= \frac{_RP_2 \cdot _{N-2}P_{n-2}}{_NP_n} \\
&= \frac{_4P_2 \cdot _{9-2}P_{4-2}}{_9P_4} = \frac{1}{12}
\end{align}
$$

$(3)$ 標本平均の分散$V[\bar{X}]$を求めよ

$V[\bar{X}]$を展開します。

$$
\begin{align}
V[\bar{X}] &= V\left[ \frac{1}{4} \sum X_i \right] = \frac{1}{16}V\left[ \sum X_i \right]
\end{align}
$$

非独立な確率変数の和の分散は以下のようになります。

$$
V\left[ \sum_i X_i \right] = \sum_i V\left[ X_i \right] + \sum_{i \neq j} \mathrm{Cov}(X_i, X_j)
$$

分散を期待値で書き下すと以下の通り(参考)となり、$(1)$の結果を適用して分散を算出しておきます。

$$
\begin{align}
V[X] &= E[X^2] – (E[X])^2 \\
&= \frac{1}{3} – \left(\frac{1}{3} \right)^2 = \frac{2}{9}
\end{align}
$$

また、共分散$\mathrm{Cov}(X_i, X_j)$は以下のように展開できます。こちらも$(1)$、$(2)$の結果を利用して算出しておきます。

$$
\begin{align}
\mathrm{Cov}(X_i, X_j) &= E[X_iX_j] – E[X_i]E[X_j] \\
&= \frac{1}{12} – \frac{1}{3}\frac{1}{3} = – \frac{1}{36}
\end{align}
$$

共分散は$i, j$の組み合わせ分足し合わせる必要がありますが、組み合わせ数はここでは$12$通りとなります。分散共分散行列を考えた際の非対角成分が$i \neq j$要素となります。今回は確率変数が$4$つなので、$16$通りから$4$通りを引いて$12$通りであることがわかります(下図参照)。$_4P_2$を考えても同じなのでわかりやすい方で考えてもらえたらと思います。

以上をまとめると標本平均の分散は以下の通りです。

$$
\begin{align}
V[\bar{X}] &= V\left[ \frac{1}{4} \sum X_i \right] = \frac{1}{16}V\left[ \sum X_i \right] \\
&= \frac{1}{16} \left\{ \sum_i V\left[ X_i \right] + \sum_{i \neq j} \mathrm{Cov}(X_i, X_j) \right\} \\
&= \frac{1}{16} \left\{ 4\frac{2}{9} + 12 \left(- \frac{1}{36} \right) \right\} = \frac{5}{144}
\end{align}
$$

問5.4

サッカーの試合において、チーム$T1$があげた得点($X$)とチーム$T2$があげた得点($Y$)がそれぞれ独立にポアソン分布に従うと仮定する。ポアソン分布のパラメータは以下の通り。

$$
\begin{align}
X &\sim \mathrm{Poi}(X | \lambda_1=1.5) \\
Y &\sim \mathrm{Poi}(X | \lambda_2=3.0)
\end{align}
$$

二つのチームの合計得点が従う分布の平均と分散を求めよ

ポアソン分布に従う確率変数の和の確率分布は、パラメータが二つのポアソン分布のパラメータの和となるポアソン分布になります(ポアソン分布の再生成)。

$$
X+Y \sim \mathrm{Poi}(\lambda_1 + \lambda_2)
$$
また、ポアソン分布の期待値と分散は共に同じで、ポアソン分布のパラメータと同じとなります。

以上のことから、平均が$4.5$、分散が$4.5$のポアソン分布に従うということがわかります。

合計得点が$5$点という条件のもとで、$T1$の得点$X$の従う分布を求めよ

条件付き分布を計算します。計算上のポイントとして、$X$と$Y$はそれぞれ独立であると示されているので、同時分布が単純な積になります。

$$
\begin{align}
p(X=x | x+y=5) &= \frac{p(x, x+y=5)}{p(x+y=5)} = \frac{p(x, y=5-x)}{p(x+y=5)} \\
&= \frac{p(x) p(y=5-x)}{p(x+y=5)} \\
&= \frac{\mathrm{Poi}(x|\lambda_1) \mathrm{Poi}(y=5-x|\lambda_2) }{\mathrm{Poi}(x+y=5|\lambda = \lambda_1 + \lambda_2)}
\end{align}
$$

上述の通り、同時分布が単純な形になるところ以外は定義通りです。

ポアソン分布は$\mathrm{Poi}(y|\lambda) = \frac{\lambda^{y}}{y!} e^{-\lambda}$なので、これを代入して愚直に計算していけば条件付き分布を導出することができます。

$$
\begin{align}
p(X=x | x+y=5) &= \frac{\mathrm{Poi}(x|\lambda_1) \mathrm{Poi}(y=5-x|\lambda_2) }{\mathrm{Poi}(x+y=5|\lambda = \lambda_1 + \lambda_2)} \\
&= \frac{\frac{\lambda_1^{x}}{x!} e^{-\lambda_1} \frac{\lambda_2^{5-x}}{(5-x)!} e^{-\lambda_2} }{ \frac{(\lambda_1+\lambda_2)^{5}}{5!} e^{-(\lambda_1+\lambda_2)} } \\
&= \frac{5! \lambda_1^{x} \lambda_2^{5-x}}{ x! (5-x)! (\lambda_1 + \lambda_2)^5 } \\
\end{align}
$$

ここまでの展開結果を眺めてみると、$\lambda_i$に関係しない部分と関係する部分に分割して考えてみると見覚えのある形が見えてきそうな気配がします。まず、$\lambda_i$に関係しない部分を整理すると以下のように二項係数が出てきます。

$$
\frac{5!}{x! (5-x)!} = \binom{5}{k} = _5C_x
$$

次に、$\lambda$に関係する項ですが、これも展開すると以下の通りとなります。

$$
\begin{align}
\frac{\lambda_1^{x} \lambda_2^{5-x}}{ (\lambda_1 + \lambda_2)^5 } &= \left( \frac{\lambda_1}{\lambda_1+\lambda_2} \right)^x \left( \frac{\lambda_2}{\lambda_1+\lambda_2} \right)^{5-x} \\
&= \left( \frac{\lambda_1}{\lambda_1+\lambda_2} \right)^x \left( 1 – \frac{\lambda_1}{\lambda_1+\lambda_2} \right)^{5-x}
\end{align}
$$

$(\lambda_1 + \lambda_2)^5 = (\lambda_1 + \lambda_2)^x(\lambda_1 + \lambda_2)^{5-x}$と分解できることが注意点です。$x+y=5$で$x, y$共に$0$以上の整数なので、$x \lt 5$であることは明らかです。

ここまで来れば明らかに、上記の条件付き分布は二項分布になることがわかります。

$$
\begin{align}
p(X=x | x+y=5) &= \binom{5}{k}\left( \frac{\lambda_1}{\lambda_1+\lambda_2} \right)^x \left( 1 – \frac{\lambda_1}{\lambda_1+\lambda_2} \right)^{5-x} \\
&= \mathrm{Bin}(x | \theta=\frac{\lambda_1}{\lambda_1+\lambda_2}, n=5)
\end{align}
$$

問5.5

シールがおまけとして入っているお菓子がある。シールは全部で$4$種類で全て等確率とする。

$(1)$ $4$種類全てのカードを揃えるまでに必要な購入回数の期待値を求めよ

持っていないシールが出るまでの回数$x$は、シールの種類が含まれる確率を$p$で等確率とすると以下の幾何分布に従います。

$$
\mathrm{Geo}(x | p) = p(1-p)^{x-1}
$$

ここで、持っているシールの種類数を$m$、シールの全種類数を$k$とおくと、持っていない種類のシールが出てくる確率$p_m$は以下の通りとなります。

$$
p_m = \frac{1}{k}(k-m)
$$

既に持っているシールが$m$種類ある場合に、持っていない種類のシールが出る回数を示す確率変数を$X_m$とすると、$k=4$種類全てのカードを揃えるまでに必要な回数の期待値は、$m$を$0 \sim (k-1)$までとした確率変数$X_m$の和の期待値を導出すれば良いわけです。

$$
\begin{align}
E[X] = \sum^{k-1}_{m=0} E[X_m]
\end{align}
$$

ここで、$X_m$は上記の通り幾何分布に従います。幾何分布に従う確率変数の期待値は次の通りです。

$$
E[X] = \frac{1}{p}
$$

幾何分布の期待値の導出は確率母関数を利用すると容易に導出できます。

以上を利用して、期待値を導出します。

$$
\begin{align}
E[X] &= \sum^{k-1}_{m=0} E[X_m] = \sum^{k-1}_{m=0} \frac{k}{k-m} \\
&= \frac{4}{4} + \frac{4}{3} + \frac{4}{2} + \frac{4}{1} = \frac{25}{3}
\end{align}
$$

$(2)$ シールの種類が追加された場合の購入回数の期待値について

テキストに書かれている問いの内容をかいつまんで記載すると次の通りとなります。

$4$種類のシールを集め切った後に、シールが$1$種類追加された。
初めの$4$種類と追加された$1$種類の計$5$枚のシールを集めきるまでの購入回数の期待値を$x$とする。一方、初めから$5$種類のシールがあったときに$5$種類のシールを集め切るまでの試行回数の期待値を$y$とする。
では、$x-y$を求めよ。

とされています。まずは$x, y$それぞれを導出します。

$x$については、$(1)$の結果を利用し、幾何分布に従う確率変数の期待値を単純に足し合わせれば良いだけです。

$$
x = \frac{25}{3} + \frac{1}{p_5} = \frac{25}{3} + \frac{5}{1} = \frac{40}{3}
$$

ここで、$5$種類のカードのうち$4$種類のカードが既に手元にあって、$5$種類目のカードが出る確率は$\displaystyle p_5 = \frac{1}{5}$となります($(1)$参照)。

次に$y$については、$(1)$の計算を$k$を変更して再計算するだけです。

$$
\begin{align}
y &= \sum^{5-1}_{m=0} \frac{5}{5-m} \\
&= \frac{5}{5} + \frac{5}{4} + \frac{5}{3} + \frac{5}{2} + \frac{5}{1} = \frac{137}{12}
\end{align}
$$

以上の結果を利用して$x-y$は以下の通りです。

$$
x-y = \frac{40}{3} – \frac{137}{12} = \frac{23}{12}
$$

参考文献

ワークブック以外の参考資料として以下のものがおすすめです。

  • 松原ら, 統計学入門, $1991$, 東京大学出版会
  • 矢島ら, 自然科学の統計学, $1992$, 東京大学出版会

乱数生成の基本アルゴリズムまとめ(線形合同法、M系列、中心極限定理の応用 etc)

乱数はゲームのプログラミングやMCMCなどを用いた近似解の計算など、様々な分野で用いられています。パッケージを用いた乱数の発生についてはよくまとめを見かける一方で、乱数生成の原理についてまとめてある記事は少ないです。そこで当稿では「自然科学の統計学」などを主に参考にしつつ、乱数生成のアルゴリズムについてまとめます。
乱数を用いた計算は「自然科学の統計学」の出版以降に大きく発展したので、基本的な原理にとどまらず昨今用いられるアルゴリズムについても確認します。

乱数生成手法の概要

乱数の生成にあたってはサイコロなどを用いて乱数表(table of random number)を生成しても良いが、円周率の計算にあたっての数値積分のようにコンピュータを用いた計算にあたって大量の乱数が必要とされる場合には不向きである。

よって数値積分などに用いる際は、プログラムに従って乱数を生成する擬似乱数(算術乱数)が用いられることが基本的に多い。この擬似乱数(算術乱数)の基本的なアルゴリズムを確認することを当稿の目的とする。

一様乱数の生成

線形合同法(LCG)

$1948$年にレーマー(Lehmer)が考案した線形合同法(LCG; linear congruential method)について確認する。線形合同法は、漸化式に基づいて乱数列を出力する手法である。
$$
\large
\begin{align}
X_{n+1} = aX_{n} + c \quad (\mathrm{mod} \; M), \quad n \geq 1
\end{align}
$$
線形合同法では上記の漸化式を用いて、乱数列の$X_0, X_1, X_2, …$を出力する。式に記載のある「$\mathrm{mod} \; M$」は知らないと難しく見えるが、単に「$M$で割った余り」を意味する。「$2=5 (\mathrm{mod} \; 3)$」のイメージで理解しておけば良い。

数式だけではイメージがつかないと思われるので、$X_0=2$、$a=3$、$c=2$、$M=7$の簡単な例で確認を行う。
$$
\large
\begin{align}
X_{0+1} &= aX_{0} + c \quad (\mathrm{mod} \; M) \\
X_1 &= 3X_{0} + c \quad (\mathrm{mod} \; M) \\
&= 3 \times 2 + 2 \quad (\mathrm{mod} \; 7) \\
&= 8 \quad (\mathrm{mod} \; 7) \\
&= 1 \quad (\mathrm{mod} \; 7)
\end{align}
$$

上記のように$X_1=1$が計算できる。以下同様に$X_7$まで計算する。
$$
\large
\begin{align}
X_{2} &= 3X_{1} + 2 \quad (\mathrm{mod} \; 7) \\
&= 3 \times 1 + 2 \quad (\mathrm{mod} \; 7) \\
&= 5 \quad (\mathrm{mod} \; 7)
\end{align}
$$
$$
\large
\begin{align}
X_{3} &= 3X_{2} + 2 \quad (\mathrm{mod} \; 7) \\
&= 3 \times 5 + 2 \quad (\mathrm{mod} \; 7) \\
&= 17 \quad (\mathrm{mod} \; 7) \\
&= 3 \quad (\mathrm{mod} \; 7)
\end{align}
$$
$$
\large
\begin{align}
X_{4} &= 3X_{3} + 2 \quad (\mathrm{mod} \; 7) \\
&= 3 \times 3 + 2 \quad (\mathrm{mod} \; 7) \\
&= 11 \quad (\mathrm{mod} \; 7) \\
&= 4 \quad (\mathrm{mod} \; 7)
\end{align}
$$
$$
\large
\begin{align}
X_{5} &= 3X_{5} + 2 \quad (\mathrm{mod} \; 7) \\
&= 3 \times 4 + 2 \quad (\mathrm{mod} \; 7) \\
&= 14 \quad (\mathrm{mod} \; 7)\\
&= 0 \quad (\mathrm{mod} \; 7)
\end{align}
$$
$$
\large
\begin{align}
X_{6} &= 3X_{5} + 2 \quad (\mathrm{mod} \; 7) \\
&= 3 \times 0 + 2 \quad (\mathrm{mod} \; 7) \\
&= 2 \quad (\mathrm{mod} \; 7)
\end{align}
$$
$$
\large
\begin{align}
X_{7} &= 3X_{6} + 2 \quad (\mathrm{mod} \; 7) \\
&= 3 \times 2 + 2 \quad (\mathrm{mod} \; 7) \\
&= 8 \quad (\mathrm{mod} \; 7) \\
&= 1 \quad (\mathrm{mod} \; 7)
\end{align}
$$

上記のように計算することができる。ここで、$X_0=X_6=2$、$X_1=X_7=1$になっていることは着目すべきで、これは線形合同法によって生成される乱数の周期性を意味する。また、線形合同法によって生成される乱数は現在の値にのみ基づいて次の値が決まるので、「$\mathrm{mod} \; 7$」では最大$7$通りの値しか持たないことから、周期は$7$以下となることがわかる。ここでの周期は$6$であり、$7$以下である。

「$\mathrm{mod} \; M$」とした際に乱数の周期が$M$以下となるのは同様に考えることで一般的に成立するとできる。また、乱数列${X_n}$の周期が最大値の$M$となる必要十分条件は下記であることも知られている。

i) cとMが互いに素
ⅱ) b=a-1がMを割り切る全ての素数の倍数
ⅲ) Mが4の倍数であればbも4の倍数

最大周期を実現するパラメータの設定に関する証明などは下記で取り扱いを行った。

また、線形合同法では多次元乱数を生成する際に「多次元疎結晶構造」を生じやすいことに注意が必要である。多次元疎結晶構造に関しては下記で詳しく取りまとめた。

乗算型合同法

乗算型合同法の基本的な考え方は線形合同法と同じであるが、乗算型合同法においては下記の漸化式を用いる。
$$
\large
\begin{align}
X_{n+1} = aX_{n} \quad (\mathrm{mod} \; M), \quad n \geq 1
\end{align}
$$
線形合同法において定数項の$c$を消去すると乗算型合同法になると抑えておくとよい。

また、乗算型合同法の周期に関しては下記が成立する。
i) $M$が素数の場合は可能な最長周期は$M-1$である。
ⅱ) $M=2^e (e \geq 4)$を用いる場合は可能な最長の周期は$M/4$となる。

M系列

前述の線形合同法や乗算型合同法は簡易的な手法という意味では優れているが、生成する乱数が$1$つの乱数から決まることから大規模なケースで用いるのが難しいとされている。この話は確率過程を考える際のマルコフ性がシンプルで取り扱いやすい一方で、取り扱う題材によってはシンプル過ぎることで表現力上の問題が生じるのと同様に理解することができると思われる。

そのため、乱数の生成にあたって$2$つ以上の数字を用いる手法の方が望ましいと考えられる。
$$
\large
\begin{align}
a_{n} = a_{n-q}+a_{n-p} \quad (\mathrm{mod} \; 2, \quad q<p)
\end{align}
$$
初期値$a_0, a_1, a_2, …, a_{p-1}$をランダムに定めたのちに(全てが$0$や$1$にならないように気をつける必要あり)、上記のように数列${a_n}$の作成を考える。この数列${a_n}$はM系列と呼ばれる。このときに$X_n$のビット長を$l$とすると、$a_0$から$l$個の数字を取り出して並べたものを$2$進数表記とみなし、これを$10$進数表記に直すことで乱数を得ることができる。$X_1$以降も同様の手順を繰り返し乱数を得る。

解説よりも具体例を元に確認する方がわかりやすいので、「自然科学の統計学」の$11.2.2$節の例に基づいて具体的に確認する。$l=2$、$p=5$、$q=3$、$a_0=1, a_1=1, a_2=0, a_3=0, a_4=1$とする。このとき、$a_5$は下記のように計算できる。
$$
\large
\begin{align}
a_{n} &= a_{n-q}+a_{n-p} \quad (\mathrm{mod} \; 2) \\
a_{5} &= a_{5-3}+a_{5-5} \quad (\mathrm{mod} \; 2) \\
&= a_{2}+a_{0} \quad (\mathrm{mod} \; 2) \\
&= 0+1 \quad (\mathrm{mod} \; 2) \\
&= 1
\end{align}
$$

同様に$a_6, a_7, a_8, a_9$は下記のように計算できる。
$$
\large
\begin{align}
a_{6} &= a_{3}+a_{1} \quad (\mathrm{mod} \; 2) \\
&= 0+1 \quad (\mathrm{mod} \; 2) \\
&= 1
\end{align}
$$
$$
\large
\begin{align}
a_{7} &= a_{4}+a_{2} \quad (\mathrm{mod} \; 2) \\
&= 1+0 \quad (\mathrm{mod} \; 2) \\
&= 1
\end{align}
$$
$$
\large
\begin{align}
a_{8} &= a_{5}+a_{3} \quad (\mathrm{mod} \; 2) \\
&= 1+0 \quad (\mathrm{mod} \; 2) \\
&= 1
\end{align}
$$
$$
\large
\begin{align}
a_{9} &= a_{6}+a_{4} \quad (\mathrm{mod} \; 2) \\
&= 1+1 \quad (\mathrm{mod} \; 2) \\
&= 0
\end{align}
$$

上記より、$2$進数表記で$X_0=11$、$X_1=00$、$X_2=11$、$X_3=11$、$X_4=10$とできる。これを$10$進数に直すと、$X_0=3$、$X_1=0$、$X_2=3$、$X_3=3$、$X_4=2$となる。このように計算することで$2$つの値に基づいて一様乱数を生成することができる。

またこの数列の周期は$2^p-1=2^5-1=31$であり、線形合同法や乗算型合同法に比較して周期が長い乱数となることも着目しておくと良い。

メルセンヌツイスタ法

下記で詳しく取りまとめた。

LCGと多次元疎結晶構造

一様乱数以外の生成

正規乱数の生成(中心極限定理の応用)

中心極限定理を応用することで互いに独立に一様分布$[0,n]$に従う乱数から正規乱数の生成を行うことができる。$n$個の独立な一様乱数の$U_1, U_2, …, U_n$の和$U=U_1+U_2+…+U_n$を下記のように標準化することで正規乱数を得ることができる。
$$
\large
\begin{align}
X = \frac{U-E[U]}{\sqrt{V[U]/n}}
\end{align}
$$

ここで一様分布$[0,n]$に対して、$E[U]$と$V[U]$は下記のように計算できる。
$$
\large
\begin{align}
E[U] &= \int_{0}^{n} x \cdot \frac{1}{n} dx \\
&= \left[ \frac{x^2}{2n} \right]_{0}^{n} \\
&= \frac{n^2}{2n} – \frac{0^2}{2n} \\
&= \frac{n}{2}
\end{align}
$$
$$
\large
\begin{align}
E[U] &= \int_{0}^{n} (x-E[X])^2 \cdot \frac{1}{n} dx \\
&= \left[ \frac{(x-n/2)^2}{3n} \right]_{0}^{n} \\
&= \frac{n^3}{3 \cdot 8n} – \frac{-n^3}{3 \cdot 8n} \\
&= \frac{n^2}{12}
\end{align}
$$

このとき、$X$は下記のようになる。
$$
\large
\begin{align}
X &= \frac{U-E[U]}{\sqrt{V[U]/n}} \\
&= \frac{U-n/2}{\sqrt{n^2/(12n)}} \\
&= \frac{U-n/2}{\sqrt{n/12}}
\end{align}
$$
上記は$X$の確率分布が$\displaystyle n \to \infty$のとき標準正規分布に近づくという事実を利用し(中心極限定理)、正規乱数の作成を行っている。$n=12$がよく用いられる。

正規乱数を作成する他の手法よりもパフォーマンスはよくないとされるが、推測統計学を考える上での中核的な考え方である中心極限定理を実感することもできるので考え方は抑えておくと良いと思われる。

逆関数法

下記で詳しく取り扱った。

・逆関数法の原理と指数分布に基づく乱数の生成
https://www.hello-statisticians.com/explain-terms-cat/inverse-transformation-method.html

ボックス・ミュラー法

下記で詳しく取り扱った。

別名法

下記で詳しく取り扱った。

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

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

Ch.10 「確率過程の基礎」の章末問題の解答例 〜自然科学の統計学(東京大学出版会)〜

当記事は「基礎統計学Ⅲ 自然科学の統計学(東京大学出版会)」の読解サポートにあたってChapter.$10$の「確率過程の基礎」の章末問題の解説について行います。
基本的には書籍の購入者向けの解答例・解説なので、まだ入手されていない方は下記より入手をご検討ください。また、解説はあくまでサイト運営者が独自に作成したものであり、書籍の公式ページではないことにご注意ください。

章末の演習問題について

問題10.1の解答例

時点$n$で原点に戻るにあたっては、「左右に動く回数が一致する」かつ「上下に動く回数が一致する」状態であれば良い。よって、$n$が奇数のとき、原点に戻る確率は$0$となる。したがって、以下では$n$が偶数のみを考えるにあたって、$n=2m$となるように整数$m$を導入する。また、ここで左右に動く回数をそれぞれ$k$として以下考える。
左右に動く回数の合計は$2k$のため、上下に動く回数の合計は$n-2k=2(m-k)$となる。よって、以下では左右に$k$回ずつ、上下に$m-k$回ずつ動く確率を計算すればよく、これは多項分布($4$項分布)を用いることで計算できる。求める確率を$P(X_1=k,Y_1=k,X_2=m-k,Y_2=m-k|p,q,r,s)$とし、以下のような式となる。
$$
\begin{align}
P(X_1=k,Y_1=k, &X_2=m-k,Y_2=m-k|p,q,r,s) \\
&= \sum_{k=0}^{m} \frac{(2m)!}{k!(m-k)!k!(m-k)!} p^k q^{m-k} r^k s^{m-k} \\
&= \sum_{k=0}^{m} \frac{(2m)!}{(k!)^2((m-k)!)^2} (pr)^k (qs)^{m-k}
\end{align}
$$

問題10.2の解答例

$0$に吸収された確率を$r(a)$とすると、$10.1.3$節の破産確率と同じ考え方により下記が得られる。
$$
\begin{align}
r(a) = \alpha r(a+1) + \gamma r(a) + \beta r(a+1)
\end{align}
$$
上記を$r(a)$についてくくり、両辺を$r(a)$の係数で割る。
$$
\begin{align}
r(a) &= \beta r(a+1) + \gamma r(a) + \alpha r(a-1) \\
(1-\gamma) r(a) &= \beta r(a+1) + \alpha r(a-1) \\
r(a) &= \frac{\beta}{1-\gamma} r(a+1) + \frac{\alpha}{1-\gamma} r(a-1)
\end{align}
$$
上記において、$\alpha+\beta+\gamma=1$より、$1-\gamma=\alpha+\beta$と置き換えることができる。よって、下記のように変形できる。
$$
\begin{align}
r(a) &= \frac{\beta}{\alpha+\beta} r(a+1) + \frac{\alpha}{\alpha+\beta} r(a-1)
\end{align}
$$
上記を書籍の(10.1)式の式を見比べると、$\displaystyle p = \frac{\beta}{\alpha+\beta}$、$\displaystyle q = \frac{\alpha}{\alpha+\beta}$とすれば同様に$(10.2)$、$(10.3)$式が導出できる。

問題10.3の解答例

i)
‘普通の’ねずみにはマルコフ性が成立するので、$X_n$の推移確率を$P(X_{n+1}=k|X_n)$($k=1,2,3,4$)と定義する。問題設定より、このとき$P(X_{n+1}=k|X_n)$は下記のように表すことができる。
・正解の箱が判明するまで
$$
\begin{align}
P(X_{n+1} \neq X_n|X_n) &= \frac{1}{3} \\
P(X_{n+1}=X_n|X_n) &= 0
\end{align}
$$
・正解の箱が判明した後
$$
\begin{align}
P(X_{n+1} = X_n|X_n) = 1
\end{align}
$$

ⅱ)
・’愚かな’ねずみ
幾何分布の期待値に一致する。幾何分布の期待値は$\displaystyle \frac{1}{p}$であり、$\displaystyle p=\frac{1}{4}$なので、求める試行回数の期待値は$4$となる。

・’普通の’ねずみ
$$
\begin{align}
E[X] &= 1 \cdot \frac{1}{4} + \sum_{i=2}^{\infty} i \cdot \left(\frac{3}{4}\right) \left(\frac{2}{3}\right)^{i-2} \left(\frac{1}{3}\right) \\
&= \frac{1}{4} + \left(\frac{3}{4}\right) \left(\frac{1}{3}\right) \sum_{i=0}^{\infty} (i+2) \left(\frac{2}{3}\right)^{i} \\
&= \frac{1}{4} + \left(\frac{1}{4}\right) \sum_{i=0}^{\infty} (i+2) \left(\frac{2}{3}\right)^{i}
\end{align}
$$
ここでマクローリン展開を逆に用いることで、$\displaystyle \sum_{n=0}^{\infty} (n+2) x^n$が$\displaystyle \sum_{n=0}^{\infty} (n+2) x^n = \frac{1}{1-x}+\frac{1}{(1-x)^2}$のように変形できることを利用する。これにより下記が成立する。
$$
\begin{align}
\sum_{i=0}^{\infty} (i+2) \left(\frac{2}{3}\right)^{i} &= \frac{1}{1-2/3}+\frac{1}{(1-2/3)^2} \\
&= 3 + 3^2 \\
&= 12
\end{align}
$$
したがって、期待値$E[X]$は下記のようになる。
$$
\begin{align}
E[X] &= \frac{1}{4} + \left(\frac{1}{4}\right) \sum_{i=0}^{\infty} (i+2) \left(\frac{2}{3}\right)^{i} \\
&= \frac{1}{4} + \frac{1}{4} \cdot 12 \\
&= \frac{13}{4}
\end{align}
$$
($2$回目以降の試行を$p=1/3$の幾何分布と考えて、$E[X]=1/4+3=13/4$を導出しても良い)

・’利口な’ねずみ
$4$回以内に必ず正解を見つけることができるので、期待値の定義に基づいて計算することができる。
$$
\begin{align}
E[X] &= 1 \cdot \frac{1}{4} + 2 \cdot \left(\frac{3}{4}\right) \left(\frac{1}{3}\right) + 3 \cdot \left(\frac{3}{4}\right) \left(\frac{2}{3}\right) \left(\frac{1}{2}\right) + 4 \cdot \left(\frac{3}{4}\right) \left(\frac{2}{3}\right) \left(\frac{1}{2}\right) \\
&= \frac{1+2+3+4}{4} \\
&= \frac{10}{4} \\
&= \frac{5}{2}
\end{align}
$$

問題10.4の解答例

問題10.5の解答例

まとめ

Chapter.$10$の「確率過程の基礎」の演習について取り扱いました。特にマルコフ性は至る所で出てくるのでマルコフ連鎖などを中心に抑えておくと良いのではと思います。

https://www.amazon.co.jp/dp/4130420674

Ch.5 「適合度検定」の章末問題の解答例 〜基礎統計学Ⅲ 自然科学の統計学(東京大学出版会)〜

当記事は「基礎統計学Ⅲ 自然科学の統計学(東京大学出版会)」の読解サポートにあたってChapter.$5$の「適合度検定」の章末問題の解説について行います。
基本的には書籍の購入者向けの解答例・解説なので、まだ入手されていない方は下記より入手をご検討ください。また、解説はあくまでサイト運営者が独自に作成したものであり、書籍の公式ページではないことにご注意ください。

章末の演習問題について

問題5.1の解答例

それぞれの分類の型に対応する三項分布の係数$\displaystyle \frac{9!}{a!b!c!}$と、型を与える観測値の個数$n_{(a,b,c)}$を求め、それぞれの積の和が$3261$に一致することを示せば良い。また$\chi^2$値は$\chi_{(a,b,c)}^2$のように表記することとする。以下それぞれの分類の型に対し、計算を行う。
・$(8,1,0)$
$$
\begin{align}
\frac{9!}{8!1!0!} &= 9 \\
n_{8,1,0} &= 3 \\
\chi_{(8,1,0)} &= \frac{(8-3)^2}{3} + \frac{(1-3)^2}{3} + \frac{(0-3)^2}{3} \\
&= \frac{38}{3}
\end{align}
$$

・$(7,2,0)$
$$
\begin{align}
\frac{9!}{7!2!0!} &= \frac{9 \cdot 8}{2} \\
&= 36 \\
n_{8,1,0} &= 3! \\
&= 6 \\
\chi_{(7,2,0)} &= \frac{(7-3)^2}{3} + \frac{(2-3)^2}{3} + \frac{(0-3)^2}{3} \\
&= \frac{26}{3}
\end{align}
$$

・$(7,1,1)$
$$
\begin{align}
\frac{9!}{7!1!1!} &= \frac{9 \cdot 8}{1} \\
&= 72 \\
n_{7,1,1} &= 3 \\
\chi_{(7,1,1)} &= \frac{(7-3)^2}{3} + \frac{(1-3)^2}{3} + \frac{(1-3)^2}{3} \\
&= \frac{24}{3} \\
&= 8
\end{align}
$$

・$(6,3,0)$
$$
\begin{align}
\frac{9!}{6!3!0!} &= \frac{9 \cdot 8 \cdot 7}{3 \cdot 2} \\
&= 3 \cdot 4 \cdot 7 \\
&= 84 \\
n_{6,3,0} &= 6 \\
\chi_{(6,3,0)} &= \frac{(6-3)^2}{3} + \frac{(3-3)^2}{3} + \frac{(0-3)^2}{3} \\
&= \frac{18}{3} \\
&= 6
\end{align}
$$

・$(6,2,1)$
$$
\begin{align}
\frac{9!}{6!2!1!} &= \frac{9 \cdot 8 \cdot 7}{2} \\
&= 9 \cdot 4 \cdot 7 \\
&= 252 \\
n_{6,3,0} &= 6 \\
\chi_{(6,2,1)} &= \frac{(6-3)^2}{3} + \frac{(2-3)^2}{3} + \frac{(1-3)^2}{3} \\
&= \frac{14}{3}
\end{align}
$$

・$(5,4,0)$
$$
\begin{align}
\frac{9!}{5!4!0!} &= \frac{9 \cdot 8 \cdot 7 \cdot 6}{4 \cdot 3 \cdot 2} \\
&= 9 \cdot 2 \cdot 7 \\
&= 126 \\
n_{5,4,0} &= 6 \\
\chi_{(6,2,1)} &= \frac{(5-3)^2}{3} + \frac{(4-3)^2}{3} + \frac{(0-3)^2}{3} \\
&= \frac{14}{3}
\end{align}
$$
上記より、$\displaystyle \chi^2 \geq \frac{14}{3}$となる確率の分子は下記のように計算できる。
$$
\begin{align}
1 \cdot 3 &+ 9 \cdot 6 + 36 \cdot 6 + 72 \cdot 3 + 84 \cdot 6 \\
&+ 252 \cdot 6 + 126 \cdot 6 = 3261
\end{align}
$$
上記より、$\displaystyle \chi^2 \geq \frac{14}{3}$となる確率は、$\displaystyle \chi^2 \geq \frac{3261}{3^9}=0.166$となる。

問題5.2の解答例

$\chi^2$値は下記の計算を実行することで得ることができる。

import numpy as np

observed = np.array([60., 208., 655., 1826., 3650., 5909., 7512., 7737., 6063., 3641., 1820., 683., 188., 48.])
prob = np.array([0.00135, 0.00486, 0.01654, 0.04406, 0.09185, 0.14988, 0.19146, 0.19146, 0.14988, 0.09185, 0.04406, 0.01654, 0.00486, 0.00135])
estimate = prob*40000

print(estimate)
print((observed-estimate)**2/estimate)
print(np.sum((observed-estimate)**2/estimate))

・実行結果

> print(estimate)
[   54.    194.4   661.6  1762.4  3674.   5995.2  7658.4  7658.4  5995.2
  3674.   1762.4   661.6   194.4    54. ]
> print((observed-estimate)**2/estimate)
[ 0.66666667  0.95144033  0.06584039  2.29514299  0.15677735  1.23939819
  2.79862112  0.80669069  0.7667534   0.29640719  1.88252383  0.69220073
  0.21069959  0.66666667]
> print(np.sum((observed-estimate)**2/estimate))
13.4958291239

上記より$\chi^2 \simeq 13.5$であり、$\chi^2 < 22.36… = \chi^2_{\alpha=0.05}(13)$より帰無仮説は棄却できない。

問題5.3の解答例

$\chi^2$分布において上側確率が$100\alpha$%となるパーセント点に対応する$\chi^2$の値を$\chi^2_{\alpha}$とする。(5.13)式を元に$\chi^2$の値の計算を行う。
$$
\begin{align}
\chi^2 = \sum_{i}^{a} \sum_{j}^{b} \frac{(f_{ij}-f_{i \cdot}f_{\cdot j}/n)^2}{f_{i \cdot}f_{\cdot j}/n}
\end{align}
$$
以下、表の数字を元に上記を用いて計算する。
$$
\begin{align}
\chi^2 &= \sum_{i}^{a} \sum_{j}^{b} \frac{(f_{ij}-f_{i \cdot}f_{\cdot j}/n)^2}{f_{i \cdot}f_{\cdot j}/n} \\
&= \frac{(7142-17884 \cdot 7232/18101)^2}{17884 \cdot 7232/18101} + \frac{(3021-17884 \cdot 3081/18101)^2}{17884 \cdot 3081/18101} + \frac{(1841-17884 \cdot 1879/18101)^2}{17884 \cdot 1879/18101} \\
&+ \frac{(5880-17884 \cdot 5909/18101)^2}{17884 \cdot 5909/18101} + \frac{(90-217 \cdot 7232/18101)^2}{217 \cdot 7232/18101} + \frac{(60-217 \cdot 3081/18101)^2}{217 \cdot 3081/18101} \\
&+ \frac{(38-217 \cdot 1879/18101)^2}{217 \cdot 1879/18101} + \frac{(29-217 \cdot 5909/18101)^2}{217 \cdot 5909/18101} \\
&= 50.4733…
\end{align}
$$
上記が自由度$(2-1)(4-1)=3$の$\chi^2$分布に従うため、有意水準5%で片側検定するにあたっては$\chi^2_{\alpha=0.05}(3)=7.815$と比較すればよい。
このとき、$\chi^2=50.4733…>7.815=\chi^2_{\alpha=0.05}(3)$のため、独立を仮定した帰無仮説は棄却される。(独立性が成立しないと考える方が妥当である)

問題5.4の解答例

i)
試合数$z$の確率分布$p(z)$は$z-1$回目までに勝利チームが$3$回勝利する確率と考えることができる。ここで「勝利チームが$z-1$回目までに$3$回勝利する確率」としているので、$z$回目の分岐は生じない。(両チームの勝率が同じため分岐が生じると考えて、チームの重複を考えるという方法でも良い)
$p(z)$は下記のように計算できる。
$$
\begin{align}
p(z) &= {}_{z-1} C_{3} \left( \frac{1}{2} \right)^3 \left( 1 – \frac{1}{2} \right)^{z-1-3} \\
&= {}_{z-1} C_{3} \left( \frac{1}{2} \right)^3 \left( \frac{1}{2} \right)^{z-4} \\
&= {}_{z-1} C_{3} \left( \frac{1}{2} \right)^{z-1} \\
&= {}_{z-1} C_{3} 2^{-z+1}
\end{align}
$$

ⅱ)
$\chi^2$分布において上側確率が$100\alpha$%となるパーセント点に対応する$\chi^2$の値を$\chi^2_{\alpha}$とする。
$$
\begin{align}
\chi^2 = \sum \frac{(O-E)^2}{E}
\end{align}
$$
観測度数を$O$、理論度数を$E$とした際に、上記で得られる$\chi^2$の値を元に$\chi^2$検定を行えばよい。理論度数は「試行回数×理論確率」で計算できるので、この問題において$\chi^2$は下記のように計算できる。
$$
\begin{align}
\chi^2 &= \sum \frac{(O-E)^2}{E} \\
&= \frac{(5-42p(z=4))^2}{42p(z=4)} + \frac{(8-42p(z=5))^2}{42p(z=5)} + \frac{(15-42p(z=6))^2}{42p(z=6)} + \frac{(14-42p(z=7))^2}{42p(z=7)} \\
&= \frac{(5-42{}_{4-1} C_{3} 2^{-4+1})^2}{42{}_{4-1} C_{3} 2^{-4+1}} + \frac{(8-42{}_{5-1} C_{3} 2^{-5+1})^2}{42{}_{5-1} C_{3} 2^{-5+1}} + \frac{(15-42{}_{6-1} C_{3} 2^{-6+1})^2}{42{}_{6-1} C_{3} 2^{-6+1}} + \frac{(14-42{}_{7-1} C_{3} 2^{-7+1})^2}{42{}_{7-1} C_{3} 2^{-7+1}} \\
&= \frac{(5-42{}_{3} C_{3} 2^{-3})^2}{42{}_{3} C_{3} 2^{-3}} + \frac{(8-42{}_{4} C_{3} 2^{-4})^2}{42{}_{4} C_{3} 2^{-4}} + \frac{(15-42{}_{5} C_{3} 2^{-5})^2}{42{}_{5} C_{3} 2^{-5}} + \frac{(14-42{}_{6} C_{3} 2^{-6})^2}{42{}_{6} C_{3} 2^{-6}} \\
&= \frac{(5-42 \cdot 2^{-3})^2}{42 \cdot 2^{-3}} + \frac{(8-42 \cdot 4 \cdot 2^{-4})^2}{42 \cdot 4 \cdot 2^{-4}} + \frac{(15-42 \cdot 10 \cdot 2^{-5})^2}{42 \cdot 10 \cdot 2^{-5}} + \frac{(14-42 \cdot 20 \cdot 2^{-6})^2}{42 \cdot 20 \cdot 2^{-6}} \\
&= 0.93333…
\end{align}
$$
上記が自由度$4-1=3$の$\chi^2$分布に従うため、有意水準5%で片側検定するにあたっては$\chi^2_{\alpha=0.05}(3)=7.815$と比較すればよい。
このとき、$\chi^2=0.93333…<7.815=\chi^2_{\alpha=0.05}(3)$のため、帰無仮説は棄却されない。(得られた結果は妥当と考える方が良い)

問題5.5の解答例

i)
平均$\bar{x}$、不偏分散$s^2$はそれぞれ下記のように求めることができる。
$$
\begin{align}
\bar{x} &= \frac{1}{228}(1 \cdot 24 + 2 \cdot 16 + 3 \cdot 8 + 4 \cdot 3 + 5 \cdot 2) \\
&= 0.44736… \\
s^2 &= \frac{1}{227} \left( 175(0-\bar{x})^2 + 24(1-\bar{x})^2 + 16(2-\bar{x})^2 + 8(3-\bar{x})^2 + 3(4-\bar{x})^2 + 2(5-\bar{x})^2 \right) \\
&= 0.93554…
\end{align}
$$

問題5.6の解答例

下記を実行することで$\theta$の推定を行うことができる。

import numpy as np

K = 100.
y = np.array([[0., 15., 15., 15., 13., 16.], [11., 0., 14., 15., 14., 17.], [11., 12., 0., 14., 17., 13.], [11., 11., 12., 0., 13., 19], [13., 12., 9., 13., 0., 17.], [10., 9., 13., 7., 9., 0.]])
theta = np.repeat(100., 6)/6.

for epoch in range(10):
    for i in range(6):
        r_theta = 0
        for j in range(6):
            if i != j:
                r_theta += (y[i,j]+y[j,i])/(theta[i]+theta[j])
        theta[i] = np.sum(y[i,:])/r_theta
    theta = K*theta/np.sum(theta)

print(theta)

・実行結果

[ 20.63301132  19.08005757  17.19619821  16.75537645  15.90772652
  10.42762994]

また、$\chi^2$検定は上記で計算を行なったthetaを用いて、下記を実行することで行うことができる。

from scipy import stats

chi2 = 0
expected_y = np.zeros([6,6])
for i in range(6):
    for j in range(6):
        if i != j:
            expected_y[i,j] = theta[i]*(y[i,j]+y[j,i])/(theta[i]+theta[j])
            chi2 += (y[i,j]-expected_y[i,j])**2 / expected_y[i,j]

print("・expected_y")
print(expected_y)
print("・chi^2 test of goodness of fit")
if chi2 > stats.chi2.ppf(1.-0.05,10):
    print("chi^2: {:.2f}, P_value: {:.2f}, reject H_0 and expected_y is not good.".format(chi2,stats.chi2.cdf(chi2,10)))
else:
    print("chi^2: {:.2f}, P_value: {:.2f}, accept H_0 and expected_y seems to be good.".format(chi2,stats.chi2.cdf(chi2,10)))

・実行結果

・expected_y
[[  0.          13.50835655  14.18106011  14.34825962  14.68110186
   17.27132064]
 [ 12.49164345   0.          13.67510197  13.84332325  14.17870579
   16.81194085]
 [ 11.81893989  12.32489803   0.          13.1687899   13.50598629
   16.18534372]
 [ 11.65174038  12.15667675  12.8312101    0.          13.33736688
   16.02618127]
 [ 11.31889814  11.82129421  12.49401371  12.66263312   0.          15.70515631]
 [  8.72867936   9.18805915   9.81465628   9.97381873  10.29484369   0.        ]]
・chi^2 test of goodness of fit
chi^2: 6.84, P_value: 0.26, accept H_0 and expected_y seems to be good.

問題5.7の解答例

$\chi^2$分布において上側確率が$100\alpha$%となるパーセント点に対応する$\chi^2$の値を$\chi^2_{\alpha}$とする。
一様分布を想定した際の$10^i$桁までに対応する$\chi^2$適合度統計量を$\chi_i^2$とおき、$\chi_4^2$から$\chi_6^2$までを計算する。($\chi_7^2$〜$\chi_9^2$の値は書籍に記載があり、途中式がわかれば十分と思われるので、$\chi_7^2$〜$\chi_9^2$は取り扱わないものとする。)
$$
\begin{align}
\chi_4^2 &= \frac{(968-1000)^2}{1000} + \frac{(1026-1000)^2}{1000} + \frac{(1021-1000)^2}{1000} + \frac{(974-1000)^2}{1000} + \frac{(1012-1000)^2}{1000} \\
&+ \frac{(1046-1000)^2}{1000} + \frac{(1021-1000)^2}{1000} + \frac{(970-1000)^2}{1000} + \frac{(948-1000)^2}{1000} + \frac{(1014-1000)^2}{1000} \\
&= 9.318 \\
\chi_5^2 &= \frac{(9999-10000)^2}{10000} + \frac{(10137-10000)^2}{10000} + \frac{(9908-10000)^2}{10000} + \frac{(10025-10000)^2}{10000} + \frac{(9971-10000)^2}{10000} \\
&+ \frac{(10026-10000)^2}{10000} + \frac{(10029-10000)^2}{10000} + \frac{(10025-10000)^2}{10000} + \frac{(9978-10000)^2}{10000} + \frac{(9902-10000)^2}{10000} \\
&= 4.093 \\
\chi_6^2 &= \frac{(99959-100000)^2}{10000} + \frac{(99758-100000)^2}{10000} + \frac{(100026-100000)^2}{10000} + \frac{(100229-100000)^2}{10000} + \frac{(100230-100000)^2}{10000} \\
&+ \frac{(99548-100000)^2}{10000} + \frac{(100359-100000)^2}{10000} + \frac{(99800-100000)^2}{10000} + \frac{(99985-100000)^2}{10000} + \frac{(100106-100000)^2}{10000} \\
&= 5.50908
\end{align}
$$
上記はそれぞれ自由度$10-1=9$の$\chi^2$分布に従うため、有意水準5%で片側検定するにあたっては$\chi^2_{\alpha=0.05}(9)=16.919$と比較すればよい。
$\chi_4^2<\chi^2_{\alpha=0.05}(9)$、$\chi_5^2<\chi^2_{\alpha=0.05}(9)$、$\chi_6^2<\chi^2_{\alpha=0.05}(9)$より、等確率(一様分布)で分布すると下帰無仮説は棄却されない。(一様分布にしたがっていると考える方が妥当である)
また、書籍より$\chi_7^2$〜$\chi_9^2$についても同様であることが確認できる。

まとめ

Chapter.$5$の「適合度検定」の演習問題について確認を行いました。様々な問題のパターンはある一方で、基本的には$\displaystyle \chi^2 = \sum \frac{(O-E)^2}{E}$を用いて$\chi^2$検定を行うだけではあるので、解法の整理はしやすいと思います。

https://www.amazon.co.jp/dp/4130420674

逆関数法(inverse transformation method) -確率分布に従う乱数生成-

確率モデルに基づいたシミュレーションを行う際に、確率モデルに現れる確率分布に従う乱数を生成することが必要になります。逆関数法(inverse transformation method)を使うことで、一様乱数から任意の確率分布に従う乱数を生成することができます。
ここでは、この逆関数法の解説と乱数生成の例を紹介します。

逆関数法

発生させたい乱数を$X$、$X$の密度関数を$f(x)$とする。また、$f(x)$の累積分布関数を$F(x)$として、$F(x)$は連続であるとする。$F(x)$は密度関数の定義から、範囲は$[0, 1]$となる。

分布関数$F(x)$の逆関数$F^{-1}(u)$が求められる場合に以下の手順で乱数$X$を生成する方法を逆関数法(inverse transformation method)と呼ぶ。

  1. 一様乱数$u$を生成($u \sim \mathrm{U}(0, 1)$)
  2. $x = F^{-1}(u)$として乱数$x$を得る

逆関数法による乱数生成については以下の図をイメージしてもらえれば容易に理解できます。

逆関数法の証明

逆関数による変数$F^{-1}(U)=X$が、累積分布関数が$F(x)$の確率密度関数に従うことを示します。

$X$の分布関数は$P(X \leq x)$であり、$X=F^{-1}(U)$であるため以下の等式が成り立ちます。

$$
P(X \leq x) = P(F^{-1}(U) \leq x)
$$

関数$F(\cdot)$を戻すと

$$
P(F^{-1}(U) \leq x) = P(U \leq F(x))
$$

となります。ここで、Uは一様分布に従うとすると、$P(U \leq u) = u$となります。この関係を利用することで、

$$
P(U \leq F(x)) = F(x)
$$

となります。
よって、$X$の累積分布関数は$F(x)$となることがわかりました。

乱数生成の例

逆関数法を利用して実際に乱数を生成してみます。

指数分布

初めに、単純な例として、指数分布に従う乱数生成を試してみます。

逆関数の導出

指数分布は以下の式で定義されています。

$$
f(x) = \lambda \exp(-\lambda x)
$$

指数分布の累積分布関数は範囲xまで積分することで導出できます。

$$
\begin{align}
F(x) &= \int^x_0 \lambda \exp(-\lambda x) dx \\
&= \left[ \lambda \left( -\frac{1}{\lambda} \right) \exp(-\lambda x) \right]^x_0 \\
&= 1 – \exp(-\lambda x)
\end{align}
$$

逆関数$F^{-1}(U)$は以下の通りです。

$$
\begin{align}
U &= 1 – \exp(-\lambda x) \\
\exp(-\lambda x) &= 1 – U \\
x &= – \frac{1}{\lambda} \log(1-U)
\end{align}
$$

シミュレーション

Pythonを利用したシミュレーション結果を添付します。

from scipy import stats

mu = 0.5
ran = stats.uniform.rvs(size=10000)
sample_exp_f = -1./mu * np.log( 1.0 - ran )

fig = plt.figure(figsize=(6,3))
ax = fig.subplots(1,1)
bins = np.linspace(0, 17, 50)
_ = ax.hist(sample_exp_f, bins=bins, density=True)

この結果は以下のようになります。これは、上記コードの通り、生成した乱数のヒストグラムです。つまり指数分布の密度関数を近似しています。

切断指数分布

指数分布と関連してもう少し複雑な例として、切断指数分布に従う乱数を逆関数法で生成してみます。

切断指数分布の確率密度関数

指数分布の値域は$[0, \infty)$ですが、切断指数分布は$[0, T]$であり、指数分布がTまでで切断されたものとなっています。関数の形としては指数分布と同様ですが、切断されているために正規化定数が異なります。密度関数の定義として積分して1となることは変わらないですので。

そこで初めに、正規化定数を導出して切断指数分布の密度関数を確認します。

$$
\begin{align}
\int^T_0 \exp(-\lambda x)dx &= \left[ -\frac{1}{\lambda} \exp(-\lambda x) \right]^T_0 \\
&= \frac{1 – \exp(-\lambda T)}{\lambda}
\end{align}
$$

よって確率密度関数$f(x)$は以下のようになります。

$$
f(x) = \frac{\lambda}{1 – \exp(-\lambda T)} \exp(-\lambda x)
$$

逆関数の導出

指数分布の場合と同様にして、累積分布関数を導出して、そこから逆関数を導出します。

累積分布関数は以下の通りです。

$$
\begin{align}
F(x) &= \int^x_0 \frac{\lambda}{1 – \exp(-\lambda T)} \exp(-\lambda x) dx \\
&= \frac{\lambda}{1 – \exp(-\lambda T)} \left\{ 1 – \exp(-\lambda x) \right\}
\end{align}
$$

逆関数は以下の通りとなります。

$$
\begin{align}
U &= \frac{\lambda}{1 – \exp(-\lambda T)} \left\{ 1 – \exp(-\lambda x) \right\} \\
x &= -\frac{1}{\lambda} \log\left\{ 1 – \left(1 – \exp(-\lambda T)\right)U \right\}
\end{align}
$$

シミュレーション

Pythonを利用したシミュレーション結果を示します。

from scipy import stats

T = 3
mu = 0.5
ran = stats.uniform.rvs(size=10000)
samples_t_exp = -1.0/mu * np.log( 1.0 - ran*(1.-np.exp(-1*mu*(T))) )

fig = plt.figure(figsize=(6,3))
ax = fig.subplots(1,1)
bins = np.linspace(0, 17, 50)
_ = ax.hist(samples_t_exp, bins=bins, density=True)

この結果は以下のようになります。

参考資料

  • 矢島ら, 自然科学の統計学, 1992, 東京大学出版会