R: Regressão logística binária de modelo misto com bootstrap usando bootMer () do novo pacote lme4
Eu quero usar o novo recurso bootMer () do novo pacote lme4 (a versão do desenvolvedor atualmente). Eu sou novo em R e não sei qual função devo escrever para o seu argumento FUN. Ele diz que precisa de um vetor numérico, mas não tenho idéia do que essa função irá realizar. Então eu tenho uma fórmula de modelo misto que é convertida para o bootMer () e tem um número de replicações. Então eu não sei o que essa função externa faz? É suposto ser um modelo para métodos de bootstrapping? Não são métodos de bootstrap já implementados no bootMer? Então, por que eles precisam de uma "estatística de interesse" externa? E qual estatística de interesse devo usar?
A seguinte sintaxe é adequada para trabalhar? R mantém erro gerando que o DIVERTIMENTO deva ser um vetor numérico. Eu não sei como separar as estimativas do "ajuste" e até mesmo devo fazer isso em primeiro lugar? Eu posso apenas dizer que estou perdido com esse argumento "DIVERTIDO". Também não sei se devo passar a fórmula glimmer () de modelo misto usando a variável "Mixed5" ou devo passar alguns ponteiros e referências? Eu vejo nos exemplos que X (o primeiro argumento de bootMer () é um objeto * lmer (). Eu queria escrever * Mixed5, mas ele apresentou um erro.
Muito Obrigado.
Meu código é:
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
E o erro:
Error in bootMer(mixed5, FUN, nsim = 3, seed = NULL, use.u = FALSE, type = c("parametric"), :
bootMer currently only handles functions that return numeric vectors
-------------------------------------------------- ------ Atualização ------------------------------------------- ----------
Eu editei o código como o que Ben instruiu. O código correu muito bem, mas os SEs e Biases foram todos zero. Você também sabe como extrair valores de P desta saída (estranho para mim)? Devo usar o pacote mixed () do afex?
Meu código revisado:
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
-------------------------------------------------- ------ Atualização 2 ------------------------------------------ -----------
Eu também tentei o seguinte, mas o código gerou avisos e não deu nenhum resultado.
(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)
Mensagem de aviso:
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
-------------------------------------------------- ------ Atualização 3 ------------------------------------------ -----------
Este código também gerou avisos:
FUN <- function(fit) {
return(fixef(fit))}
result <- bootMer(mixed5, FUN, nsim = 2)
Os avisos e resultados:
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