4

私の統計クラスでは Stata を使用しています。私は R ユーザーなので、R でも同じことをしたいと考えています。正しい結果が得られましたが、信頼区間のような単純なものを取得するのはやや厄介な方法のように思えます。

これが私の大雑把な解決策です:

library(quantreg)
na = round(runif(100, min=127, max=144))
f <- rq(na~1, tau=.5, data=ds)
s <- summary.rq(f, se="boot", R=1000)
coef(s)[1]
coef(s)[1]+ c(-1,1)*1.96*coef(s)[2]

また、ブートパッケージで少し実験しましたが、動作しませんでした。

library(boot)
b <- boot(na, function(w, i){ 
        rand_bootstrap_sample = w[i]
        f <- rq(rand_bootstrap_sample~1, tau=.5)
        return(coef(f)) 
        }, R=100)
boot.ci(b)

エラーが発生します:

bca.ci(boot.out, conf, index[1L], L = L, t = to, t0 = t0.o, のエラー: 推定調整 'a' は NA です

私の質問:

  • 私が望んでいないのは、信頼区間を取得する別のより良い方法があるかどうかを知ることです
  • ブートストラップ コードが不平を言っているのはなぜですか?
4

1 に答える 1

4

あなたの例ではエラーメッセージが表示されないため(Windows 7/64、R 2.14.2)、ランダムシードの問題である可能性があります。したがって、ランダムな方法を使用して例を投稿する場合は、set.seed; という行を追加することをお勧めします。例を参照してください。

エラー メッセージは、boot.ci の bca タイプを参照していることに注意してください。これはよく文句を言うので、タイプを明示的に指定して選択を解除してください。

ブートストラップでかなり複雑な rq を使用する理由が正確にはわかりません。rq のプロファイリングが本当に必要な場合は、以下の簡単な例は忘れてください。ただし、詳細を教えてください。

library(boot)
set.seed(4711)
na = round(runif(100, min=127, max=144))

b <- boot(na, function(w, i) median(w[i]), R=1000)
boot.ci(b,type=c("norm","basic","perc"))
于 2012-04-17T07:19:01.987 に答える