首页 > 解决方案 > 是否可以使用分位数回归找到预测区间?

问题描述

当尝试运行下面的代码预测时,它给了我一个错误,说区间 arg 应该是无或置信度,所以我想知道是否有办法使用分位数回归来获得预测区间?

注意:如果我用 lm 替换 rq,我可以找到预测区间,但是我想使用 rq 找到它。

#mycode:
    library(quantreg)
    mydata <- read.csv("C:\\Users\\gokul\\Desktop\\Book4.csv")
    
    attach(mydata)
    summary(mydata)
    
    mod = rq(y~q) # y is my dependent and q is my independent variables
    summary(mod)
    
    predict(mod, data.frame(q), interval = "prediction",level = 0.10)

CSV 文件片段:

dput(head(mydata,10))
structure(list(y = c(71143L, 68061L, 66603L, 66907L, 69073L, 
                     72901L, 77521L, 81728L, 84842L, 87877L), q = c(71416.79329, 68003.59226, 
                                                                    66533.66142, 66620.44529, 68640.60953, 72945.13676, 77743.82153, 
                                                                    81604.52442, 84887.47483, 87904.33486)), row.names = c(NA, 10L
                                                                    ), class = "data.frame")

标签: rregressionquantilequantreg

解决方案


当然,只需使用 0.05 和 0.95 分位数函数。这将为您提供 90% 的预测限制。如果您想要 95% 的限制,请将 0.05 和 0.95 更改为 0.025 和 0.975。这是一些R代码。

n = 1000
beta0 = 2.1; beta1 = 0.7
set.seed(12345)
X = runif(n, 10, 20)
Y = beta0 + beta1*X + .4*X*rnorm(n)

library(quantreg)
fit.05 = rq(Y ~ X, tau = .05)
fit.95 = rq(Y ~ X, tau = .95)

Lower = fit.05$fitted.values
Upper = fit.95$fitted.values

plot(X,Y, main = "Scatterplot with 90% Prediction Limits")
points(X,Lower, pch=".", col="red")
points(X,Upper, pch=".", col="red")

结果如下:

具有 90% 限制的散点图


推荐阅读