Estou fazendo um estudo de simulação que requer estimativas de bootstrapping obtidas de um modelo misto linear generalizado (na verdade, o produto de duas estimativas para efeitos fixos, um de um GLMM e outro de um LMM). Para fazer o estudo, seria necessário cerca de 1000 simulações com 1000 ou 1500 replicações de autoinicialização por vez. Isso leva uma quantidade significativa de tempo no meu computador (muitos dias).
How can I speed up the computation of these fixed effects?
Para ser mais específico, tenho sujeitos que são medidos repetidamente de três maneiras, dando origem às variáveis X, M e Y, onde X e M são contínuos e Y é binário. Temos duas equações de regressão que Y é a variável contínua latente subjacente para e os erros não são iid. A estatística que queremos inicializar é . Assim, cada replicação de autoinicialização requer o ajuste de um LMM e um GLMM. Meu código R é (usando lme4)Y * = β 0 + β 1 X + β 2 M + ε 2 * Y α 1 β 2
stat=function(dat){
a=fixef(lmer(M~X+(X|person),data=dat))["X"]
b=fixef(glmer(Y~X+M+(X+M|person),data=dat,family="binomial"))["M"]
return(a*b)
}
Percebo que obtenho a mesma estimativa para se apenas o ajustar como modelo linear, economizando tempo, mas o mesmo truque não funciona para .β 2
Eu só preciso comprar um computador mais rápido? :)
fonte
Rprof
.Respostas:
Deve ajudar a especificar valores iniciais, embora seja difícil saber quanto. Ao fazer a simulação e a inicialização, você deve conhecer os valores "verdadeiros" ou as estimativas sem inicialização ou ambas. Tente usar aqueles na
start =
opção deglmer
.Você também pode considerar se as tolerâncias para declarar convergência são mais rigorosas do que você precisa. Não estou claro como alterá-los da
lme4
documentação.fonte
Duas outras possibilidades também devem ser consideradas antes de comprar um novo computador.
fonte
Poderia ser um computador mais rápido. Mas aqui está um truque que pode funcionar.
Deixe-me saber se preciso explicar algo um pouco mais claro
fonte