1

我正在使用该quantreg软件包来预测分位数及其置信区间。我不明白为什么预测的分位数与使用quantile().

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
4

1 回答 1

1

您应该意识到预测只有 10 个项目的数据集的第 90 个百分位实际上仅基于两个最高值。您应该查看分位数的帮助页面,您会在其中找到该术语的多个定义。

当我运行它时,我看到:

 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
于 2017-10-26T00:47:44.730 回答