Eu tenho encaixar alguns modelos de efeitos mistos (particularmente modelos longitudinais) usando lme4
em R
mas gostaria de realmente dominar os modelos e o código que se passa com eles.
No entanto, antes de mergulhar com os dois pés (e comprar alguns livros), quero ter certeza de que estou aprendendo a biblioteca certa. Eu usei lme4
até agora porque achei mais fácil do que isso nlme
, mas se nlme
for melhor para meus propósitos, acho que devo usá-lo.
Tenho certeza de que nenhum dos dois é "melhor" de uma maneira simplista, mas eu valorizaria algumas opiniões ou pensamentos. Meus principais critérios são:
- fácil de usar (eu sou psicólogo por treinamento e não sou particularmente versado em estatística ou codificação, mas estou aprendendo)
- boas características para ajustar dados longitudinais (se houver uma diferença aqui, mas é para isso que eu os uso principalmente)
- bons resumos gráficos (fáceis de interpretar), mais uma vez não tenho certeza se há uma diferença aqui, mas muitas vezes produzo gráficos para pessoas ainda menos técnicas que eu, portanto, bons gráficos claros são sempre bons (gosto muito da função xyplot na estrutura () por esta razão).
Como sempre, espero que essa pergunta não seja muito vaga e agradeço antecipadamente por qualquer sabedoria!
fonte
lme4
é possível especificar uma estrutura de covariância diagonal (ou seja, efeitos aleatórios independentes) ou matrizes de covariância não estruturadas (ou seja, todas as correlações devem ser estimadas) ou matrizes de covariância parcialmente diagonal e parcialmente não estruturada para os efeitos aleatórios. Eu também acrescentaria uma terceira diferença de recursos que pode ser mais relevante para muitas situações de dados longitudinais:nlme
vamos especificar estruturas de variância-covariância para os resíduos (ou seja, autocorrelação espacial ou temporal ou heterocedasticidade),lme4
não.lme4
permite escolher diferentes estruturas de VC. Seria melhor que você o adicionasse em sua própria resposta, juntamente com outras idéias que possa ter. Eu vou votar. BTW, eu também percebi que tambémlmList()
está disponívellme4
. Parece que me lembro de alguma discussão sobre isso no R-sig-ME.Como chl apontou, a principal diferença é que tipo de estrutura de variância-covariância você pode especificar para os efeitos aleatórios. Em
lme4
você pode especificar:~ (1 | group)+ (0 + x1 | group) + (0 + x2 | group)
)~ (1 + x1 + x2 | group)
)y ~ (1 + x1 | group) + (0 + x2 | group)
, onde você estimaria uma correlação entre a interceptação aleatória e a inclinação aleatória dex1
, mas não há correlações entre a inclinação aleatória dex2
e a interceptação aleatória e entre a inclinação aleatória dex2
e a inclinação aleatória dex1
).nlme
oferece uma classe muito mais ampla de estruturas de covariância para os efeitos aleatórios. Minha experiência é que a flexibilidade delme4
é suficiente para a maioria das aplicações, no entanto.Eu também adicionaria uma terceira diferença de recursos que pode ser mais relevante para muitas situações de dados longitudinais:
nlme
vamos especificar estruturas de variância-covariância para os resíduos (ou seja, autocorrelação espacial ou temporal ou heterocedasticidade ou variabilidade dependente de covariável) noweights
argumento (cf?varFunc
), enquantolme4
apenas permite pesos anteriores fixos para as observações.Uma quarta diferença é que pode ser difícil
nlme
ajustar efeitos aleatórios cruzados (parcialmente), enquanto isso não é um problemalme4
.Você provavelmente vai ficar bem se continuar
lme4
.fonte
Outros resumiram muito bem as diferenças. Minha impressão é que
lme4
é mais adequado para conjuntos de dados em cluster, especialmente quando você precisa usar efeitos aleatórios cruzados. No entanto, para projetos de medidas repetidas (incluindo muitos projetos longitudinais),nlme
é a ferramenta, pois apenasnlme
suporta a especificação de uma estrutura de correlação para os resíduos. Você faz isso usando o argumentocorrelations
oucor
com umcorStruct
objeto. Também permite modelar a heterocedasticidade usando umvarFunc
objeto.fonte
Na verdade, existem vários pacotes em R para ajustar modelos de efeitos mistos além
lme4
enlme
. Existe um wiki interessante, dirigido pelo grupo de interesse especial R para modelos mistos, que possui uma FAQ muito boa e uma página comparando os diferentes pacotes .Quanto às minhas opiniões sobre o uso efetivo do
lme4
enlme
: eu acheilme4
geralmente mais fácil de usar devido à sua extensão direta da sintaxe básica da fórmula R. (Se você precisar trabalhar com modelos de aditivos generalizados, ogamm4
pacote estenderá essa sintaxe mais uma etapa e você terá uma boa curva de aprendizado.) Como outros já mencionaram,lme4
pode lidar com modelos generalizados (outras funções de link e distribuições de erros), enquantonlme
O foco da função de link gaussiano permite fazer algumas coisas que são muito difíceis no caso geral (especificar a estrutura de covariância e certas coisas dependentes do cálculo dos graus de liberdade, como valores-p, o último dos quais encorajo você a mudar longe de!).fonte