logo

モンテカルロ法とブートストラップの違い 📂数理統計学

モンテカルロ法とブートストラップの違い

概要

モンテカルロ法は作為的なデータでシミュレーションを繰り返して新しい手法を確認する方法であり、ブートストラップは実際のデータから再標本抽出を通じてコストを削減しながら問題を解決しようとする方法である。

定義

モンテカルロ法monte Carlo methodとは、乱数抽出を通じて関心のある対象について点推定量を見つける方法である。

ブートストラップbootstrapとは、標本から再標本抽出を通じて関心のある対象の分布を把握する方法である。

説明

基本的に両方とも多く抽出して多く試行してみるという点で混同しやすいが、プロセスだけが似て見えるだけで用途は全く異なる。

まずモンテカルロ法は、我々がある真値を知っているときに、ある統計量がそれを正確に推定できるかを見るときに使う。この説明で引っかかる点は、いったい「真値をどうやって知っているというのか」ということである。答えは意外に簡単で、実験者が直接母数と分布を与えて発生させたデータであれば、何が理論的な真値なのかを知っているのが普通である。このように作為的なデータでシミュレーションを繰り返してみれば、結局は新しいメソッドや統計量が実際とどれほど似ているかを確認してみることもできるだろう。

一方でブートストラップは、与えられた標本から再び標本を抽出して標本自体を増やすことから始める。統計学において標本とは多ければ多いほど良いので、標本が増えること自体は喜ばしいことである。実験を一度行うのが高くつきすぎて大変であったり、あるいはもうこれ以上データを確保できない場合には、このような方法がプロジェクトに大きく役立つだろう。問題はそんなものをどうやって信じるのかということである。まともに統計学を学んだ人であれば、聞いただけで何か引っかかると感じるのが普通である。

当然ながらブートストラップを使うためには、少なくとも与えられた標本くらいは母集団の特徴をよく反映していなければならないという仮定が必要である。よく反映していても、その時々では偏ったデータが出うるということも考慮しなければならない。それだけでなく、ブートストラップを通じて得られた結果はその分布を教えてくれるだけで、正確に求めたい値が何であるかは教えてくれない。

真値$\alpha$を見つけるために推定量$\hat{ \alpha}$を使うとしよう。ブートストラップは再標本抽出を通じて$\hat{ \alpha}$の推定量$\hat{ \alpha} ^{ \ast }$を繰り返し求めていく。ここで見つけたい値と推定量との差をそれぞれ $$ \begin{cases} d = \hat{\alpha} - \alpha \\ d^{ \ast } = \hat{\alpha}^{ \ast } - \hat{ \alpha } \end{cases} $$ とすると、これらの分散はそれぞれ$\alpha$と$\hat{ \alpha}$が定数扱いされて $$ \begin{cases} \Var (d) = \Var ( \hat{\alpha} - \alpha ) = \Var ( \hat{\alpha}) \\ \Var ( d^{ \ast } ) = \Var ( \hat{\alpha}^{ \ast } - \hat{ \alpha } ) = \Var ( \hat{\alpha}^{ \ast } ) \end{cases} $$ となる。結局$\Var (\hat{\alpha}^{ \ast })$を突き止めたところで$\alpha$が何であるかは分からず、ただその分布だけを推測できるにすぎない。

例えば回帰係数に対してブートストラップを使ったならば、その標準誤差はかなり近い値で求められるとしても、係数自体が正常な標本から正しく求められたのかは分からない。求めた係数が正確でなければt-testも意味がなく、したがって回帰係数が有意かどうかも分からないので、何の役にも立たない。

結論として、モンテカルロ法とブートストラップは互いに一長一短があるという程度でもなく、プロセスを除いたすべてが完全に異なる。

関連リンク