#r #mixed-models
#r #смешанные модели
Вопрос:
Я пытаюсь выполнить перекрестную проверку как часть регрессии лучших подмножеств на смешанных моделях, пока безуспешно. Я ищу помощь со следующим кодом или что-нибудь получше.
Я нашел следующий рабочий код с использованием пакета nlme для генерации соответствия каждой возможной модели из предварительно определенной модели, которая затем вычисляет и сортирует подобранные модели по BIC.
library(nlme)
fm <- lme(distance ~age*Sex, random = ~ 1|Subject,data=Orthodont,method='ML')
terms <- terms(fm) #store the response and fixed effects
todrop <- 1:length(attr(terms,'term.labels')) #Count # of fixed effects
subs <- unlist(sapply(todrop,function(p)
combn(todrop,p,simplify=F)),recursive =F) #Creates list of all combinations of fixed terms
fm.subList <- lapply(subs[-length(subs)],function(s,...){ #Fits each possible model
newf<- formula(drop.terms(terms(fm),s,keep.response = TRUE))
update(fm,newf)
})
names(fm.subList) <- sapply(fm.subList, function(x) paste('fm',attr(
terms(x),'term.labels'),sep='.'))
sort(sapply(fm.subList, BIC))
Код был найден здесь: http://r.789695.n4.nabble.com/best-subset-selection-on-random-effects-model-td4382936.html
Тем не менее, я бы хотел выбрать наиболее подходящую модель с перекрестной проверкой вместо BIC. Я пытался использовать cvFit из пакета cvTools, но, хотя я знаю, как использовать его отдельно от приведенного выше кода, я не могу понять, как объединить его с приведенным выше кодом.
Любая помощь в том, как объединить их, будет оценена.
Кроме того, в качестве дополнительного примечания, я также попробовал пакет leaps и regsubsets в сочетании с перекрестной проверкой из «Введение в статистическое обучение с приложениями на R» (найдено здесь: http://www-bcf.usc.edu /~gareth/ISL/), но не смог понять, как использовать смешанные модели в сочетании с этим кодом(начало стр. 249). Если я что-то упускаю из виду, я также открыт для предложений.
Комментарии:
1. Это может быть полезным вопросом для подражания: stats.stackexchange.com/questions/74220 /…
2. Подойдет. Спасибо.