2012-04-17 20 views
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) 

給出了一個錯誤:我的問題:

  • 我wan't是知道的,如果有越來越置信區間
  • 爲什麼引導代碼抱怨的另一個更好的辦法?

回答

4

你的例子沒有給我一個錯誤消息(Windows 7/64,R 2.14.2),所以它可能是一個隨機種子的問題。所以如果你使用一些隨機方法發佈一個例子,最好添加一行set.seed;看例子。

請注意,錯誤消息是指bca類型的boot.ci;因爲這個人經常抱怨,所以通過明確地給出類型來取消它的選擇。

我不知道你爲什麼在bootstrap中使用相當複雜的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")) 
+0

謝謝你的回答。它現在在筆記本電腦上運行正常(R 2.15.0) - 很奇怪。我使用rq的原因僅僅是因爲我試圖從Stata的練習中翻譯出來。我主要是好奇的,如果有分位數迴歸給出了自舉置信區間 – 2012-04-17 07:31:56

+0

你能解釋一下你對rq的期望嗎?(東西〜1)?在我看來,這是一個相當墮落的「倒退」。 – 2012-04-17 08:58:36

+0

在你的例子中,我得到的中位數,但它是一個統計課程的例子,我只是想玩弄 - 我同意它幾乎沒有意義... – 2012-04-17 09:02:48