我正在尝试使用 R 中的 gamm4 来拟合一些 gamms,目的是进行一些模型比较,但是我在理解 GAM(M) 和构建这些模型方面遇到了困难。给你一个大概的...
我正在尝试使用 R 中的 gamm4 来拟合一些 gamms,目的是进行一些模型比较,但我无法理解 GAM(M) 并构建这些模型。
为了给您提供一些背景信息,我打算回答 1. 在我的研究期间(十年)不透水性如何影响物种占有率以及 2. 哪种测量不透水性的方法(在 ndvi、ndbi 和城市土地覆盖百分比 [ULC] 之间)最能反映城市化对该物种的影响?我已经使用 glms 完成了这项工作,但我希望获得比这些模型提供的更大的灵活性。
对于我的数据:二元响应变量:发生(物种发生;0 = 244,1 = 233)预测因子:不透水性测量(ndvi,ndbi,ULC)和年份(0:10)随机效应:siteID(n = 67)嵌套在集水区内(n = 5)
我计划用 GAM(M) 交叉验证(留一法或 k 倍法)解决第二个问题。由于某种原因,我的结果表明这些关系是线性的,但从我的 glms 和可视化 多年来的发生概率来看, .
这是我一直在使用的代码
# packages
library(mgcv)
library(gamm4)
# Load and format species data
mydata <- read.table("00_Data/mydata.txt", header=TRUE)
mydata$siteID <- as.factor(mydata$siteID)
mydata$catchment <- as.factor(mydata$catchment)
mydata$year<-我的数据$year - min(mydata$year)
head(mydata); dim(mydata)
# Fit gamm with year as a smooth term
> gammmod1 <- gamm4(occurrence ~ s(year, k=10),
random= ~(1|siteID/catchment), data=mydata,
family=binomial)
> summary(gammmod1$gam)
Family: binomial
Link function: logit
Formula:
occurrence ~ s(year, k = 10)
Parametric coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.1858 0.2305 -0.806 0.42
Approximate significance of smooth terms:
edf Ref.df Chi.sq p-value
s(year) 1 1 1.096 0.295
R-sq.(adj) = -0.00317
glmer.ML = 444.03 Scale est. = 1 n = 477
# Fit gamm without smooth term
> gammmodb <- gamm4(occurrence~year, random= ~ (1|siteID/catchment),
data=mydata, family=binomial)
> summary(gammmodb$gam)
Formula:
occurrence ~ year
Parametric coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.69740 0.52779 -1.321 0.186
year 0.08059 0.07698 1.047 0.295
R-sq.(adj) = -0.00317
glmer.ML = 444.03 Scale est. = 1 n = 477
# Fit gamm with ndvi as smooth term
gammmod2 <- gamm4(occurrence ~ s(year,k=15) + s(ndvi,k=15),
random= ~ (1|siteID/catchment), data=mydata,
family=binomial)
summary(gammmod2$gam) smooth.construct.tp.smooth.spec(object, dk$) 中的错误data, dk$knots) :
A term has fewer unique covariate combinations than specified
maximum degrees of freedom
我仍在学习 GAM(M),因此非常感谢任何建议或论文推荐。