我正在努力寻找有关如何轻松绘制lqmm模型的示例。因此,例如,在下面,我想要一个简单的图,可以预测多个分位数并将这些预测叠加到散点图上:
curry
对于lqm模型,我可以成功完成此操作,但lqmm模型不能。
const deepMap = map(cond([
[has('template'), transformTemplate],
[is(Object), deepMap],
[is(Array), deepMap],
[T, identity]
]))
我已经看到了Forecast.lqmm函数,但是它返回了数据集中每个x值的预测值,而不是返回超出x轴极限的平滑函数。预先感谢您的帮助。
答案 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)
要获得与正常理论置信区间相当的分位数,您需要提供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)
}