绘制LQMM函数

时间:2018-11-12 18:33:17

标签: r plot quantreg quantile-regression

我正在努力寻找有关如何轻松绘制lqmm模型的示例。因此,例如,在下面,我想要一个简单的图,可以预测多个分位数并将这些预测叠加到散点图上:

curry

对于lqm模型,我可以成功完成此操作,但lqmm模型不能。

const deepMap = map(cond([
  [has('template'), transformTemplate],
  [is(Object), deepMap],
  [is(Array), deepMap],
  [T, identity]
]))

我已经看到了Forecast.lqmm函数,但是它返回了数据集中每个x值的预测值,而不是返回超出x轴极限的平滑函数。预先感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

对于coef.lqmm,您只有一个矢量,因此可以用以下值绘制一条线:

coef(fit.lqmm)
#(Intercept)           x 
#   3.443475    9.258331 

 plot(y~x,data=test)
 curve( coef(fit.lqmm)[1]  +coef(fit.lqmm)[2]*(x), add = TRUE)

enter image description here

要获得与正常理论置信区间相当的分位数,您需要提供tau向量。这是90%的覆盖率估算值:

 fit.lqmm <- lqmm(fixed = y ~ x, random = ~ 1, group = group, data = test, tau = c(0.05, 0.5, 0.95), nK = 11, type = "normal")
 pred.lqmm <- predict(fit.lqmm, level = 1)
 str(pred.lqmm)
 num [1:500, 1:3] 2.01 7.09 3.24 8.05 8.64 ...
 - attr(*, "dimnames")=List of 2
  ..$ : chr [1:500] "1" "2" "3" "4" ...
  ..$ : chr [1:3] "0.05" "0.50" "0.95"
 coef(fit.lqmm)
                  0.05     0.50     0.95
(Intercept)  0.6203104 3.443475 8.192738
x           10.1502027 9.258331 8.620478

plot(y~x,data=test)
for (k in 1:3){
curve((coef.lqmm(fit.lqmm) [1,k])+(coef.lqmm(fit.lqmm) [2,k])*(x), add = TRUE)
}