Я запустил цикл for в R, который генерирует модели для биномиальной GAM для 200 различных комбинаций случайных данных (200 различных значений set.seed).
Цикл for и GAM работают нормально, и они сохраняют модели в соответствующем списке, model[[i]]
, где каждый элемент списка представляет модель для определенной итерации set.seed.
Я могу запустить summary()
для отдельного элемента списка (например, model[[5]]
) и получить что-то вроде этого:
Approximate significance of smooth terms:
edf Ref.df Chi.sq p-value
s(Petal.Width) 1.133e+00 9 5.414 0.008701 **
s(Sepal.Length) 8.643e-01 9 2.338 0.067509 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
R-sq.(adj) = 0.361 Deviance explained = 32.7%
-REML = 83.084 Scale est. = 1 n = 160
Поскольку у меня есть 200 таких элементов в моем списке model
, мне было интересно, есть ли быстрый способ просмотреть и подсчитать, сколько раз (из общего числа 200) это значение Chi.sq равно 0 для лепестка. Переменная ширины. По сути, поскольку у меня есть GAM, настроенные с bs = "cs"
, количество раз, когда Chi.sq равно 0, представляет, как часто процесс выбора переменной удалял эту переменную из модели.
Вот очищенная версия кода, который я использовал для цикла for для построения модели:
a <- c(1:200)
model <- list()
for (i in a) {
#In my version there's some extra code here that subsets iris based on i
model[[i]] <- gam(Species~ s(Petal.Width, bs="cs") +
s(Sepal.Length, bs="cs"),
data = iris,
family = binomial,
method = "REML")
}
tidy()
из пакетаbroom
, которая помещает результаты модели в табличку для сбора вывода, после чего вы можете объединить столбцы. - person brian avery   schedule 28.01.2021gam
--gam
илиmgcv
? - person brian avery   schedule 28.01.2021mgcv
- person pfadenhw   schedule 28.01.2021