Ep1*_*1aN 1 r spatial gam autocorrelation
据我了解,GAMM 具有随机误差或空间自相关误差结构。
我正在尝试运行具有空间自相关误差结构的 GAMM 模型,例如 corExp(参见https://stat.ethz.ch/R-manual/R-devel/library/nlme/html/corClasses.html)。
但是我对从 GAM 建模 GAMM 感到困惑。
下面是我的 GAM(广义加性模型)代码。
library(mgcv)
mod.gam <- gam(Chave~s(Band_3) + s(Band_7) + s(Band_8) + s(BaCo_3_2) + s(BaCo_5_2) +
s(BaCo_5_3) + s(BaCo_5_4) + s(BaCo_8_2) + s(BaCo_8A_2),data = data)
summary(mod.gam)
fits = predict(mod.gam, newdata=data, type='response')
plot(data$Chave, fits, col='blue', ylab = "Predicted AGB KNN", xlab = "Estimated AGB")
plot(mod.gam)
Run Code Online (Sandbox Code Playgroud)
我如何将其更改为 GAMM?当我尝试使用 GAMM 时(如下所述),我没有看到太大的变化:
model <- gamm(Chave~s(Band_3) + s(Band_7) + s(Band_8) + s(BaCo_3_2) +
s(BaCo_5_2) + s(BaCo_5_3) + s(BaCo_5_4) + s(BaCo_8_2) + s(BaCo_8A_2),
data = data, correlation=corExp(1,form = ~ Latitude + Longitude)))
summary(model$gam)
plot(model$gam,pages=1)
Run Code Online (Sandbox Code Playgroud)
据我了解,空间自相关函数应该以纬度和经度作为输入。我做得对吗?以及 GAMM 的输出与 GAM 的输出有何不同?
不同模型的输出:
model <- gamm(Chave~s(Band_3) + s(Band_7) + s(Band_8) + s(BaCo_3_2) +
s(BaCo_5_2) + s(BaCo_5_3) + s(BaCo_5_4) + s(BaCo_8_2) + s(BaCo_8A_2),
data = data, correlation=corExp(1,form = ~ Latitude + Longitude)))
summary(model$gam)
plot(model$gam,pages=1)
Run Code Online (Sandbox Code Playgroud)
我认为,你是corExp()错误地调用。你用:
corExp(1, form = ~ Latitude + Longitude)
Run Code Online (Sandbox Code Playgroud)
这是将指数相关函数中相关参数的值固定为固定值1而不是从数据中估计出来的,这可以通过使用代替
corExp(form = ~ Latitude + Longitude)
Run Code Online (Sandbox Code Playgroud)
如果来自 GAM ( gam())的残余空间相关性与平滑协变量正交或不非线性相关,您也可能看不到模型中的太大变化:相关函数通过响应的协方差结构进入模型,而不是通过平均结构。
如果你想看看从残差gamm()是包括相关函数的效果,那么你需要使用:
resid(model$lme, type = "normalized")
Run Code Online (Sandbox Code Playgroud)
此外,如果您想比较具有和不具有结构的模型,则需要在模型anova()的$lme组件上使用,因此您需要使用 重新gam()拟合模型gamm(),只需去掉correlation部分即可。然后anova(mod1$lme, mod2$lme)将为您提供指数相关函数中参数的广义似然比检验。
| 归档时间: |
|
| 查看次数: |
1697 次 |
| 最近记录: |