2015-07-06 3 views
0

я смог применить General аддитивной модели итеративна через dataframe, поэтому там, где sp_a переменный ответ ...Распаковка модели надежность из несколько Гамса применяется через dataframe

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 из каждой модели. Кто-нибудь знает, как это сделать? Кроме того, было бы здорово, чтобы ранжировать их по баллам АИК, как это ...

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» вместо этого. Спасибо за любую помощь заранее.

ответ

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)