あなたが説明する問題は解釈の問題であり、妥当性の問題ではありません。定数推定器のブートストラップバイアス推定値は無効ではなく、実際には完璧です。
バイアスのブートストラップ推定は、推定器の間であるθ = S (X )と、Aパラメータθ = T (F )、ここで、Fは、いくつかの未知の分布であり、xはから試料Fを。関数t (F )は、母集団が手元にある場合に原理的に計算できるものです。いくつかの時間は、我々が取るS (X )= T (F)、プラグインの推定値T (θ^=s(x)θ=t(F),FxFt(F)s(x)=t(F^),経験分布使っ Fの代わりにしますt(F)F^。これはおそらくあなたが上で説明したものです。全ての場合において、バイアスのブートストラップ推定は、
bは、I sはF = E F [ S (X *)] - T (F)FX *からのブートストラップサンプルである X。
biasF^=EF^[s(x∗)]−t(F^),
x∗x
定数完璧なプラグインで同じ定数の推定値である。c 人口はおよびサンプル〜 F近似し、経験分布、Fを。t (F )= cを評価できれば、cが得られます。あなたはプラグインを推定計算するとT (Fを)= cをあなたにも取得Cを。ご想像のとおり、バイアスはありません。∼F∼F^Ft(F)=cct(F^)=cc
プラグイン推定に偏りがある周知のケース従って、ベッセルの補正を分散を推定することです。以下にこれを示します。ブートストラップバイアスの推定値はそれほど悪くありません。
t(F^)
library(plyr)
n <- 20
data <- rnorm(n, 0, 1)
variance <- sum((data - mean(data))^2)/n
boots <- raply(1000, {
data_b <- sample(data, n, replace=T)
sum((data_b - mean(data_b))^2)/n
})
# estimated bias
mean(boots) - variance
#> [1] -0.06504726
# true bias:
((n-1)/n)*1 -1
#> [1] -0.05
代わりに、を母平均とし、s (x )= cとすることができます。ほとんどの場合、明確なバイアスがあるはずです。
t(F)s(x)=c
library(plyr)
mu <- 3
a_constant <- 1
n <- 20
data <- rnorm(n, mu, 1)
boots <- raply(1000, {
# not necessary as we will ignore the data, but let's do it on principle
data_b <- sample(data, n, replace=T)
a_constant
})
# estimated bias
mean(boots) - mean(data)
#> [1] -1.964877
# true bias is clearly -2
ここでも、ブートストラップの推定値はそれほど悪くありません。