【问题标题】:gls model plotting with 95% intervals以 95% 的间隔绘制 gls 模型
【发布时间】:2016-07-31 01:08:06
【问题描述】:

我正在尝试以 95% 的置信度绘制我的 gls 预测值,但我正在努力解决语法问题。

我之前使用 gam 模型完成了此操作,代码如下:

m1 <- gam(Chl ~ s(IR, fx= F, k= -1, bs = "cr"))
m1pred <- predict(m1, se=T, type = "response")

plot(IR, Chl, type ="p")
I1 <- order(IR)
lines(IR[I1], m1pred$fit[I1], lty=1, col="red", lwd = 3 )
lines(IR[I1], m1pred$fit[I1]+2*m1pred$se[I1], lty=2, col = "red", lwd =2)
lines(IR[I1], m1pred$fit[I1]-2*m1pred$se[I1], lty=2, col = "red", lwd = 2)

但这不适用于 gls 模型,因为它说:

pred2$fit 中的错误:$ 运算符对原子向量无效

我已经用另一种方法达到了这一点,我可以按照 Zurr 等人 (2009) 的一些代码绘制预测模型和数据:

plot(IR, Chl,
 ylim = c(0, 2.5), pch= 21,
 ylab = "Chl concentration µg/L", xlab = "Incident irradiance  (W/m-2)")

MyX <- data.frame(IR = seq(from = min(IR),
                       to = max(IR), length = 1076), ID = "IR")
pred2 <- predict(m1s, newdata = MyX)
lines(MyX$IR, pred2, col="red", lwd=3)

但我不确定如何添加 95% 间隔线?

我想我可以使用 AICmodav 包中的这种语法获取间隔:

predictSE.gls(m1s, MyX, se.fit=T)
lines(MyX$IR, predse, col="red", lwd=1)

但是我不知道如何绘制这个,因为 x 和 y 变量似乎是不同的......有人可以帮忙吗?

我对 R 并不感到惊讶,所以解释越简单,我就越能从中学到更多。

提前致谢 路西

【问题讨论】:

    标签: r plot syntax intervals lm


    【解决方案1】:

    在没有可重现的例子的情况下,我们所能做的就是猜测:尝试:

    plot(IR, Chl, type ="p")
    I1 <- order(IR)
    lines(IR[I1], m1pred[I1 , 1], lty=1, col="blue", lwd = 3 )
    lines(IR[I1], m1pred[I1 , 1]+2*m1pred[I1, "se.fit"], lty=2, col = "red", lwd =2)
    lines(IR[I1], m1pred[I1 , 1]-2*m1pred[I1, "se.fit"], lty=2, col = "red", lwd = 2)
    

    predict 的结果可能是矩阵或向量而不是列表。这就是错误消息试图让您识别的内容。这不应该是来自mgcv::predict.gamgam::predict.gam 生成的预测对象的错误,但是您没有包含library 调用,所以我们不知道gam 来自哪个包。您确实应该使用完整的参数名称(se.fit 而不是 se)调用函数并使用 TRUE 而不是 T

    【讨论】:

      猜你喜欢
      • 2021-07-05
      • 2017-02-12
      • 2021-12-12
      • 2018-03-09
      • 2020-11-16
      • 2022-01-13
      • 1970-01-01
      • 2015-02-16
      • 2014-02-09
      相关资源
      最近更新 更多