ブートストラップによる標準偏差信頼区間推定の奇妙なパターン


8

一部のデータの標準偏差の信頼区間を推定したいと思いました。Rコードは次のようになります。

library(boot)
sd_boot <- function (x, ind) {                
        res <- sd(x$ReadyChange[ind], na.rm = TRUE)
        return(res)            
}
data_boot <- boot::boot(data, statistic = sd_boot, R = 10000)
plot(data_boot)

そして、私は次のプロットを持っています: ここに画像の説明を入力してください

このブートストラップのヒストグラムを正しく解釈できません。同様のデータの他のすべてのセットは、ブートストラップ推定の正規分布を示しています...しかし、これはそうではありません。ちなみに、これは実際の生データです:

> data$ReadyChange
 [1] 27.800000  8.985046 11.728021  8.830856  5.738600 12.028310  7.771528  9.208924 11.778611  6.024259  5.969931  6.063484  4.915764
[14] 12.027639  9.111146 13.898171 12.921377  6.916667 10.764479  6.875000 12.875000  7.017917  9.750000  7.921782 12.911551  6.000000

このブートストラップパターンの解釈について教えてください。


1
コードをコピーして貼り付けても、結果を再現できません。非常に正規分布のヒストグラムが表示されます。
jwimberley 2017年

1
@jwimberley、間違ったデータベクトルがありました...発見していただきありがとうございます。実際のデータは編集の下のポストにあります。
user16

2
新しいデータのパターンが確認されました。私の推測では、それは他のすべてのものよりもはるかに大きいデータポイント27.800000が原因です。
psarka 2017年

2
@psarka確認しています。このポイントを削除すると、奇妙な動作がなくなります。このポイントがない場合のsdの標準偏差は3.02ですが、このポイントでは4.24です。これは、3.02と4.24のピークを説明しています(ブートストラップに含まれていないポイント、ブートストラップに含まれているポイント)。この点が複数回含まれている場合は、より高い共振になります。
jwimberley 2017年

1
@mdeweyこれは、私が信用したくないプサルカの観察に基づいていました。
jwimberley 2017年

回答:


21

コードにバグがあるか、ブートストラップライブラリが予期しない動作をしています。

編集:

修正されたデータが提供された後、パターンが1つの外れ値によって引き起こされていることが明らかになりました。各ピークは、外れ値がサンプルに選択された異なる回数に対応しています。

ここに画像の説明を入力してください


1
Rの同上:21要素のベクトルデータを明白な方法で作成したinds <- matrix(sample(21,10000*21,replace=TRUE),10000,21)後、でインデックスの行列を作成し、各列からデータの要素を検索して、で標準偏差を見つけますhist(apply(inds,1,function(ind){sd(data[ind])}))。複数のピークはありません。
jwimberley 2017年

1
この回答は問題を非常によく説明し、示していますが、実際にそれをどうするかについてのガイダンスやアドバイスは提供していません。
アメーバ2017年

8

私はこれを答えとして述べるのをためらっていますが、これは、ブートストラップのベースとなる少量のデータポイントによって引き起こされているようです(21、私が間違っている場合は修正してください)。

より正確に言うと、私がサンプリングしたこれらの特定の 21個の値には、標準偏差(ヒストグラムのピーク)が頻繁に発生する可能性があるだけのようです。基本サンプルがより大きく、より多様である場合、結果のヒストグラムははるかに滑らかになります(そして、おそらく予想していた正規分布により似ています)。

一般的な注意として、ここで私が正しいと仮定すると、これは、ブートストラップが小さなサンプルの問題を解決しないことを示す良い例です。


3
このような説明は好きですが、結果を再現できません!
Nick Cox

1
@NickCoxあなたはそれを指摘するのは絶対に正しいです。私はこれらの結果を再現しようとせずにこの回答を入力しました。Psarkaの回答(すぐに賛成しました)に示されているように、コーディングエラーがあったに違いありません。したがって、私は何かを学びました(そのような問題を再現するために)。
IWS 2017年

ブートストラップが必ず元のデータに依存することも重要です。
Nick Cox

もちろんそうです、あなたは何をしているのですか?
IWS 2017年

1
応援します!つまり、アーティファクトは可能であり、警戒が必要であると主張します。
Nick Cox
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.