準1級-38 応用統計の手法
シミュレーションと計算手法
- 乱数
- 採択・棄却法
- モンテカルロ法
- ジャックナイフ法
- ブートストラップ法
はじめに
「公式が分からないなら、実際に何回もやってみればいいのでは?」
サイコロを3個振って、目の合計が15以上になる確率はいくつでしょうか? 数え上げれば、216通りのうち20通りなので、約0.093です。では、サイコロが30個で、条件がもっと複雑ならどうでしょう。数え上げは、すぐに手に負えなくなります。
ここで、コンピュータに1万回サイコロを振ってもらい、起きた割合を数える手があります。3個の場合なら、結果は0.09前後になります。理屈はとても素朴ですが、これが現代の統計学の計算を支えています。
実は、前回の記事のMCMCも、この発想の上に立っていました。分布の性質が式で分からなくても、その分布に従う数をたくさん作れば調べられるのです。
そこで登場するのが、今回の主役 モンテカルロ法 と ブートストラップ法 です。前回の記事では、事後分布から乱数を引くMCMCを学びました。今回の記事では、乱数の作り方、採択・棄却法、モンテカルロ法、そして推定量の精度を手元のデータだけで見積もるジャックナイフ法とブートストラップ法について解説します。
乱数:コンピュータでサイコロを振る
はじめに、乱数の作り方について解説します。
乱数 とは、でたらめに並んでいて、次の値を予測できない数の列のことです。ただし、コンピュータは決まった計算しかできません。そこで、計算で作るのに乱数のように見える 疑似乱数 を使います。
最も単純な作り方は、線形合同法 です。
は、 で割った余りをとるという意味です。 が0以上1未満の一様乱数になります。最初の値 を シード(種)と呼びます。シードが同じなら、同じ乱数列が再現できます。
具体的に見てみましょう。、、、シードを7とすると、次のようになります。
7 → 6 → 1 → 8 → 11 → 10 → 5 → 12 → 15 → 14 → 9 → 0 → 3 → 2 → 13 → 4 → 7 → ……
16個で1周して、7に戻りました。余りの種類は 個しかないので、必ず繰り返します。この繰り返しの長さを周期と呼びます。実用の乱数はメルセンヌ・ツイスタのように周期がとても長い方法を使いますが、「計算で作っている」という点は同じです。
さて、一様乱数 が作れれば、他の分布の乱数に変換できます。その基本が 逆関数法 です。分布関数を とすると、次のように作れます。
なぜでしょうか? となり、 の分布関数が に一致するからです。変数変換の記事で学んだ考え方の、裏返しです。
例えば、レート の指数分布なら なので、 です。 で なら 、 なら です。
せっかくなので、別の例も見てみましょう。離散分布でも考え方は同じです。ガチャの結果が、確率0.2で金、0.5で銀、0.3で銅だとします。
【離散分布の乱数の作り方】
- なら金
- なら銀
- なら銅
要するに、0から1の物差しを確率の長さで区切り、 が落ちた区間を結果とするだけです。
正規分布の は式で書けません。そこで、独立な一様乱数 から標準正規乱数を作る ボックス・ミュラー法 が知られています。
試験のポイント:逆関数法は、 を について解くだけです。指数分布は頻出です。
以上が、乱数についての解説です。
採択・棄却法:的に当たった分だけ採用する
次に、逆関数が使えないときの方法を説明します。
ベータ分布のように、 が簡単に書けない分布はたくさんあります。そこで使うのが、採択・棄却法(acceptance-rejection method)です。作りやすい分布から候補を出し、一部を捨てることで、目標の分布に形を整えます。
ダーツに例えてみましょう。密度関数 のグラフを壁に描き、その山を囲む長方形に、ダーツをでたらめに投げます。山の下に刺さったものだけを採用すれば、採用した矢の横の位置は、山の高いところに多く集まります。つまり、 に従います。
式で書くと、次のようになります。候補の分布の密度を とし、すべての で となる定数 を用意します。
【採択・棄却法の手順】
- から候補 を、一様分布から を引く
- なら を採択する
- 棄却したら1に戻る
が、 の上にかぶせた屋根です。正しさを確かめましょう。候補が採択される確率は、次のとおりです。
さらに、採択された の分布を計算します。
たしかに に従います。また、1個を得るのに必要な候補の数は、平均 個です。屋根が低いほど無駄が減るので、 はできるだけ小さくとります。
なお、 は定数倍が分からなくても使えます。屋根を の定数倍に合わせればよいからです。
例題:ベータ分布の乱数を作る
の密度は ()です。 を の一様分布として、採択・棄却法を使います。 の最小値、候補 の採択確率、全体の採択率を求めましょう。
【解き方】
- の最小値は の最大値: より
- 候補の採択確率:
- 全体の採択率:
答えは、、採択確率0.64、全体の採択率は約0.67です。つまり、3個の候補から平均2個が残ります。
以上が、採択・棄却法についての説明です。
モンテカルロ法:平均で積分を解く
続いて、乱数で計算する方法を解説します。
モンテカルロ法 は、乱数を使って期待値や積分を近似する方法の総称です。名前は、カジノで有名な地名からとられました。
考え方は、大数の法則そのものです。 が密度 に従う乱数なら、次のように近似できます。
鍋のスープを全部飲まなくても、よくかき混ぜて何口か味見をすれば、味が分かるのと同じです。
確率も期待値の一種です。 を「条件を満たせば1、そうでなければ0」とすれば、平均は確率になります。冒頭のサイコロの例がこれです。
具体的に見てみましょう。積分 は、ふつうの方法では解けません。 を の一様分布とすると、これは なので、一様乱数を 個作って を平均すれば求まります。真の値は約0.7468です。
精度はどれくらいでしょうか? 中心極限定理から、推定値の標準誤差は次のようになります。
今の例では なので、 で標準誤差は約0.002です。
ここがポイントです。誤差は でしか減りません。精度を10倍にするには、乱数を100倍に増やす必要があります。その代わり、この速さは積分の次元によりません。格子点で数値積分すると、次元が増えるごとに点の数が爆発しますが、モンテカルロ法は高次元でも使えます。
せっかくなので、別の例も見てみましょう。正方形 に点を 個落とし、半径1の四分円に入る割合 を数えます。四分円の面積は なので、 で を推定できます。 なら標準誤差は で、小数第1位がやっと安定する程度です。
補足(ここは読み飛ばしてOK): 同じ で精度を上げる工夫を、分散減少法と呼びます。代表例は重点サンプリングで、 と書き直し、重要な領域によく当たる から乱数を引きます。確率の小さい事象の計算で特に有効です。
試験のポイント:モンテカルロ法の標準誤差は です。比率を推定するなら です。
以上が、モンテカルロ法についての解説です。
ジャックナイフ法:1人ずつ抜いて確かめる
さらに、推定量の偏りと精度を、データだけで調べる方法を説明します。
ここからは問題が変わります。手元の標本から推定量 を計算したとき、その標準誤差を知りたいとします。 なら という公式があります。でも、中央値や相関係数のように、公式が複雑な推定量もあります。母集団からもう一度標本をとれれば分かりますが、それは無理です。
そこで、手元の標本から標本を作り直します。これが 再標本化(リサンプリング)の考え方です。
ジャックナイフ法(jackknife)は、標本から1個ずつ取り除いて推定量を計算し直す方法です。会議で1人ずつ席を外してもらい、結論がどれくらい変わるかを見るイメージです。誰が抜けても結論が同じなら、その結論は安定しています。
番目を除いた 個で計算した推定量を 、その平均を とします。
偏りを修正した推定量は、 です。
なぜ が掛かるのでしょうか? 偏りが の形だとします。すると、次のように の項が消えます。
標準誤差の係数も同じです。 どうしはほとんど同じデータで計算しているので、差がとても小さく、それを の分だけ膨らませて補正します。例えば、 なら なので、公式に入れるとちょうど に一致します。
具体的に見てみましょう。データは 3, 5, 6, 8, 13 の5個です。
【標本平均の標準誤差】
- 。1個を除いた平均は 8, 7.5, 7.25, 6.75, 5.5
- これらの平均は7で、
- 公式の と一致する
せっかくなので、偏りのある推定量でも試してみましょう。 で割る分散は です。1個を除いて同じ計算をすると 9.5, 13.25, 14.1875, 14.1875, 3.25 で、平均は10.875です。
修正後の値は、不偏分散の14.5に一致しました。
一方で、ジャックナイフ法には弱点があります。データの変化に対して滑らかでない推定量には向きません。例えば、中央値は1個を抜いてもごく少数の値しかとらないので、標準誤差の推定が不安定になります。
以上が、ジャックナイフ法についての説明です。
ブートストラップ法:標本を母集団の代わりにする
最後に、再標本化の主役を見ていきましょう。
ブートストラップ法(bootstrap)は、手元の標本を母集団の代わりと考え、そこから復元抽出で同じ大きさの標本を何度も作る方法です。エフロンが考案しました。名前は、「自分のブーツのつまみを引っ張って、自分を持ち上げる」という言い回しからきています。
くじ引きに例えてみましょう。 個のデータをそれぞれくじに書いて箱に入れます。1枚引いて記録し、箱に戻す。これを 回繰り返すと、1組のブートストラップ標本ができます。箱に戻すので、同じデータが何度も入ったり、1度も入らなかったりします。
【ブートストラップ法の手順】
- 元の標本から、復元抽出で大きさ の標本を作る
- その標本で推定量 を計算する
- 1と2を 回繰り返す( は1,000回以上が多い)
- の標準偏差を標準誤差、平均と の差を偏りの推定値とする
要するに、「母集団 → 標本」という関係を、「標本 → ブートストラップ標本」という関係でまねるのです。母集団の分布の代わりに、各データに確率 を置いた 経験分布 を使っています。
具体的に見てみましょう。10人の通学時間が 12, 15, 9, 20, 14, 11, 30, 13, 16, 10(分)だったとします。中央値は13.5分です。中央値の標準誤差には簡単な公式がありません。ブートストラップ法で20万回計算すると、標準誤差は約1.6分でした。
信頼区間も作れます。 を小さい順に並べ、下から2.5%と97.5%の値をとったものが パーセンタイル法 の95%信頼区間です。この例では、約 (11, 17.5) 分です。正規分布を仮定していないので、左右が非対称な区間になっています。
例題:ブートストラップ標本の確率を計算する
データ 3, 5, 6, 8, 13 からブートストラップ標本を作ります。次を求めましょう。
(1) 値13が1度も選ばれない確率 (2) ブートストラップ標本の中央値が3になる確率
【解き方】
- (1) 毎回 の確率で13以外が選ばれるので、
- (2) 中央値が3になるのは、5回のうち3回以上で3が選ばれるとき
- 選ばれる回数は に従うので、
答えは (1) 約0.328、(2) 約0.058です。
一般に、あるデータが選ばれない確率は で、 が大きいと に近づきます。つまり、ブートストラップ標本には、元のデータの約63.2%が含まれます。
ブートストラップ法にも限界があります。
【ブートストラップ法の注意点】
- 標本が小さく母集団を代表していないと、結果も偏る
- 最大値のように分布の端を見る統計量はうまくいかない。元の最大値が約63%の確率で再び選ばれるため
- 時系列のような従属するデータでは、順番が壊れる。連続した塊ごとに抽出するブロック・ブートストラップを使う
また、母集団の分布の形を仮定できるなら、推定した分布から乱数でデータを作る パラメトリック・ブートストラップ も使えます。ここまでの方法は、これと区別してノンパラメトリック・ブートストラップとも呼ばれます。
2つの再標本化法を比べておきましょう。
| ジャックナイフ法 | ブートストラップ法 | |
|---|---|---|
| 作り方 | 1個ずつ除く | 復元抽出 |
| 計算の回数 | 回 | 回(多い) |
| 滑らかでない統計量 | 苦手(中央値など) | 比較的使える |
| 主な用途 | 偏りの修正、標準誤差 | 標準誤差、信頼区間 |
試験のポイント:ブートストラップ法は「復元抽出で大きさ 」です。非復元で 個を抽出すると、元の標本の並べ替えにしかなりません。
以上が、ブートストラップ法についての解説です。
細かい式を忘れてしまっても問題ありません。ここでは、「分布は乱数で作れる」「積分は平均で近似できる」「標本から標本を作り直せば精度が分かる」という点だけ押さえておきましょう。
今回のまとめ
それでは、今回の内容を振り返ります。
今回は、計算機で統計の問題を解く方法について紹介しました。式で解けない問題も、乱数をたくさん作れば答えに近づけます。母集団に戻れないときでも、標本の中で再標本化すれば、推定量の揺れが見えてきます。
今回のポイントを振り返りましょう。
振り返り
- 疑似乱数は計算で作る。逆関数法は で一様乱数を目標の分布に変換する。
- 採択・棄却法は、屋根 の下でダーツを投げるイメージ。採択率は になる。
- モンテカルロ法は、積分を乱数の平均で近似する。誤差は で、高次元でも使える。
- ジャックナイフ法は1個ずつ抜いて、偏りと標準誤差を見積もる。
- ブートストラップ法は復元抽出で標本を作り直し、標本を母集団の代わりにする。
キーワードのおさらい
- 乱数: でたらめに並ぶ数の列。コンピュータでは計算で作る疑似乱数を使う
- 逆関数法: 一様乱数 を に変換して、分布 の乱数を作る方法
- 採択・棄却法: 作りやすい分布から候補を出し、確率 で採択して目標の分布の乱数を作る方法
- モンテカルロ法: 乱数を使って期待値や積分を近似する方法
- ジャックナイフ法: 1個ずつ除いた推定量から、偏りと標準誤差を見積もる方法
- ブートストラップ法: 標本からの復元抽出を繰り返して、推定量の分布を調べる方法
さて、準1級の旅も、次がいよいよ最後です。ここまでの手法は、ほとんどが「変数の間の関連」を調べるものでした。では、「原因と結果」は、データからどこまで言えるのでしょうか?
次回は、準1級の締めくくりとして「統計的因果推論」について紹介します。
それでは、次の記事へ進んでいきましょう。