この記事では、統計分析などにおいて使用される「ブートストラップ法」について、その意味や必要とされる理由、具体的な実施方法を具体例をもとに解説します。
<目次>
「ブートストラップ法」とは何か
「ブートストラップ法」とは、手元にある有限のサンプルから、同じサイズの再標本を繰り返し無作為に復元抽出し、その再標本の統計量から母数を推定する方法です。
手元にある有限のサンプルから、同じサイズの再標本を繰り返し無作為に復元抽出し、その再標本の統計量から母数を推定する方法
ここで「再標本 (resample)」とは、手元にある元の標本(観測標本)から新しく抽出した標本のことを指します。
母集団から抽出された「元の標本」は母集団の特徴を持っていると考えられるため、その「元の標本」から新たに抽出された「再標本」も、母集団の特徴を持っていると考えることができます。
ブートストラップ法では、①「元の標本」と「母集団」の関係と、②「再標本」と「元の標本」の関係が相似関係にあることを利用して、①を②で近似することで、母数の推定を行います。
ブートストラップ法は、コンピュータ・シミュレーション(モンテカルロ法)の一つですが、コンピュータで生成した乱数ではなく、実際にあるデータを使い分布の推定を行う点に特徴があります。
なぜブートストラップ法が必要なのか
小標本における母数の推定
ブートストラップ法は、観測によって得た手元のデータのサンプル数が少なく、通常の方法では高い精度で母数を推定することが難しい場合に有効な方法です。
小標本の場合、仮にt分布などを使い推定を行っても、サンプル数が少ないために推定誤差が大きくなり、精度の高い推定を行うことができません。これは、サンプルサイズが小さすぎるため、十分な検出力(「第2種の過誤」が発生せず、正しく対立仮説を検出できる確率)が得られない状態に当たります。
ブートストラップ法では、「復元抽出」と呼ばれる、一度抽出された値を再度抽出の対象とする方法を使い、同じ値の重複を許容しながら元標本と同サイズの再標本を無作為に抽出します。
多数(数百~数千)の再標本を復元抽出し、その再標本ごとに平均値などの統計量を得ることで、その統計量の分布から母集団についてより高い精度で平均や標準誤差の推定を行うことが可能となります。
栗原・丸山(2017)を参考に、Intelligence In Society作成
例えば、血糖値の改善に効果が期待されるサプリメントについて、20人の男性対象者が試験的に3か月間服用したデータがあるとします。推定したい統計量は、服用開始前と開始3か月後の血糖値の変化とします。この時、20人分のデータ(元標本)から直接推定した統計量では、平均 = -5.0、標本標準偏差 = 3.5 となりました。
一方、ブートストラップ法では、この20人から重複を許しながら20人を無作為に抜き出し、20人の男性が含まれた再標本を作成してその平均値を計算します。このプロセスを1,000回繰り返せば、1,000個の平均値を得ることができるため、「再標本の平均」の分布から、その平均と標本標準偏差を計算します。
その結果、平均= -4.5、標本標準偏差= 1.2 となり、再標本をもとに得られた統計量により、より狭い信頼区間を持つ精度の高い推定を行うことが可能となります。
複雑な計算の回避
標準誤差などの推定を行う際に、解析的な計算による推定が複雑になる場合や、計算量が膨大になる場合に、解析的な計算の代わりにブートストラップ法を使った推定が行われる場合があります。
例えばプロビット・モデルにおいて限界効果(ある説明変数が変化したときに、結果変数が1を取る確率の変化)の標準誤差の大きさを計算する際には、限界効果の分散に基づく解析的な計算の代わりとして、ブートストラップ法による推定も広く使用されます。
機械学習におけるモデルの強化
機械学習における「アンサンブル法」は、複数の機械学習モデルを組み合わせることで、より強力なモデルを構築する手法を指しますが、特に有効なアンサンブル法の一つである「ランダムフォレスト」では、ブートストラップ法によるサンプリングが行われています。
ここでは、対象のデータからブートストラップ法によって抽出された、少しずつ異なるデータセットに対して個別に決定木が構築されます。そして、これらの異なる決定木から得られた複数の結果の平均などをもとに最終的な予測値を得ることで、単体の決定木に比べてより精度の高い予測を行うことができるようになります。
ブートストラップ法の実施方法
以下では、母平均の推定における標準誤差をブートストラップ法により計算するケースを例に、実施のプロセスを解説します。
①復元抽出による再標本の作成
最初の手順として、「元標本」から同じサイズの「再標本」を、重複を認めながら無作為に復元抽出します。これにより、母集団の特徴を持った多数の再標本が作成されます。この時、1,000~2,000ほどの再標本を作ることで統計量の値が安定すると言われています。
この再標本化のイメージを表したのが以下です。元の標本が[ 1, 2, 3, 4, 5 ]の5つのサンプルから構成されていた場合、再標本はそのうちの一部が重複し、一部が含まれないサンプルで構成されます。
[1, 2, 3, 4, 5]
⇓ (n=5で無作為に復元抽出)
再標本:
[2, 2, 3, 4, 5], [1, 3, 3, 4, 5], [1, 2, 3, 5, 5], [2, 2, 4, 4, 5], [1, 1, 4, 5, 5]
②再標本ごとの統計量の取得
次に、それぞれの再標本について統計量(平均値)を計算します。再標本が1,000ある場合は、1,000の平均値が計算される形となります。
そして、再標本から得られた平均値と、元標本の平均値の差を計算します。これにより、「再標本の平均値-元標本の平均値」の値が1,000個得られます。
③統計量の分布から母数を推定
②のステップで得られた1,000個の「再標本の平均値-元標本の平均値」の分布を用いて、その標準偏差を計算することで、母平均の推定における標準誤差を推定します。
この時、もし母平均が正確に推定されていれば、1,000個の値はそれほどバラつかず、標準偏差が小さくなる一方、母平均が不正確に推定されていた場合は、1,000個の値は大きくバラつき、標準偏差は大きくなります。この標準偏差を見ることで、母平均の推定における標準誤差を把握することができます。
作成:Intelligence In Society
ここでは、ブートストラップ法によって得た「再標本の平均値-元標本の平均値」の分布と、知りたい対象であり本来未知の「元標本の平均値-母集団の平均値」の分布が相似の関係にあることを利用して、実際に計算が可能な前者をもとに後者の計算を行っています。
ブートストラップ法が機能しないケース
ブートストラップ法による統計量の推定が有効かどうかは、その統計量が分布からどのように算出されるかによって決まります。特に、統計量が連続微分可能な関数で表現されていない場合、ブートストラップ法による分布の近似とそれに基づく推定が正しく機能しないケースがあることが知られています。
例えば、上記の例では平均値を例として解説してきましたが、仮にその平均値が「0未満の値を取らない」という制約を与えられていた場合、この統計量は値0において微分することができません。
そのため、平均値についてはブートストラップ法によって分布の近似ができたとしても、それを「0未満の値を取らない」という形で関数化した統計量については、分布の近似が正しく行われない可能性があります。
このように、統計量が非連続的な変化を伴うものである場合、ブートストラップ法による推定がうまくいかないケースがあることは留意が必要です。
ここまで、統計分析などにおいて使用される「ブートストラップ法」について、その意味や必要とされる理由、具体的な実施方法を解説しました。
当記事に関連するトピックについての詳細は、以下のページをご覧ください。
また、データ分析一般・因果推論に関する全ての記事は以下のページからご覧いただけます。
参考文献:
◦B. Efron. (1979) “Bootstrap Methods: Another Look at the Jackknife.” The Annals of Statistics, vol. 7, no. 1, 1–26.
◦西山慶彦・新谷元嗣・川口大司・奥井亮 (2019)『計量経済学』有斐閣
◦栗原伸一・丸山敦史 (2017)『統計学図鑑』オーム社
◦川口康平・澤田真行 (2024)『因果推論の計量経済学』日本評論社
◦Andreas C. Muller、Sarah Guido (2017)『Pythonではじめる機械学習―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎』O’Reilly Japan