Main Content

統計標本のリサンプリング

ブートストラップ リサンプリング

ブートストラップ処理は、データ セットからの復元抽出法による無作為抽出を行い、それぞれを同じ方法で解析するという方法です。復元抽出法とは、各観測値がオリジナルのデータセットから無作為に、それぞれが別のものとして選択されることを意味します。したがって、元のデータ群から取り出した特定のデータ セットが、ブートストラップ標本の中で複数回現れることがあります。各ブートストラップ標本の要素数は、元のデータ セットの要素数と等しくなります。標本推定の範囲は、推定量の不確実性を確かめるために使うことができます。

以下は Efron and Tibshirani からの例で、15 のロースクール (法科大学院) を標本として、ロースクールの GPA と LSAT スコアを比較しています。

load lawdata
plot(lsat,gpa,'+')
lsline

Figure contains an axes object. The axes object contains 2 objects of type line. One or more of the lines displays its values using only markers

最小二乗で求めた直線は、LSAT スコアが高くなるにつれて、GPA スコアも高くなることを示しています。しかし、この結果はどのくらい正しいのでしょうか。この図は直感的ですが、統計量を表していません。

関数 |corr| を使って、変数の相関係数を計算できます。

rhohat = corr(lsat,gpa)
rhohat = 0.7764

LSAT と GPA の正の関係を示す値を得ました。この値は大きいと思われるかもしれませんが、統計的に意味をもつのかどうかはまだわかりません。

関数 bootstrp を使って、lsatgpa ベクトルを任意の回数でリサンプリングして、その結果の相関係数のばらつきを考えます。

rng default  % For reproducibility
rhos1000 = bootstrp(1000,'corr',lsat,gpa);

次のコマンドは、lsatgpa のベクトルを 1000 回リサンプリングし、それぞれの標本について関数 corr を計算します。その後、結果をヒストグラムにプロットすることができます。

histogram(rhos1000,30,'FaceColor',[.8 .8 1])

Figure contains an axes object. The axes object contains an object of type histogram.

ほとんどすべての推定が、[0.4 1.0] の区間にあることがわかります。

統計的推定では、パラメーター推定の信頼区間を構成することが望ましい場合もあります。関数 bootci を使用すると、ブートストラッピングを使って lsat および gpa データの信頼区間を取得できます。

ci = bootci(5000,@corr,lsat,gpa)
ci = 2×1

    0.3319
    0.9427

したがって、LSAT と GPA の間の相関係数の 95% 信頼区間は [0.33 0.94] です。このことは、LSAT とその結果から得られる GPA が明示的な相関関係をもっているということを示す量的な証拠となります。さらに、これは相関係数の確率分布についての仮定を必要としません。

関数 bootci は、既定の設定のタイプとして、Bias Corrected and accelerated (BCa) 区間を計算しますが、スチューデント化されたブートストラップ信頼区間のような、さまざまな他のタイプのブートストラップ信頼区間を計算することもできます。

ジャックナイフ リサンプリング

ジャックナイフはブートストラップに似ています。これはリサンプリングを使用して、標本統計量のバイアスを推定します。時には、標本統計量の標準誤差を推定するためにも使用されます。ジャックナイフは Statistics and Machine Learning Toolbox™ の関数 jackknife で実装されています。

ジャックナイフは、ブートストラップのようにランダムではなく、体系的にリサンプリングします。n 個の点をもつ標本の場合、ジャックナイフは、サイズが n-1 である n 個の個別の標本で標本統計量を計算します。各標本は、1 つの観測が省略された元のデータです。

この例のブートストラップでは、相関係数を推定する際に、不確実性を測定しました。ジャックナイフを使用して、バイアスを推定することができます。バイアスとは、標本相関関係が真の未知の相関関係を過大に推定または過小に推定する傾向のことです。まず、データの標本相関関係を計算します。

load lawdata
rhohat = corr(lsat,gpa)
rhohat = 0.7764

次に、ジャックナイフ標本の相関関係を計算し、それらの平均を計算します。

rng default;  % For reproducibility
jackrho = jackknife(@corr,lsat,gpa);
meanrho = mean(jackrho)
meanrho = 0.7759

それから、バイアスの推定を計算します。

n = length(lsat);
biasrho = (n-1) * (meanrho-rhohat)
biasrho = -0.0065

標本相関関係はこの量に関する真の相関関係をおそらく過小に推定するでしょう。

リサンプリング手法の並列計算のサポート

並列なリサンプリング統計の計算の詳細は、「Parallel Computing Toolbox™」を参照してください。