R: Bootstrapped двоичная логистическая регрессия смешанной модели с использованием bootMer () нового пакета lme4
Я хочу использовать новую функцию bootMer () нового пакета lme4 (версия для разработчиков в настоящее время). Я новичок в R и не знаю, какую функцию я должен написать для аргумента FUN. Он говорит, что ему нужен числовой вектор, но я понятия не имею, что эта функция будет выполнять. Итак, у меня есть формула смешанной модели, которая приводится к bootMer () и имеет несколько повторностей. Так что я не знаю, что делает эта внешняя функция? Это должен быть шаблон для методов начальной загрузки? Методы начальной загрузки уже не реализованы в bootMer? Так зачем им нужна внешняя «статистика интереса»? И какую статистику интереса я должен использовать?
Правильно ли работает следующий синтаксис? R продолжает генерировать ошибку, что FUN должен быть числовым вектором. Я не знаю, как отделить оценки от «соответствия», и даже должен ли я это делать в первую очередь? Я могу просто сказать, что потерян с этим аргументом "весело". Кроме того, я не знаю, должен ли я передать формулу смешанной модели glmer (), используя переменную "Mixed5", или я должен передать некоторые указатели и ссылки? В примерах я вижу, что X (первый аргумент bootMer () - это объект * lmer (). Я хотел написать * Mixed5, но он выдал ошибку.
Большое спасибо.
Мой код:
library(lme4)
library(boot)
(mixed5 <- glmer(DV ~ (Demo1 +Demo2 +Demo3 +Demo4 +Trt)^2
+ (1 | PatientID) + (0 + Trt | PatientID)
, family=binomial(logit), MixedModelData4))
FUN <- function(formula) {
fit <- glmer(DV ~ (Demo1 +Demo2 +Demo3 +Demo4 +Trt)^2
+ (1 | PatientID) + (0 + Trt | PatientID)
, family=binomial(logit), MixedModelData4)
return(coef(fit))
}
result <- bootMer(mixed5, FUN, nsim = 3, seed = NULL, use.u = FALSE,
type = c("parametric"),
verbose = T, .progress = "none", PBargs = list())
result
FUN
fit
И ошибка:
Error in bootMer(mixed5, FUN, nsim = 3, seed = NULL, use.u = FALSE, type = c("parametric"), :
bootMer currently only handles functions that return numeric vectors
-------------------------------------------------- ------ Обновить ------------------------------------------- ----------
Я отредактировал код так, как сказал Бен. Код работал очень хорошо, но SE и смещения были нулевыми. Также вы знаете, как извлечь значения P из этого вывода (странно для меня)? Должен ли я использовать mixed () пакета afex?
Мой пересмотренный код:
library(lme4)
library(boot)
(mixed5 <- glmer(DV ~ (Demo1 +Demo2 +Demo3 +Demo4 +Trt)^2
+ (0 + Trt | PatientID)
, family=binomial(logit), MixedModelData4))
FUN <- function(fit) {
fit <- glmer(DV ~ (Demo1 +Demo2 +Demo3 +Demo4 +Trt)^2
+ (1 | PatientID) + (0 + Trt | PatientID)
, family=binomial(logit), MixedModelData4)
return(fixef(fit))
}
result <- bootMer(mixed5, FUN, nsim = 3)
result
-------------------------------------------------- ------ Обновление 2 ------------------------------------------ -----------
Я также попробовал следующее, но код генерировал предупреждения и не дал никакого результата.
(mixed5 <- glmer(DV ~ Demo1 +Demo2 +Demo3 +Demo4 +Trt
+ (1 | PatientID) + (0 + Trt | PatientID)
, family=binomial(logit), MixedModelData4))
FUN <- function(mixed5) {
return(fixef(mixed5))}
result <- bootMer(mixed5, FUN, nsim = 2)
Предупреждающее сообщение:
In bootMer(mixed5, FUN, nsim = 2) : some bootstrap runs failed (2/2)
> result
Call:
bootMer(x = mixed5, FUN = FUN, nsim = 2)
Bootstrap Statistics :
WARNING: All values of t1* are NA
WARNING: All values of t2* are NA
WARNING: All values of t3* are NA
WARNING: All values of t4* are NA
WARNING: All values of t5* are NA
WARNING: All values of t6* are NA
-------------------------------------------------- ------ Обновление 3 ------------------------------------------ -----------
Этот код также генерирует предупреждения:
FUN <- function(fit) {
return(fixef(fit))}
result <- bootMer(mixed5, FUN, nsim = 2)
Предупреждения и результаты:
Warning message:
In bootMer(mixed5, FUN, nsim = 2) : some bootstrap runs failed (2/2)
> result
Call:
bootMer(x = mixed5, FUN = FUN, nsim = 2)
Bootstrap Statistics :
WARNING: All values of t1* are NA
WARNING: All values of t2* are NA
WARNING: All values of t3* are NA
WARNING: All values of t4* are NA
WARNING: All values of t5* are NA
WARNING: All values of t6* are NA