有一种方法可以构建分位数回归的置信区间:
x <- rnorm(1000)
y <- x + 2*rnorm(1000)
rqm1 <- rq(y~x)
summary(rqm1)
什么是默认值?是5%吗?如何找到另一个,比如 10%?
有一种方法可以构建分位数回归的置信区间:
x <- rnorm(1000)
y <- x + 2*rnorm(1000)
rqm1 <- rq(y~x)
summary(rqm1)
什么是默认值?是5%吗?如何找到另一个,比如 10%?
该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)
你得到了确认。直接间隔,因为默认情况下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)}
这将返回截距和所有变量的置信区间