回答:
以下は、古典的なRデータセットの図です。
> x = faithful$waiting
> bootmed = apply(matrix(sample(x, rep=TRUE, 10^4*length(x)), nrow=10^4), 1, median)
> quantile(bootmed, c(.025, 0.975))
2.5% 97.5%
73.5 77
これにより、中央値の(73.5、77)信頼区間が得られます。
(注:ジョンのおかげでバージョンを修正しました。以前はを使用していましたが、混乱を招きました!)nrow
ブートストラップのリサンプリングを確認してください。ブート機能については、Rヘルプを検索してください。リサンプリングによるデータに応じて、ほぼすべての信頼区間を推定できます。
wilcox.test(..., conf.int=TRUE)
関数などによって提供されるHodges-Lehman推定量を使用できます。
qbinomアプローチに基づく結果は、小さなサンプルに対しては正しくありません。xに10個のコンポーネントがあると仮定します。次に、qbinom(c(.025、.975)、10、.5)は2と8を返します。結果の区間は、下側の順序統計を上側の統計と対称に扱いません。2と9、または3と8のいずれかを取得する必要があります。正しい答えは2と9です。SASでproc univariateをチェックできます。ここでキャッチする必要があるのは、上下に0.025以内の確率です。下位の分位点は、少なくとも.025以下を与えるため、これを行いません。1になるはずのカウントが2番目の統計にマッピングされ、0がカウントされるため、「off by one」がキャンセルされるため、一番下に保存されます。この偶然のキャンセルは上部では行われないため、ここで間違った答えが返されます。コードsort(x)[qbinom(c(.025、.975)、length(x),. 5)+ c(0,1)]はほぼ機能し、.5は他の変位値の信頼区間を取得するために他の変位値に置き換えることができますが、P [X <= aが存在する場合は正しくありません] =。025。例については、ヒギンズ、ノンパラメトリック統計を参照してください。
library(boot)
これを確認するために表示されます:> boot.ci(boot(x、function(x、i)median(x [i])、R = 1000))間隔:レベルNormal Basic 95%(74.42、78.22)(75.00 、78.49)レベルパーセンタイルBCa 95%(73.51、77.00)(73.00、77.00)