サイコロのように確率変数がとびとびの値をとる確率分布を「離散型」といいます。これに対し、確率変数が連続した値をとる確率分布を「連続型」といいます。簡単な例として「一様分布 (uniform distribution)」を考えてみましょう。たとえば、Python のモジュール random のメソッド random() は、区間 [0, 1) の実数の一様乱数を生成します。実数の一様乱数とは、ある範囲の実数が等確率で現れる乱数のことです。
実数の一様乱数の場合、区間 [0, 1) を 10 等分すると、各々の小区間で乱数が現れる確率は 1 / 10 と考えることができます。100 等分すれば、確率は 1 / 100 になります。分ける区間を小さくすると、その確率は小さくなっていきます。それでは、X = 0.5 の確率はどうなるのでしょうか。実をいうと、この値は 0 になってしまいます。区間 [0, 1) 内の実数は無限個あるので、離散型確率分布と同じように確率を求めることはできないのです。
このため、連続型確率分布の場合は「確率密度」という考え方を用います。一様乱数は区間 [0, 1) で密度が一定の確率分布と考えるわけです。この場合、確率密度は 1 になります。区間 [0, 2) の一様乱数であれば、確率密度は 1/2 になります。そして、実際に確率を求めるときは、(区間の大きさ * 確率密度) で求めるわけです。これを数式で表すと、次のようになります。
関数 \(f(x)\) を「確率密度関数」または「密度関数」といいます。一般に \(f(x)\) には次の性質があります。
そして、\(X \leqq x\) の確率を求める関数 \(F(x)\) を「確率分布関数」または「分布関数」といいます。
一様乱数の場合、\(f(x)\) を積分して \(F(x)\) を求めると次のようになります。
一般に、密度関数は初等関数で表すことができても、それを積分した分布関数を初等関数で表すことは難しい場合があります。その場合は、数値積分で値を求めることになります。このため、連続型は密度関数で確率分布を表すことが多いようです。
連続型の確率分布の中で、最も重要なものが「正規分布」です。次の式を見てください。
これを平均 \(\mu\)、分散 \(\sigma^2\) の正規分布といい、\(N(\mu, \sigma^2)\) と略記します。特に、\(N(0, 1)\) を「標準正規分布」といいます。正規分布は次の図に示すような釣鐘状の曲線 (ベル・カープ) になります。
青線が N(0, 1)、赤線が N(1, 2)、黄線が N(-2. 0.5) です。正規分布は、平均値のデータが一番多く、分散の値が小さいほど平均値にデータが集まるので、ベル・カーブの頂点が高くなります。分散の値が大きくなると、ベル・カーブの頂点は低くなり裾野が広がります。ようするに、分散の値だけで正規分布の形が決まるわけです。
また、正規分布は次式のように変数変換を行うと、標準の正規分布 \(N(0, 1)\) になります。
このように、正規分布 \(N(\mu, \sigma^2)\) は標準正規分布 \(N(0, 1)\) に変換できるので、あらかじめ標準正規分布の確率分布を求めておくと便利です。これを「標準正規分布表」といい、この表から標準正規分布の確率を求めることができます。Google などで検索すれば、標準正規分布表を公開している Web サイトが見つかると思います。
正規分布の場合、\(-\sigma \lt x \lt \sigma\) の確率が 68.26 % で、\(-2\sigma \lt x \lt 2\sigma\) の確率が 95.44 % になります。したがって、下図のように標準正規分布では \(-1 \lt z \lt 1\) の確率が 68.26 % で、\(-2 \lt z \lt 2\) の確率が 95.44 % になります。
統計学では調査の対象となる大きな集団のことを「母集団 (population)」といいます。そこからいくつかデータを選ぶことを「サンプリング (sampling)」といい、選んだデータの集合を「標本 (sample)」といいます。
たとえば、日本人のある年齢の平均身長を求めることを考えてみましょう。該当する人全員の身長を計測すれば平均身長を求めることができますね。これを「全数調査」といいます。対象となる人が多くなると、全数調査は非常に困難な作業になってしまいます。そこで、一部の人を選んで身長を計測することにします。これを「標本調査」といいます。
標本調査の場合、対象となる人を偏りなく選ぶ必要があります。この方法を「無作為抽出 (random sampling)」といい、選んだデータを「無作為標本 (random sample)」といいます。そして、標本から得られた平均身長から母集団の平均身長を推定するわけです。
母集団の大きさを \(N\) とし、その値を \(\theta_1, \theta_1, \ldots, \theta_N\) とします。すると、母集団の平均値 \(\mu\)、総計値 \(\tau\)、分散 \(\sigma^2\) は次のようになります。
ここで、この母集団から大きさ \(n\) の標本を無作為抽出します。標本の中のデータの個数を「標本の大きさ」といいます。データを確率変数 \(X_1, X_2, \cdots, X_n\) で表すと、標本の平均値 \(m\) は次のようになります。
\(m\) を標本平均といい、\(\overline X\) のように \(X\) に上線を付けて表記する場合もあります。このページでは \(m\) と表記することにします。
標本平均 \(m\) の値は、母集団から無作為抽出されるデータによって変化します。\(N\) 個の中から \(n\) 個を取り出す組み合わせは \({}_N \mathrm{C}_n\) 通りあるので、\(m\) の値も \({}_N \mathrm{C}_n\) 通り考えることができます。その中には母集団の平均値 \(\mu\) に近いものもあるでしょうし、\(\mu\) との差が大きくなるものもあるでしょう。\(n\) がある程度大きい (\(n \geqq 30\) 程度) 場合、母集団の分布がどのようなものであっても、標本平均 \(m\) の分布は正規分布で近似することができます。これを「中心極限定理」といいます。
母集団の大きさ N が十分に大きい場合、標本平均 \(m\) の平均値 \(E(m)\) と分散 \(V(m)\) は次のようになります。
\(E(m)\) は母集団の平均値 \(\mu\) と一致します。\(V(m)\) は母集団の分散 \(\sigma^2\) とは異なり \(\frac{\sigma^2}{n} \) になります。そして、\(V(m)\) の平方根 \(\frac{\sigma}{\sqrt n}\) を「標準誤差 (Standard Error of Mean: SEM)」といいます。標準誤差は主に平均値に対して使われる場合が多いので、略して SE と呼ばれています。
標準誤差は標準偏差と同じようにばらつきの大きさを表す値ですが、母集団の平均値 \(\mu\) と標本平均 \(m\) との誤差を表していると考えることもできます。正規分布の場合、\(m\) は \(\mu \pm \frac{2\sigma}{\sqrt n}\) の範囲に 95.44 % が入ります。つまり、n を大きくするほど、標準誤差は小さくなり、標本平均の値は真の平均値 \(\mu\) に近づくわけです。
したがって、標本の大きさをある程度大きくとれば、その標本平均を母集団の平均値として扱ってもよいわけです。それでは分散の場合はどうなるのでしょうか。標本の分散は次のように求めることができます。
これは分散の定義そのままですね。標本から母集団の分散を推測する場合は、次の式を用います。
\(U^2\) のことを「不偏分散」といいます。標本平均 m の平均値 E(m) は母集団の平均値 \(\mu\) と一致します。このように、ある統計量の平均値が母集団のそれと一致することを「不偏統計量」といいます。不偏分散 \(U^2\) の平均値は母集団の分散 \(\sigma^2\) と一致します。標本分散では一致しないため、母集団の分散は不偏分散で推定します。
一般的には、サンプリングを 1 回行って、その結果から母集団の値を推定します。このとき、一つの値で母集団の値を推定することを「点推定」といい、値をある範囲 [low, high] で推定することを「区間推定」といいます。
標本の大きさ \(n\) が大きい場合、標本平均 \(m\) の分布は正規分布に従います。母集団の分散 \(\sigma^2\) が既知の場合、標準誤差 SE の値は \(\frac{\sigma}{\sqrt n}\) になります。したがって、母集団の平均値 \(\mu\) が \(m \pm SE\) の範囲内に入る確率は 68.26 % で、\(m \pm (2 \times SE)\) の範囲内に入る確率は 95.44 % と考えることができます。
たとえば、母集団の標準偏差が 6.0 であることが分かっていて、標本の大きさ 30 標本平均 148.8 の場合、母集団の平均値は、
上式の範囲に 95.44 % の確率で入っています。この範囲を「信頼区間」といいます。ここで、あらかじめ小さな確率 \(\alpha\) を定めておきます。そして、標本平均 \(m\) が入る区間の確率を \(1 - \alpha\) で表すことにすると、\(100 \times (1 - \alpha)\) % を「信頼係数」または「信頼度」といい、信頼度 \(100 \times (1 - \alpha)\) % の信頼区間を求めることが「区間推定」になります。なお、標本平均値 148.8 を母集団の平均値と推定する方法が「点推定」です。
一般に、\(\alpha\) の値には 0.05 または 0.01 が選ばれます。標準正規分布の場合、正規分布表から 95 % の区間は (-1.96, 1.96) で、99 % の区間は (-2.58, 2.58) になります。なお、標準正規分布表は 0 から Z までの確率が掲載されています。95 % の信頼区間は、確率が 0.45 となる Z を求めることになり、その結果は 1.96 になります。
正規分布 \(N(\mu, \sigma^2)\) は変数変換により標準正規分布 N(0, 1) に変換できるので、母集団の標準偏差が \(\sigma\) で、標本の大きさ n 標本平均 m における信頼度 95 % と 99 % の信頼区間は次のようになります。
\(\sigma = 6.0, m = 148.8\), 標本の大きさ = 30 とすると、区間推定は次のようになります。
95 % => [146.65, 150.95] 99 % => [145.97, 151.62]
母集団の分散 \(\sigma^2\) が未知の場合は、標本の不偏分散 \(U^2\) で代用します。たとえば、標本平均 m = 148.8, 不偏分散 23.95, 標本の大きさ 30 の場合、信頼度 95 % の信頼区間は次のようになります。
\(n\) が大きくなるほど信頼区間の幅は狭くなり、母集団の平均値 \(\mu\) に近づくことになります。
ところで、母集団の分布が正規分布で近似できる場合は、標本の大きさが少なくても「t 分布 (t distribution)」を使って区間推定を行うことができます。興味のある方は拙作のページ Algorithms with Python 番外編 : 統計学の基礎知識 をお読みください。
統計学で言う「検定」とは、ある仮説にもとづいて実験または調査を行い、その結果からその仮説が正しいか否かを確率的に判定することです。「仮説検定」や「統計学的仮説検定」という場合もあります。文章で説明してもわかりにくいので、簡単な例を示しましょう。
ある工場で直径 30 mm のガラス玉を製造していて、その品質を検査することを考えます。今までの経験上、このガラス玉の直径は平均 30 mm で標準偏差は 0.2 mm であることがわかっています。ある時間帯に作られたガラス玉の中から 30 個無作為抽出したところ、次に示すデータが得られました。なお、これらのデータは標準偏差も含めて仮想的なもので、現実のデータではありません。
リスト : ガラス玉の直径 data = [ 30.04, 30.01, 29.68, 29.84, 30.19, 29.93, 29.98, 29.95, 30.06, 30.27, 30.14, 29.89, 29.93, 29.87, 30.10, 30.10, 30.04, 29.99, 29.79, 29.89, 30.02, 29.98, 29.70, 29.71, 29.88, 30.12, 30.30, 29.70, 29.93, 29.81 ]
この標本平均を求めると 29.96 mm になりました。この時間帯に作られたガラス玉の直径は平均 30 mm を満たしているか検定してみましょう。この場合、仮説は「ガラス球の直径は平均 30 mm である」とします。
標本の大きさ \(n\) がある程度大きい場合、標本平均 \(m\) は正規分布に近似することができるので、その値は \(30 \pm 1.96 \sqrt {\frac{0.2 \times 0.2}{30}}\) = (29.928, 30.072) の範囲に 95 % の確率で入いります。逆にいえば、\(m\) が 29.928 よりも小さくなる、または 30.072 よりも大きくなる確率は 5 % しかありません。
もしも、\(m \lt 29.928\) または \(30.072 \gt m\) であるならば、5 % の確率でしか起こらない事象が起きたことになります。この仮説のもとでこの事象が起こるのは不自然なことと考えられるので、前提となる仮説に誤りがあるのではないかと疑います。つまり、ガラス玉の直径は平均 30 mm ではなく、この時間帯に作られたガラス玉は基準を満たしていないと判定するわけです。
統計学では、前提となる仮説を「帰無仮説」と呼び、普通は \(H_{0}\) と記述します。また、帰無仮説に対立する仮説を「対立仮説」と呼び、\(H_{1}\) と記述します。帰無仮説を否定することを「棄却する」といい、帰無仮説を棄却したときに「検定の結果は有意である」といいます。
基準となる小さな確率 \(\alpha\) を「有意水準」または「危険率」といいます。また、帰無仮説を棄却する範囲を「危険率 \(100 \alpha \%\) の棄却域」といいます。一般に、有意水準 \(\alpha\) には 0.05 または 0.01 が用いられます。危険率 5 % の棄却域は下図のようになります。
上図のように棄却域が左右の両側にある場合を「両側検定」といいます。検定する問題によって、左右どちらか一方に棄却域を設定する場合があります。これを「片側検定」といいます。片側検定の場合、危険率 5 % の棄却域は下図のようになります。
棄却域 (赤色) の面積は 5 % (1.65 < x)
棄却域 (赤色) の面積は 5 % (x < -1.65)
今回の例の場合、求めた平均値 29.96 mm は両側の棄却域に入らないので、帰無仮説は棄却されません。この場合、95 % の確率で起こるありふれた事象が起きたので、この時間帯のガラス玉の直径は平均 30 mm とみなしてもよいだろう、と判定します。
ここで、仮説検定はあくまでも確率的に判断を下しているだけであり、絶対的なものではないということに注意してください。一般に、帰無仮説 \(H_{0}\) が正しいのにそれを棄却する誤りを「第 1 種の誤り」といいます。第1種の誤りを犯す確率が危険率になります。また、\(H_{0}\) が誤りなのにこれを容認する誤りを「第 2 種の誤り」といいます。帰無仮説を棄却するにしても容認するにしても、その判定が 100 % 正しいというわけではないのです。
仮説検定の手順をまとめると次のようになります。
仮説検定の場合、棄却することを前提に帰無仮説を立てることが多くあります。たとえば、2 つの母集団の平均値 \(\mu_{1}\) と \(\mu_{2}\) に差があることを示したい場合、帰無仮説として "\(\mu_{1} = \mu_{2}\)" を立てます。この場合、対立仮説は "\(\mu_{1} \ne \mu_{2}\)" となります。そして、検定を行って帰無仮説を棄却することで、平均値に差があることを示すわけです。
仮説検定は、用いる統計量によって様々な方法があります。特に、カイ 2 乗分布 (\(\chi^{2}\) 分布) を利用したカイ 2 乗検定は、適合度の検定などによく用いられる方法です。興味のある方は拙作のページ Algorithms with Python 番外編 : 統計学の基礎知識 [2] をお読みくださいませ。