はじめに
アンケートを10人に取った、10日分の売上を記録した。そんな少ないデータから平均を出したとき、「この数字、どこまで信じていいの?」と不安になったことはありませんか。そんな疑問に答える統計のテクニックがブートストラップ法です。手元のデータを何度も「引き直す」だけで、結果のブレ幅を見積もることができます。
👇 本記事でわかる3つの重要ポイント 👇
- 【テーマ1】ブートストラップ法の仕組みと名前の由来
- 【テーマ2】10個のデータで試すブートストラップ法の手順と計算例
- 【テーマ3】ブートストラップ法の得意なこと・苦手なことと活用の場面
難しい数式は使わずに、くじ引きのたとえと具体的な数字で説明します。読み終えるころには、統計の結果に添えられた「信頼区間」の意味も、自分の言葉で説明できるようになるはずです。
ブートストラップ法とは?ひと言でいうと「データの引き直し」
ブートストラップ法とは、手元にあるデータから「同じ数だけ、戻しながら選び直す」作業をたくさん繰り返し、結果がどれくらいばらつくかを調べる方法です。ばらつきが小さければその結果は確からしく、大きければ慎重に扱うべきだとわかります。
本当はやりたい「もう一度調査する」の代わり
たとえば、ある町の100世帯を調べて平均収入を出したとします。この平均がどれくらい正確かを知るいちばん素直な方法は、別の100世帯を何回も調べ直し、平均がどれだけ変わるかを見ることです。しかし、現実には時間もお金もかかり、何度も調査はできません。
そこでブートストラップ法では、最初に集めた100世帯のデータそのものを「町全体の縮図」とみなします。その縮図から何度もくじを引くようにデータを選び直し、調査のやり直しをコンピューターの中でまねするのです。この100世帯の例は、考案者のブラッドリー・エフロン氏が国際統計賞を受けた際の解説でも使われています。
カギは「戻しながら選ぶ」復元抽出
引き直しのときは、復元抽出(ふくげんちゅうしゅつ)という選び方をします。箱から玉を1つ取り出して色を記録したら、その玉を箱に戻してから次を引く方法です。
- 戻すので、同じデータが2回、3回と選ばれることがあります
- 反対に、一度も選ばれないデータも出てきます
- この「重なり」と「抜け」が毎回変わることで、データの組み合わせに自然なばらつきが生まれます
もし戻さずに選ぶと、10個から10個を選んだ時点で元のデータとまったく同じ中身になってしまいます。戻しながら選ぶからこそ、毎回少しずつ違う「もう一つの調査結果」を作れるのです。
ブートストラップ法の名前の由来と歴史
ブートストラップ法は、1979年に米スタンフォード大学の統計学者ブラッドリー・エフロン氏が論文で発表した方法です。名前は「自分のブーツのつまみ(ブートストラップ)を引っ張って自分を持ち上げる」という英語の言い回しに由来します。
「自分で自分を持ち上げる」というたとえ
ブーツの後ろについている引っ張り用の輪を「ブートストラップ」と呼びます。それを引いて自分の体を宙に浮かせるのは不可能なことのたとえですが、転じて「外の助けを借りずに自力でなんとかする」という意味でも使われます。
新しいデータを集めず、手元のデータだけを使って結果の確かさを測る。この「自前でやりくりする」姿が、ブーツのつまみの話に重ねられました。数学事典「Encyclopedia of Mathematics」でも、名前はこのたとえに由来すると説明されています。パソコンの起動を意味する「ブート」も、同じ言い回しが語源といわれています。
1979年の論文から「統計の革命」へ
エフロン氏の論文の題名は「Bootstrap Methods: Another Look at the Jackknife(ブートストラップ法:ジャックナイフ法の新たな見方)」で、学術誌「The Annals of Statistics」の1979年1月号に掲載されました。ジャックナイフ法とは、データを1つずつ抜いて計算し直す、それ以前からあった方法です。エフロン氏は、ジャックナイフ法をブートストラップ法の「近似」として説明し直しました。
この方法はコンピューターの普及とともに急速に広まりました。米国統計学会の発表によると、1980年以降、ブートストラップ法は20万件を超える文献で引用されています。エフロン氏はこの功績により、2018年11月に「統計学のノーベル賞」とも呼ばれる国際統計賞(International Prize in Statistics)の受賞が発表され、2019年の世界統計会議で授与されました。ちなみに、国際数理統計学会の発表によると、最初の論文は「定理が足りない」という理由でいったん掲載を断られ、最後に定理を書き足したという逸話も残っています。
ブートストラップ法の手順は4ステップ
ブートストラップ法の手順は、とてもシンプルな4ステップです。複雑な公式を覚える必要はなく、「引き直す」「計算する」「繰り返す」「ばらつきを見る」だけで完結します。
- 元のデータを用意する:たとえば10個のデータがあるとします。
- 復元抽出で同じ数を選び直す:10個の中から、戻しながら10回選び、新しいデータの組(ブートストラップ標本)を作ります。
- 知りたい数字を計算する:その組の平均値や中央値などを計算して記録します。
- 2〜3を何千回も繰り返し、ばらつきを見る:集まった数千個の平均値が、どれくらいの範囲に散らばっているかを調べます。
最後に得られた数千個の値の散らばりが、「もし調査をやり直したら、結果はこれくらい変わりそうだ」という目安になります。繰り返しの回数について、統計ツールの解説サイト「MetricGate」は、ざっと調べる段階なら1,000回程度で十分としています。正式な分析では、さらに多くの回数を使うのが一般的です。
ばらつきを表す2つの物差し
ばらつきの大きさは、主に次の2つの形で表します。
| 物差し | 意味 | 読み方の例 |
|---|---|---|
| 標準誤差 | 結果が平均的にどれくらいブレるかを1つの数で表したもの | 「平均41人、ブレはおよそ3人」 |
| 信頼区間 | 本当の値が入っていそうな範囲を幅で表したもの | 「95%信頼区間は35〜48人」 |
標準誤差は「ブレの大きさ」、信頼区間は「たぶんこのあたり」という範囲です。どちらも、数字を見た人が結果を過信しないための大切な情報です。
10個のデータで試す、ブートストラップ法の計算例
ここでは、架空の喫茶店の「10日間の来客数」を例に、実際にブートストラップ法を計算してみます。計算は筆者がPythonというプログラミング言語で行いました(引き直しの回数は1万回)。
元のデータと、引き直したデータ
元のデータは、次の10日分の来客数です。
32人、45人、28人、51人、39人、47人、30人、62人、41人、36人
この10個の平均は41.1人です。では、この「41.1人」はどれくらい確かなのでしょうか。復元抽出で選び直した最初の3回分は、次のようになりました。
| 回 | 選び直した10個 | 平均 |
|---|---|---|
| 1回目 | 41, 45, 32, 30, 51, 39, 32, 51, 30, 51 | 40.2人 |
| 2回目 | 41, 62, 62, 36, 62, 45, 41, 30, 32, 28 | 43.9人 |
| 3回目 | 45, 36, 62, 36, 28, 30, 30, 62, 45, 47 | 42.1人 |
1回目では「51人」が3回も選ばれ、「62人」は一度も選ばれていません。2回目では「62人」が3回選ばれたため、平均が高めになりました。このように、引き直すたびに平均が少しずつ変わります。
1万回繰り返した結果
この作業を1万回繰り返し、1万個の平均を並べると、次のことがわかりました。
- 平均のブレ(標準誤差)は約3.2人でした
- 1万個の平均を小さい順に並べ、下から2.5%と上から2.5%を切り落とすと、範囲は35.1人〜47.5人でした
この「35.1人〜47.5人」が、パーセンタイル法と呼ばれるやり方で求めた95%信頼区間です。つまり「この店の本当の平均来客数は、おおよそ35〜48人のあいだにありそうだ」と読めます。41.1人という一点だけを見るより、ずっと実態に近い理解ができます。
中央値でも同じように測れる
ブートストラップ法の強みは、平均以外の数字にもそのまま使えることです。同じデータで中央値(真ん中の値)を調べると、元のデータの中央値は40人、95%信頼区間は32人〜48人、ブレは約4.2人でした。中央値のブレを求める公式は複雑ですが、ブートストラップ法なら「引き直して中央値を計算する」だけで済みます。
なお、引き直しの結果は乱数(コンピューターが作るでたらめな数)に左右されるため、計算するたびに小数点以下の数字が少し変わります。回数を増やすほど、結果は安定していきます。
ブートストラップ法が得意なこと
ブートストラップ法がこれほど広まった理由は、「データの形について難しい前提を置かなくてよい」「どんな数字にも使える」という2つの手軽さにあります。
データの分布を仮定しなくてよい
従来の統計の多くは、「データはきれいな山形(正規分布)に散らばっている」といった前提のもとで公式を使います。しかし、現実のデータは片側に偏っていたり、極端な値が混ざっていたりします。応用統計学会の論文でも、ブートストラップ法は特定の分布を想定せずに、推定の誤差を数値で評価できる点が注目されたと説明されています。
公式がない数字にも使える
平均値なら、ブレを求める公式が教科書に載っています。ところが、中央値、相関係数(2つの数の関係の強さ)、複雑なモデルの予測精度などは、公式が難しかったり、そもそも存在しなかったりします。ブートストラップ法なら、計算の中身が何であっても「引き直して、計算して、繰り返す」という同じ手順で対応できます。
エフロン氏自身も国際統計賞の受賞スピーチで、応用の現場では特別な工夫なしに幅広い状況で使える「自動的な」方法が好まれると語っています。コンピューターに計算を任せられる手軽さが、医療、経済、天文学、遺伝子研究など、さまざまな分野に広まった理由です。
ブートストラップ法の注意点と苦手なこと
ブートストラップ法は便利ですが、魔法ではありません。手元のデータが町全体の縮図になっていることが大前提で、その前提が崩れると、もっともらしい間違いを出してしまいます。
- データが少なすぎる場合:MetricGateの解説では、データが10個未満だと、どの種類のブートストラップ信頼区間も実際より狭くなりやすいと注意しています。今回の10個の例も、あくまで考え方を示すためのものです。
- データに偏りがある場合:常連客が多い曜日だけを記録したデータなど、集め方に偏りがあれば、何回引き直しても偏りは消えません。
- データ同士につながりがある場合:毎日の気温や株価のように、前日の値が翌日に影響するデータは、そのまま引き直すと順番の情報が壊れます。こうしたデータには、ひとかたまりずつ引き直すなどの工夫が必要です。
- 最大値や最小値を知りたい場合:引き直しでは元のデータより大きな値は決して出てこないため、極端な値の推定は苦手です。
また、分布の形が左右対称でない場合、単純なパーセンタイル法では範囲がずれることがあります。そのため、ずれを補正する「BCa法」などの改良版も考案されています。
選ばれないデータは約37%になる
復元抽出には、おもしろい性質があります。データの数が多くなると、1回の引き直しで一度も選ばれないデータの割合は、約36.8%に近づくことが知られています。言いかえると、1回の引き直しに含まれる「異なるデータ」は全体の約63.2%です。今回の10個の例でも、1万回の平均は約65%でした。この「選ばれなかったデータ」は、次に紹介する機械学習で上手に活用されています。
ブートストラップ法の身近な活用例
ブートストラップ法は、研究論文の中だけでなく、私たちの暮らしを支えるAIや医療の分野でも使われています。
AI・機械学習の「バギング」と「ランダムフォレスト」
カリフォルニア大学バークレー校の統計学者レオ・ブレイマン氏は、1996年の論文で「バギング(Bagging)」という方法を発表しました。これは「ブートストラップ・アグリゲーティング(Bootstrap aggregating)」の略で、引き直した多数のデータそれぞれで予測モデルを作り、その答えを多数決や平均でまとめる方法です。
1人の専門家に頼るより、少しずつ違う経験を積んだ大勢の意見をまとめたほうが、極端な間違いが減ります。この考え方をさらに発展させたのが、同じくブレイマン氏による「ランダムフォレスト」で、現在も広く使われている機械学習の手法です。引き直しで選ばれなかったデータは、モデルの成績を確かめるテスト用データとして使えます。
研究や調査の「誤差の幅」を示す
医療研究では、限られた患者のデータから治療の効果を見積もる場面が多くあります。応用統計学会の論文では、医療の診断データへの応用例も紹介されています。また、統計ソフトのSPSSにもブートストラップ法の機能が追加されるなど、専門家でなくても使える道具になりました。
- アンケート結果の割合に誤差の幅を付ける
- 新しい薬と古い薬の効果の差がどれくらい確かかを調べる
- AIの翻訳や予測の成績が、偶然の良し悪しではないかを確かめる
このように、「数字に誤差の幅を添える」必要がある場面で、ブートストラップ法は幅広く活躍しています。
よくある質問
ブートストラップ法を使えば、データが少なくても大丈夫ですか?
いいえ、データの少なさそのものを補う方法ではありません。ブートストラップ法は、手元のデータから「結果がどれくらい不確かか」を正直に見積もるための方法です。データが極端に少ないと、見積もった幅も実際より狭く出やすいため注意が必要です。
引き直しは何回くらい行えばよいですか?
ざっと様子を見るなら1,000回程度が目安とされます。信頼区間をきちんと求めたい場合は、数千回から1万回ほど行うのが一般的です。パソコンなら1万回でも一瞬で計算できます。
Excelでもブートストラップ法はできますか?
できます。乱数で元のデータから1つを選ぶ関数を組み合わせれば、復元抽出を再現できます。ただし、何千回もの繰り返しを手作業で組むのは手間がかかるため、PythonやRといったプログラミング言語や、ブートストラップ機能を持つ統計ソフトを使うほうが便利です。
ジャックナイフ法とは何が違うのですか?
ジャックナイフ法は、データを1つずつ抜いて計算し直す方法で、計算のやり方が1通りに決まっています。ブートストラップ法は、戻しながらランダムに選び直す方法で、何回でも違う組み合わせを作れます。エフロン氏の1979年の論文では、ジャックナイフ法はブートストラップ法の近似として説明されています。
まとめ
ブートストラップ法は、手元のデータを「町全体の縮図」とみなし、戻しながら選び直す作業を何千回も繰り返して、結果のブレ幅を測る方法です。1979年にエフロン氏が発表し、コンピューターの力を借りて統計の世界を大きく変えました。
- 復元抽出で、同じ数だけデータを選び直すのが基本です
- 標準誤差や信頼区間として、結果の確かさを表せます
- 分布の仮定がいらず、中央値など公式のない数字にも使えます
- データが少なすぎる、偏っている、順番に意味があるといった場合は注意が必要です
- AIのバギングやランダムフォレストにも応用されています
まずは身近な10個ほどの数字、たとえば1週間の歩数や家計の支出などを用意して、Excelやプログラムで引き直しを試してみてください。平均値の「確からしさ」が目に見える形でわかると、ニュースや調査で見かける数字の読み方も変わってきます。
参考リスト
- B. Efron “Bootstrap Methods: Another Look at the Jackknife”(Project Euclid)
- Bootstrap method(Encyclopedia of Mathematics)
- International Prize in Statistics Awarded to Bradley Efron(Institute of Mathematical Statistics)
- International Prize in Statistics Awarded to Stanford’s Bradley Efron(Amstat News)
- Remarks delivered by Brad Efron(International Prize in Statistics 受賞スピーチ)
- 判別分析における誤判別率推定とブートストラップ法(応用統計学、J-STAGE)
- ブートストラップ法によるリサンプリング(東京学芸大学)
- ブートストラップ信頼区間(MetricGate)
- Efronブートストラップパーセンタイル法(MetricGate)
- Leo Breiman “Bagging Predictors”(UC Berkeley)
- 統計的推定とブートストラップ法についての考察(鶴見大学)

