我已经能够在数据帧中迭代地应用通用添加模型,所以sp_a是响应变量......
sp_a <- rnorm (100, mean = 3, sd = 0.9)
var_env_1 <- rnorm (100, mean = 1, sd = 0.3)
var_env_2 <- rnorm (100, mean = 5, sd = 1.6)
var_env_3 <- rnorm (100, mean = 10, sd = 1.2)
data <- data.frame (sp_a, var_env_1, var_env_2,var_env_3)
library(mgcv)
Gam <- lapply(data[,-1], function(x) summary(gam(data$sp_a ~ s(x))))
这会在响应变量和每个解释变量之间迭代地创建一个GAM。但是,我将如何从每个模型中提取p值或s.pv。有人知道怎么做这个吗?另外,按照他们的AIC分数对它们进行排名会很棒......
Gam1 <- gam(sp_a ~ s(var_env_1))
Gam2 <- gam(sp_a ~ s(var_env_2))
Gam3 <- gam(sp_a ~ s(var_env_3))
AIC(Gam1,Gam2,Gam3)
但是从原来的Gam&#39;中选择这个。输出而不是。感谢您提前提供的任何帮助。
答案 0 :(得分:0)
最后,显然我必须删除摘要选项,然后允许我计算所有模型的AIC分数。其他有趣的格式化方法可以在Using lapply on a list of models找到,因为这些函数适用于不同类型的模型(例如lm,glm)。
Gam <- lapply(data[,-1], function(x) gam(data$sp_a ~ s(x)))
sapply(X = Gam, FUN = AIC)