Em R, como especifico o modelo lmer sem efeito fixo global? Por exemplo, se eu disser algo como
lmer(y ~ (1 | group) + (0 + x | group), data = my_df)
o modelo ajustado será
Como encaixo o modelo
?
r
mixed-model
lme4-nlme
Leo
fonte
fonte
lmer(y~0+(1|group)+(0+x|group))
funcionaria, mas isso gera um erro.y
primeiro :)Respostas:
Como o @Mike Lawrence mencionou, a coisa óbvia a ser feita ao definir um modelo sem efeitos fixos é algo na forma de:
o que é realmente bastante direto; não se define interceptação ou matriz X. A razão básica pela qual isso não funciona é que, como o @maxTC apontou, "o pacote lme4 é dedicado apenas a modelos mistos ".
Em particular o que lmer () montagem faz é calcular o desvio perfilado, resolvendo a regressão dos mínimos quadrados penalizado entre o e , bem como os efeitos aleatórios esféricas e (Eq. (11), Ref. (2) Computacionalmente, esse procedimento de otimização calcula a decomposição de Cholesky do sistema correspondente, explorando a estrutura de blocos do sistema (Eq. (5), Ref. (1)). Definir nenhum efeito fixo global distorce praticamente essa estrutura de bloco de uma maneira que o código de lmer () não pode suportar. Entre outras coisas, o valor condicional esperado de é baseado em , mas está resolvido emy^ y u 0 u β^ β^ pergunta a solução de um sistema matricial que nunca existiu (a matriz na Ref. (1) ou na Ref. (2)). Então você recebe um erro como:RXX LX
Afinal, não havia nada a resolver em primeiro lugar.
Supondo que você não queira reescrever a função de custo de desvio de perfil lmer (), a solução mais fácil é baseada no axioma do CS-101: entrada de lixo, saída de lixo .
Então, o que fazemos é definir uma variável que é apenas ruído; como antes, lmer () é instruído a não usar interceptação fixa, mas apenas a matriz X nos definiu (nesse caso, a matriz de coluna única Garbage). Essa variável de ruído gaussiana extra estará na expectativa não correlacionada com nossos erros de medição de amostra, bem como com sua variação de efeitos aleatórios. Escusado será dizer que quanto mais estrutura seu modelo tiver, menor a probabilidade de obter correlações aleatórias indesejadas, mas estatisticamente significativas.Garbage
Portanto, o lmer () tem uma variável placebo (matriz) para jogar, e você espera que o associado seja zero e você não precisou normalizar seus dados de nenhuma maneira (centralizando-os, branqueando-os etc.) . Provavelmente, tentar uma inicialização aleatória da matriz do placebo também não será prejudicial. Uma nota final para o "Lixo": usar ruído gaussiano não foi "acidental"; possui a maior entropia entre todas as variáveis aleatórias de igual variação, portanto, a menor chance de fornecer um ganho de informação.X β X
Claramente, isso é mais um truque computacional do que uma solução, mas permite que o usuário especifique efetivamente um modelo mais profundo sem efeito fixo global. Desculpas por esperar em torno das duas referências. Em geral, acho que a Ref. (1) é a melhor aposta para qualquer um perceber o que lmer () está fazendo, mas a Ref. (2) está mais próxima do espírito do código real.
Aqui está um pouco do código que mostra a ideia acima:
Referências:
fonte