Espero que esta seja uma pergunta que alguém aqui possa responder sobre a natureza da decomposição de somas de quadrados de um modelo de efeitos mistos adequado lmer
(do pacote lme4 R).
Primeiramente, devo dizer que estou ciente da controvérsia ao usar essa abordagem e, na prática, seria mais provável que eu usasse um LRT com inicialização para comparar modelos (como sugerido por Faraway, 2006). No entanto, estou intrigado com a forma de replicar os resultados e, por minha própria sanidade, pensei em perguntar aqui.
Basicamente, estou começando a entender o uso de modelos de efeitos mistos adequados ao lme4
pacote. Eu sei que você pode usar o anova()
comando para fornecer um resumo do teste seqüencial dos efeitos fixos no modelo. Até onde eu sei, isso é o que Faraway (2006) chama de abordagem dos quadrados médios esperados. O que eu quero saber é como são calculadas as somas dos quadrados?
Eu sei que eu poderia pegar os valores estimados de um modelo específico (usando coef()
), supor que eles são fixos e, em seguida, fazer testes usando a soma dos quadrados dos resíduos do modelo com e sem os fatores de interesse. Isso é bom para um modelo que contém um único fator dentro do assunto. No entanto, ao implementar um design de plotagem dividida, o valor da soma dos quadrados que recebo é equivalente ao valor produzido por R usando aov()
uma Error()
designação apropriada . No entanto, isso não é o mesmo que a soma dos quadrados produzidos pelo anova()
comando no objeto de modelo, apesar do fato de que as relações F são as mesmas.
É claro que isso faz todo sentido, pois não há necessidade de Error()
estratos em um modelo misto. No entanto, isso deve significar que as somas de quadrados são penalizadas de alguma forma em um modelo misto, a fim de fornecer índices F apropriados. Como isso é alcançado? E como o modelo de alguma forma corrige a soma dos quadrados entre as parcelas, mas não corrige a soma dos quadrados entre as parcelas. Evidentemente, isso é algo que é necessário para uma ANOVA de parcelas subdivididas clássica que foi alcançada designando diferentes valores de erro para os diferentes efeitos, então como um modelo de efeito misto permite isso?
Basicamente, eu quero poder replicar os resultados do anova()
comando aplicado a um objeto de modelo mais antigo para verificar os resultados e meu entendimento; no entanto, no momento, posso conseguir isso para um design normal dentro do assunto, mas não para a divisão de divisão. desenho de enredo e não consigo descobrir por que esse é o caso.
Como um exemplo:
library(faraway)
library(lme4)
data(irrigation)
anova(lmer(yield ~ irrigation + variety + (1|field), data = irrigation))
Analysis of Variance Table
Df Sum Sq Mean Sq F value
irrigation 3 1.6605 0.5535 0.3882
variety 1 2.2500 2.2500 1.5782
summary(aov(yield ~ irrigation + variety + Error(field/irrigation), data = irrigation))
Error: field
Df Sum Sq Mean Sq F value Pr(>F)
irrigation 3 40.19 13.40 0.388 0.769
Residuals 4 138.03 34.51
Error: Within
Df Sum Sq Mean Sq F value Pr(>F)
variety 1 2.25 2.250 1.578 0.249
Residuals 7 9.98 1.426
Como pode ser visto acima, todos os índices F concordam. As somas de quadrados por variedade também concordam. No entanto, as somas de quadrados para irrigação não concordam, no entanto, parece que a produção mais recente é escalada. Então, o que o comando anova () realmente faz?
fonte
mixed()
partir daafex
qual oferece o que você deseja (viamethod = "PB"
). E como você obviamente fez alguns testes com dados de brinquedos, seria definitivamente útil se você pudesse mostrar essas equivalências com os dados e o código (portanto, sem +1).Respostas:
Use a fonte, Luke. Podemos espiar dentro da função ANOVA fazendo
getAnywhere(anova.Mermod)
. A primeira parte dessa função é comparar dois modelos diferentes. A anova nos efeitos fixos vem no grandeelse
bloco no segundo tempo:object
é a saída final. Começamos a calcular a soma dos quadrados na linha 5:ss <- as.vector ...
O código multiplica os parâmetros fixos (inbeta
) por uma matriz triangular superior; depois esquadrinha cada termo. Aqui está a matriz triangular superior para o exemplo de irrigação. Cada linha corresponde a um dos cinco parâmetros de efeitos fixos (interceptação, 3 graus de liberdade para irrigação, 1 df para variedade).A primeira linha fornece a soma dos quadrados para a interceptação e a última fornece o SS para o efeito de variedade dentro dos campos. As linhas 2-4 envolvem apenas os 3 parâmetros para os níveis de irrigação; portanto, a pré-multiplicação fornece três partes do SS para irrigação.
Essas peças não são interessantes por si só, pois vêm do contraste padrão de tratamento em R, mas na linha
ss <- unlist(lapply(split ....
Bates recolhe bits de somas de quadrados de acordo com o número de níveis e a quais fatores eles se referem. Há muita contabilidade acontecendo aqui. Também obtemos os graus de liberdade (que são 3 para irrigação). Então, ele obtém os quadrados médios que aparecem na impressão deanova
. Finalmente, ele divide todos os quadrados de suas médias pela variação residual dentro dos grupossigma(object)^2
,.lmer
aov
lmer
RX
Assintoticamente, as estimativas dos efeitos fixos têm distribuição:
Observe que você não teria as mesmas estatísticas F se os dados estivessem desequilibrados. Você também não obteria as mesmas estatísticas F se tivesse usado ML em vez de REML.
aov
Curiosamente, Bates e Pinheiro recomendam o uso da ANOVA para ajustar dois modelos e fazer um teste de razão de verossimilhança. Este último tende a ser anti-conservador.
Como você pode ver, as somas de quadrados para os parâmetros de irrigação agora também contêm alguns dos
variety
efeitos.fonte