Python でブートストラップを実行する方法 (例あり)
ブートストラップは、サンプル サイズが小さく、基礎となる分布が不明な場合に統計の信頼区間を構築するために使用できる方法です。
ブートストラップの基本的なプロセスは次のとおりです。
- 指定されたデータセットから置換されたk 個の反復サンプルを取得します。
- サンプルごとに、目的の統計を計算します。
- これにより、特定の統計量に対してk 個の異なる推定値が得られ、これを使用して統計量の信頼区間を計算できます。
Python でブートストラップする最も簡単な方法は、 SciPyライブラリのブートストラップ関数を使用することです。
次の例は、この関数を実際に使用する方法を示しています。
例: Python でブートストラップを実行する
15 個の値を含むデータセットを Python で作成するとします。
#define array of data values
data = [7, 9, 10, 10, 12, 14, 15, 16, 16, 17, 19, 20, 21, 21, 23]
次のコードを使用して、中央値の 95% ブートストラップ信頼区間を計算できます。
from scipy. stats import bootstrap
import numpy as np
#convert array to sequence
data = (data,)
#calculate 95% bootstrapped confidence interval for median
bootstrap_ci = bootstrap(data, np. median , confidence_level= 0.95 ,
random_state= 1 , method=' percentile ')
#view 95% boostrapped confidence interval
print ( bootstrap_ci.confidence_interval )
ConfidenceInterval(low=10.0, high=20.0)
中央値の 95% ブートストラップ信頼区間は[10.0, 20.0]であることがわかります。
boostrap()関数が内部で実際に行っていたことは次のとおりです。
- bootstrap()関数は、置換を含む 9,999 個のサンプルを生成しました。 (デフォルトは 9999 ですが、 n_resamples引数を使用してこの数値を変更できます)
- 各ブートストラップ サンプルについて、中央値が計算されました。
- 各サンプルの中央値を最小値から最大値の順に並べ、2.5% パーセンタイルと 97.5% パーセンタイルの中央値を使用して、95% 信頼区間の下限と上限を構築しました。 %。
実質的にすべての統計に対してブートストラップ信頼区間を計算できることに注意してください。
たとえば、 bootstrap()関数でnp.median をnp.stdに置き換えて、代わりに標準偏差の 95% 信頼区間を計算できます。
from scipy. stats import bootstrap
import numpy as np
#convert array to sequence
data = (data,)
#calculate 95% bootstrapped confidence interval for median
bootstrap_ci = bootstrap(data, np. std , confidence_level= 0.95 ,
random_state= 1 , method=' percentile ')
#view 95% boostrapped confidence interval
print ( bootstrap_ci.confidence_interval )
ConfidenceInterval(low=3.3199732261303283, high=5.66478399066117)
標準偏差の 95% ブートストラップ信頼区間は[3.32, 5.67]であることがわかります。
注: これらの例では、95% の信頼区間を作成することを選択しますが、 trust_level引数の値を変更して、異なるサイズの信頼区間を構築することもできます。
追加リソース
次のチュートリアルでは、他の統計ソフトウェアでブートストラップする方法について説明します。