ねこすたっと

ねこの気持ちと統計について悩む筆者の備忘録的ページ。

高校生のためのデータ分析入門 (25):P値はどうやって計算するの?

数学が苦手なうちのJKに、将来必要となるかもしれないデータ分析への抵抗感をなくしてもらう目的で記事を書くことにしました。

前回:高校生のためのデータ分析入門 (24):離散型アウトカムの回帰モデル(後編) - ねこすたっと

おさらい:P値とは

以前、統計的仮説検定について説明しましたが、覚えてますか?自信がなければ、下の記事を復習してください。

necostat.hatenablog.jp

P値とは「帰無仮説が正しいという仮定のもとで、手元のデータ、あるいはそれよりも極端なデータが発生する確率」でしたね。P値が事前に決めた水準(例:5%)より小さければ、帰無仮説を捨てて対立仮説を採用します。P値が小さくなければ、判定を保留にします。

比較したい項目や測定条件によって、どのような検定手法を用いてP値を計算するかは異なります。 例えば、ある量的変数の平均値が異なるかどうかを知りたい場合は、

  • その量的変数は正規分布しているとみなすことができますか?
  • 比較したいグループの数はいくつですか?
  • グループごとに変数の分散は同じですか?

のようなチェックリストがあって、それによって用いるべき検定手法が決まります(フローチャートを紹介している資料も多くあります)。

個々の検定手法を見る前に、どうやってP値を計算するのか、概要を説明します。

1. 直接計算する方法

例えば、

白球と赤球が入った袋があります。「球を1個取り出して、色を記録し、球を戻す」ということを5回行ったところ、白球が4回、赤球が1回でした。白球と赤球がちょうど半分ずつ入っているとしたとき、この結果が得られる確率を求めなさい。

みたいな問題、ありそうですよね〜。「白球と赤球がちょうど半分ずつ」であれば、どちらの色も出現確率は1/2なので、5回のうちどこで白球が出現するかを考えれば、

 
\begin{aligned}
_5C_4 \left( \frac{1}{2} \right)^4 \left( \frac{1}{2} \right) &= \frac{5}{32}
\end{aligned}

と計算できますね。 さらに極端な例、つまり、5個全て白球である確率も計算できるはずです。

 
\begin{aligned}
_5C_5 \left( \frac{1}{2} \right)^5 &= \frac{1}{32}
\end{aligned}

こうすれば、「白球と赤球がちょうど半分ずつ」であると仮定したときに、「手元のデータ(白球4回、赤球1回)、もしくはもっと極端なデータ(白球5回)が観測される確率」を求めることができます(答え:3/16≒0.19)。そう、これってP値そのものですよね。

このように、与えられた仮定のもとで直接確率を計算する検定方法を、総じて正確検定(exact test)と呼んだりします。「フィッシャー正確検定」が代表例です。サンプル数が少ないうちはいいんですが、サンプル数が多くなると手計算でできなくなることはもちろんのこと、コンピュータを使っても時間がかかりすぎてしまうことがあります。 そんなときは、次に紹介する方法を用いて計算します。

2. 統計量が従う確率分布から計算する方法

統計量(statistics)とは、「決められた計算方法を用いて標本(サンプル)データから計算された数値」です*1のことです。

例えば、「標本平均」は「サンプルデータを全て足して、サンプル数で割る」という決められた方法で計算された値なので、統計量の1つです。データを要約して簡潔に記述することが目的の統計量なので、要約統計量(summary statistics)と言います。

統計量は、母集団の特性を推測するためにも用いられます。例えば、

 
\begin{aligned}
\frac{\sum_i^n (x_i - \bar{x})^2}{n-1}
\end{aligned}

は母集団の分散を推測するために用いられる統計量です。このような統計量を、推測統計量(inferential statistics)と言います。先程の標本平均は、要約統計量であると同時に推測統計量でもある、というわけです。

ちょっと寄り道しましたが、統計的検定の多くは統計量を用いてP値を求めます。例えば、データの分布が期待される分布(あるいは、理論的な分布)と乖離しているかどうかを調べる際に用いられる「カイ2乗検定」が、その代表です。

例えば、サイコロが公平であれば、600回振れば各目が100回ずつ出現することになりますよね(理論値)。もし、観察された目の回数が下の表のような結果だったとき、このサイコロは公平なものだと言えるでしょうか?

「公平かどうか」を統計的に判断する方法が、カイ2乗検定です。この検定では、まず、下の数式で表されるカイ2乗値 X2 *2 を計算します。ここで、Oは観測された回数、Eは理論値(=100回)、mはカテゴリー数(=6)です。

 
\begin{aligned}
X^2 &= \sum_i^m \frac{(O_i - E_i)^2}{E_i}
\end{aligned}

実際にさっきの結果を使って計算すると、

 
\begin{aligned}
X^2 &= 1 + 0 + 4 + 1 + 0 + 4 \\
&= 10
\end{aligned}

