2017-10-26 5 views
1

私はquantregパッケージを使用して、分位数とその信頼区間を予測しています。予測された分位数が、quantile()を使用してデータから直接計算された分位数と異なる理由を理解できません。R quantumモデルは分位数を再現しません:なぜですか?

library(tidyverse) 
library(quantreg) 

data <- tibble(data=runif(10)*10) 
qr1 <- rq(formula=data ~ 1, tau=0.9, data=data) # quantile regression 
yqr1<- predict(qr1, newdata=tibble(data=c(1)), interval='confidence', level=0.95, se='boot') # predict quantile 
q90 <- quantile(data$data, 0.9) # quantile of sample 

> yqr1 
     fit lower higher 
1 6.999223 3.815588 10.18286 
> q90 
    90% 
7.270891 

答えて

1

は、あなただけの10項目とデータセットの90パーセンタイルを予測実際には2つの最高値のみに基づいている認識すべきです。用語の定義が複数ある場合は、quantileのヘルプページを参照してください。

私はこれを実行すると、私は次を参照してください。

yqr1<- predict(qr1, newdata=tibble(data=c(1))) 
yqr1 
     1 
8.525812 

そして私は、私が見たデータを見ると:

data 
# A tibble: 10 x 1 
     data 
     <dbl> 
1 8.52581158 
2 7.73959380 
3 4.53000680 
4 0.03431813 
5 2.13842058 
6 5.60713159 
7 6.17525537 
8 8.76262959 
9 5.30750304 
10 4.61817190 

のでrq機能は、90パーセンタイルとして二番目に高い値を推定していますこれは完全に妥当と思われる。 quantile結果は実際にはそのようには見積もられません。

quantile(data$data, .9) 
#  90% 
#8.549493 
?quantile 
+0

優れています。私は 'quantile()'に 'type'引数があるのを忘れていました。 'type = 1'を設定すると、両方のメソッドから同じ答えが得られますが、これは私の目的にとっては十分です。 –

関連する問題