2

有一种方法可以构建分位数回归的置信区间:

x <- rnorm(1000)
y <- x + 2*rnorm(1000)
rqm1 <- rq(y~x)
summary(rqm1)

什么是默认值?是5%吗?如何找到另一个,比如 10%?

4

2 回答 2

2

summary.qr方法的默认 alpha 水平为.1,对应于置信区间宽度为.9。我对此感到困惑很长一段时间,因为它没有明确记录。

置信区间 when se = "rank"(对于少于 1001 行的数据的默认值)是通过用 重新拟合模型来计算的rq.fit.br,这是 使用的基础机制rq。如果您查看 的文档rq.fit.br,您可以看到有一个默认alpha设置为的参数。.1如果您将alpha参数传递给summary.rq,它将被传递给rq.fit.br并且您将获得您正在寻找的置信区间。

结果相同summary(rqm1)

summary(rqm1, alpha = .1)

95% 区间:

summary(rqm1, alpha = .05)

于 2018-04-21T19:02:33.350 回答
0

你得到了确认。直接间隔,因为默认情况下rq的summary函数使用rank方法估计CIs所以你可以使用summary.rq函数并设置se="boot","nid","iid","ker"选项来获得不同的标准误差。我已将其设置为 se="boot"。它为您提供系数的标准误差,您可以在 qunatile 公式中使用这些误差来查找 CI。

90% 使用

qnorm(0.95)

95% 使用

qnorm(0.975)

完整的代码

library(quantreg)
x <- rnorm(1000)
y <- x + 2*rnorm(1000)
rqm1 <- rq(y~x)
summary.rq(rqm1, se="boot") -> rqm2
coef=rqm2$coefficients[,1] 
err=rqm2$coefficients[,2]  
ci <- list()
for (i in 1:length(coef)){
ci[[i]] <- coef[i] + c(-1,1)*err[i]*qnorm(0.975)}

这将返回截距和所有变量的置信区间

于 2017-09-26T18:17:05.697 回答