となります。理論値からの乖離が大きくなるほど、X2も大きくなります。 そして、X2も「標本から決まった方法で求められた値」なので、統計量ですね。統計的検定に使われる統計量なので、検定統計量(test statistics)といいます。

この実験を繰り返し行えば、その都度サイコロの目の出現の仕方は変わり、そこから計算されるX2も変わります。「サイコロの目は全て同じ確率で出現する」という仮説のもとでは、出た目の回数だけでなく統計量X2も確率変数ということです。 求めたX2は「カイ2乗分布*3」に従うことが分かっていますので、カイ2乗分布を使ってX2が求めた値よりも大きい値を取る確率を求めればP値が計算できます。

ここではP=0.075と計算されました。有意水準を5%とすると、公平なサイコロの出る目の分布と観測された分布は異なるとは言えない、という結論になります。

3. 元の標本から新しい標本を作成する方法

「ブートストラップ法を用いた仮説検定」と「並べ替え検定」が代表です。

ブートストラップ法を用いた仮説検定

ブートストラップ法(bootstrap method)とは、

  1. 母集団からランダムに抽出された標本(元のサンプル)を、
  2. 今度は母集団と見立てて、
  3. 別の標本(ブートストラップサンプル)を大量に作成して用いる方法

です。ブートストラップサンプルの標本数は元のサンプルと同じで、元のデータから重複を許して抽出します。つまり、同じデータが2回以上抽出されてもOKです。

例えば、A班とB班でテストの点数が下のようだったとします。

  • A班(6人):64, 68, 71, 71, 86, 87(平均 74.5)
  • B班(5人):67, 73, 76, 85, 92(平均 78.6)

もし、2つのグループの元となった母集団に差がないとしたら、平均値の差が4.1点以上離れる可能性(=P値)はどれくらいでしょうか?

「2つのグループの元となった母集団に差がない」ということは、「2つのグループが同じ母集団から選ばれたサンプルである」ということですから、2つの標本を合わせた集団を帰無仮説のもとでの擬似母集団とみなしましょう。ここからA班6人、B班5人をランダムに選びます。一度選ばれた人がもう1回選ばれてもOKですし、逆に選ばれない人がいてもOKです。極端に偏りがあるものや、元のサンプルと全く同じになっても構いません。選ばれたブートストラップサンプルごとに、平均値の差を計算する、ということを1000回*4繰り返します。

下は得られた1000個の値のヒストグラムです(赤線は観察された差 = |4.1|)。

これは、帰無仮説のもとで観察される平均値の差の分布とみなすことができます。1000個の値の中で、実際に観察された平均の差よりも差が大きかったものは748個あったので、P=748/1000=0.748と計算されます。B班の方が平均点が高かったですが、統計的に有意な差と言えるほどではなかったということです。

「手元のサンプルを母集団のみなして、そこから複製するなんてズルくない?」と思うかもしれませんが、元のサンプルで差が小さければ、大量に複製したところで差が小さいブートストラップサンプルが大半を占めることには変わりありません。 また、出来上がる1000個のブートストラップサンプルは実行するたびに変わります。もう1回やったらP=0.73かもしれません*5

応用範囲は広い方法ですが、実行するには統計ソフトが必要です。

並べ替え検定

並べ替え検定(permutation test)はもっとシンプルです。こちらは復元抽出を繰り返すのではなく、「差がない」と仮定してひとつにまとめた11人を、A班6人とB班5人に分ける全ての組み合わせを考えます。並べ替える*6だけなので、同じ人が2回含まれたり、含まれない人が出たりすることはありません

それぞれの組み合わせごとに、A班とB班の平均の差を計算します。 さっきの例では _{11}C_6=462 通りの組み合わせがあるので、この462通りの中で実際に観察された平均差よりも大きい差が観察された割合がP値です。

ブートストラップ法も並べ替え検定も、元の標本から新しい擬似標本を作っているので、再サンプリング法(resampling method)と呼ばれます。

おわりに

  • 統計の基本的なことを説明したら、色々な検定方法が紹介されて、その後で回帰分析に入る、という流れが多いですが、ここでは検定は後回しにしました。
  • 単純なグループ間比較だけでは何とも言えない状況が多いこと、そもそも事前に明確な仮説がないのに何でもかんでも検定しちゃう人が多いこと、など理由は色々ありますが、1番の理由はややこしい話が続くことでデータ分析に抵抗感が芽生えることを心配したからです。 * 次回:高校生のためのデータ分析入門 (26):カテゴリー変数を比較するとき、基本はカイ2乗検定! - ねこすたっと

*1:Wikipedia - 統計量では、「目的に応じた統計学的なアルゴリズム(関数)を適用し得た、データの特徴を要約した数値」と説明されています。

*2:エックスじゃなくてカイと呼んでください。

*3:正確には自由度df=6-1=5のカイ2乗分布。

*4:2000回でも5000回でもいいが、少なすぎるのはダメ

*5:コンピュータが使う乱数を毎回同じにセットすることで再現性を確保できる。

*6:この例では組み合わせを変えるだけでいいので、順序は関係ありません