Temos um conjunto de dados com duas covariáveis e uma variável de agrupamento categórica e queremos saber se existem diferenças significativas entre a inclinação ou a interceptação entre as covariáveis associadas às diferentes variáveis de agrupamento. Usamos anova () e lm () para comparar os ajustes de três modelos diferentes: 1) com uma única inclinação e interceptação, 2) com diferentes interceptações para cada grupo e 3) com uma inclinação e uma interceptação para cada grupo . De acordo com o teste linear geral anova (), o segundo modelo é o mais apropriado dos três; há uma melhoria significativa no modelo, incluindo uma interceptação separada para cada grupo. No entanto, quando analisamos os intervalos de confiança de 95% para essas interceptações - todos se sobrepõem, sugerindo que não há diferenças significativas entre as interceptações. Como esses dois resultados podem ser reconciliados? Pensamos que outra maneira de interpretar os resultados do método de seleção de modelos era que deveria haver pelo menos uma diferença significativa entre as interceptações ... mas talvez isso não esteja correto?
Abaixo está o código R para replicar essa análise. Usamos a função dput () para que você possa trabalhar exatamente com os mesmos dados com os quais estamos lidando.
# Begin R Script
# > dput(data)
structure(list(Head = c(1.92, 1.93, 1.79, 1.94, 1.91, 1.88, 1.91,
1.9, 1.97, 1.97, 1.95, 1.93, 1.95, 2, 1.87, 1.88, 1.97, 1.88,
1.89, 1.86, 1.86, 1.97, 2.02, 2.04, 1.9, 1.83, 1.95, 1.87, 1.93,
1.94, 1.91, 1.96, 1.89, 1.87, 1.95, 1.86, 2.03, 1.88, 1.98, 1.97,
1.86, 2.04, 1.86, 1.92, 1.98, 1.86, 1.83, 1.93, 1.9, 1.97, 1.92,
2.04, 1.92, 1.9, 1.93, 1.96, 1.91, 2.01, 1.97, 1.96, 1.76, 1.84,
1.92, 1.96, 1.87, 2.1, 2.17, 2.1, 2.11, 2.17, 2.12, 2.06, 2.06,
2.1, 2.05, 2.07, 2.2, 2.14, 2.02, 2.08, 2.16, 2.11, 2.29, 2.08,
2.04, 2.12, 2.02, 2.22, 2.22, 2.2, 2.26, 2.15, 2, 2.24, 2.18,
2.07, 2.06, 2.18, 2.14, 2.13, 2.2, 2.1, 2.13, 2.15, 2.25, 2.14,
2.07, 1.98, 2.16, 2.11, 2.21, 2.18, 2.13, 2.06, 2.21, 2.08, 1.88,
1.81, 1.87, 1.88, 1.87, 1.79, 1.99, 1.87, 1.95, 1.91, 1.99, 1.85,
2.03, 1.88, 1.88, 1.87, 1.85, 1.94, 1.98, 2.01, 1.82, 1.85, 1.75,
1.95, 1.92, 1.91, 1.98, 1.92, 1.96, 1.9, 1.86, 1.97, 2.06, 1.86,
1.91, 2.01, 1.73, 1.97, 1.94, 1.81, 1.86, 1.99, 1.96, 1.94, 1.85,
1.91, 1.96, 1.9, 1.98, 1.89, 1.88, 1.95, 1.9, 1.94, NA, 1.84,
1.83, 1.84, 1.96, 1.74, 1.91, 1.84, 1.88, 1.83, 1.93, 1.78, 1.88,
1.93, 2.15, 2.16, 2.23, 2.09, 2.36, 2.31, 2.25, 2.29, 2.3, 2.04,
2.22, 2.19, 2.25, 2.31, 2.3, 2.28, 2.25, 2.15, 2.29, 2.24, 2.34,
2.2, 2.24, 2.17, 2.26, 2.18, 2.17, 2.34, 2.23, 2.36, 2.31, 2.13,
2.2, 2.27, 2.27, 2.2, 2.34, 2.12, 2.26, 2.18, 2.31, 2.24, 2.26,
2.15, 2.29, 2.14, 2.25, 2.31, 2.13, 2.09, 2.24, 2.26, 2.26, 2.21,
2.25, 2.29, 2.15, 2.2, 2.18, 2.16, 2.14, 2.26, 2.22, 2.12, 2.12,
2.16, 2.27, 2.17, 2.27, 2.17, 2.3, 2.25, 2.17, 2.27, 2.06, 2.13,
2.11, 2.11, 1.97, 2.09, 2.06, 2.11, 2.09, 2.08, 2.17, 2.12, 2.13,
1.99, 2.08, 2.01, 1.97, 1.97, 2.09, 1.94, 2.06, 2.09, 2.04, 2,
2.14, 2.07, 1.98, 2, 2.19, 2.12, 2.06, 2, 2.02, 2.16, 2.1, 1.97,
1.97, 2.1, 2.02, 1.99, 2.13, 2.05, 2.05, 2.16, 2.02, 2.02, 2.08,
1.98, 2.04, 2.02, 2.07, 2.02, 2.02, 2.02), Site = structure(c(2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L,
6L, 6L, 6L, 6L, 6L, 6L, 6L), .Label = c("ANZ", "BC", "DV", "MC",
"RB", "WW"), class = "factor"), Leg = c(2.38, 2.45, 2.22, 2.23,
2.26, 2.32, 2.28, 2.17, 2.39, 2.27, 2.42, 2.33, 2.31, 2.32, 2.25,
2.27, 2.38, 2.28, 2.33, 2.24, 2.21, 2.22, 2.42, 2.23, 2.36, 2.2,
2.28, 2.23, 2.33, 2.35, 2.36, 2.26, 2.26, 2.3, 2.23, 2.31, 2.27,
2.23, 2.37, 2.27, 2.26, 2.3, 2.33, 2.34, 2.27, 2.4, 2.22, 2.25,
2.28, 2.33, 2.26, 2.32, 2.29, 2.31, 2.37, 2.24, 2.26, 2.36, 2.32,
2.32, 2.15, 2.2, 2.29, 2.37, 2.26, 2.24, 2.23, 2.24, 2.26, 2.18,
2.11, 2.23, 2.31, 2.25, 2.15, 2.3, 2.33, 2.35, 2.21, 2.36, 2.27,
2.24, 2.35, 2.24, 2.33, 2.32, 2.24, 2.35, 2.36, 2.39, 2.28, 2.36,
2.19, 2.27, 2.39, 2.23, 2.29, 2.32, 2.3, 2.32, NA, 2.25, 2.24,
2.21, 2.37, 2.21, 2.21, 2.27, 2.27, 2.26, 2.19, 2.2, 2.25, 2.25,
2.25, NA, 2.24, 2.17, 2.2, 2.2, 2.18, 2.14, 2.17, 2.27, 2.28,
2.27, 2.29, 2.23, 2.25, 2.33, 2.22, 2.29, 2.19, 2.15, 2.24, 2.24,
2.26, 2.25, 2.09, 2.27, 2.18, 2.2, 2.25, 2.24, 2.18, 2.3, 2.26,
2.18, 2.27, 2.12, 2.18, 2.33, 2.13, 2.28, 2.23, 2.16, 2.2, 2.3,
2.31, 2.18, 2.33, 2.29, 2.26, 2.21, 2.22, 2.27, 2.32, 2.24, 2.25,
2.17, 2.2, 2.26, 2.27, 2.24, 2.25, 2.09, 2.25, 2.21, 2.24, 2.21,
2.22, 2.13, 2.24, 2.21, 2.3, 2.34, 2.35, 2.32, 2.46, 2.43, 2.42,
2.41, 2.32, 2.25, 2.33, 2.19, 2.45, 2.32, 2.4, 2.38, 2.35, 2.39,
2.29, 2.35, 2.43, 2.29, 2.33, 2.31, 2.28, 2.38, 2.32, 2.43, 2.27,
2.4, 2.37, 2.27, 2.41, 2.32, 2.38, 2.23, 2.33, 2.21, 2.34, 2.19,
2.34, 2.35, 2.35, 2.31, 2.33, 2.41, 2.53, 2.39, 2.17, 2.16, 2.38,
2.34, 2.33, 2.33, 2.29, 2.43, 2.28, 2.34, 2.38, 2.3, 2.29, 2.43,
2.36, 2.24, 2.35, 2.38, 2.4, 2.36, 2.42, 2.28, 2.45, 2.33, 2.32,
2.33, 2.31, 2.44, 2.37, 2.4, 2.35, 2.33, 2.31, 2.36, 2.43, 2.38,
2.4, 2.38, 2.46, 2.33, 2.38, 2.23, 2.24, 2.39, 2.36, 2.19, 2.32,
2.37, 2.39, 2.34, 2.39, 2.23, 2.25, 2.29, 2.39, 2.35, NA, 2.28,
2.35, 2.38, 2.34, 2.17, 2.29, NA, 2.26, NA, NA, NA, 2.24, 2.33,
2.23, 2.28, 2.29, 2.23, 2.2, 2.27, 2.31, 2.31, 2.26, 2.28)), .Names = c("Head",
"Site", "Leg"), class = "data.frame", row.names = c(NA, -312L
))
# plot graph
library(ggplot2)
qplot(Head, Leg,
color=Site,
data=data) +
stat_smooth(method="lm", alpha=0.2) +
theme_bw()
# create linear models
lm.1 <- lm(Leg ~ Head, data)
lm.2 <- lm(Leg ~ Head + Site, data)
lm.3 <- lm(Leg ~ Head*Site, data)
# evaluate linear models
anova(lm.1, lm.2, lm.3)
anova(lm.1, lm.2)
# > anova(lm.1, lm.2)
# Analysis of Variance Table
# Model 1: Leg.3.1 ~ Head.W1
# Model 2: Leg.3.1 ~ Head.W1 + Site
# Res.Df RSS Df Sum of Sq F Pr(>F)
# 1 302 1.25589
# 2 297 0.91332 5 0.34257 22.28 < 2.2e-16 ***
# examining the multiple-intercepts model (lm.2)
summary(lm.2)
coef(lm.2)
confint(lm.2)
# extracting the intercepts
intercepts <- coef(lm.2)[c(1, 3:7)]
intercepts.1 <- intercepts[1]
intercepts <- intercepts.1 + intercepts
intercepts[1] <- intercepts.1
intercepts
# extracting the confidence intervals
ci <- confint(lm.2)[c(1, 3:7),]
ci[2:6,] <- ci[2:6,] + confint(lm.2)[1,]
ci[,1]
# putting everything together in a dataframe
labels <- c("ANZ", "BC", "DV", "MC", "RB", "WW")
ci.dataframe <- data.frame(Site=labels, Intercept=intercepts, CI.low = ci[,1], CI.high = ci[,2])
ci.dataframe
# plotting intercepts and 95% CI
qplot(Site, Intercept, geom=c("point", "errorbar"), ymin=CI.low, ymax=CI.high, data=ci.dataframe, ylab="Intercept & 95% CI")
Apenas para resumir - o problema é que os ICs de 95% para as interceptações se sobrepõem, mas o método de seleção de modelo sugere que o melhor modelo é aquele que se encaixa em interceptações diferentes. Portanto, estou inclinado a pensar que nosso método de seleção de modelos é defeituoso ou que os ICs de 95% das estimativas de interceptação foram calculados incorretamente. Qualquer pensamento seria muito apreciado!
fonte
Respostas:
Lembre-se de que a diferença entre significativo e não significativo não é (sempre) estatisticamente significativa
Agora, mais ao ponto de sua pergunta, o modelo 1 é chamado de regressão agrupada e o modelo 2 regressão não agrupada. Como você observou, na regressão agrupada, você assume que os grupos não são relevantes, o que significa que a variação entre os grupos é definida como zero.
Na regressão não agrupada, com uma interceptação por grupo, você define a variação como infinito.
Em geral, eu preferiria uma solução intermediária, que é um modelo hierárquico ou regressão agrupada parcial (ou estimador de retração). Você pode ajustar esse modelo no R com o pacote lmer4.
Finalmente, dê uma olhada neste artigo de Gelman , no qual ele argumenta por que os modelos hierárquicos ajudam nos problemas de múltiplas comparações (no seu caso, os coeficientes por grupo são diferentes? Como podemos corrigir um valor-p para comparações múltiplas).
Por exemplo, no seu caso,
Se você deseja ajustar uma interceptação variável, uma inclinação variável (o terceiro modelo), basta executar
Depois, você pode dar uma olhada na variação do grupo e verificar se ela é diferente de zero (a regressão agrupada não é o melhor modelo) e longe do infinito (regressão não agrupada).
update: Após os comentários (veja abaixo), decidi expandir minha resposta.
O objetivo de um modelo hierárquico, especialmente em casos como esse, é modelar a variação por grupos (neste caso, Sites). Portanto, em vez de executar uma ANOVA para testar se um modelo é diferente de outro, eu daria uma olhada nas previsões do meu modelo e veria se as previsões por grupo são melhores nos modelos hierárquicos versus na regressão agrupada (regressão clássica) .
Agora, corri minhas sugestões acima e descobri que
Retornaria zero como estimativas de inclinação variável (efeito variável da cabeça por local). então eu corri
E eu tenho estimativas diferentes de zero para o efeito variável da cabeça. Ainda não sei por que isso aconteceu, já que foi a primeira vez que encontrei isso. Sinto muito por esse problema, mas, em minha defesa, apenas segui a especificação descrita na ajuda da função lmer. (Veja o exemplo no estudo de suspensão de dados). Vou tentar entender o que está acontecendo e relatarei aqui quando (se) entender o que está acontecendo.
fonte
Random effects: Groups Name Variance Std.Dev. Site (Intercept) 0.0019094 0.043697 Residual 0.0030755 0.055457
(0+head|site)
Antes de qualquer intervenção do moderador, você pode olhar
Estes são gráficos de componentes + residuais (residuais parciais)
fonte
anova()
comparaçãolm.1
comlm.2
realiza um teste F ( en.wikipedia.org/wiki/F-test#Regression_problems ), que basicamente compara a redução na soma residual de quadrados entre dois modelos aninhados à soma residual de quadrados do modelo com mais termos. Portanto, não leva especificamente em consideração se os coeficientes de regressão individuais são estatisticamente significativos. Como o @Manoel, acho os artigos e livros de Andrew Gelman muito úteis, especialmente "Análise de Dados Utilizando Regressão e Modelos Hierárquicos".Eu acho, entre outras coisas, que você está calculando os intervalos de confiança errados. Aqui estão duas maneiras de ver isso:
(1) diferenças de cada site em relação ao site da linha de base (ANZ) [você também pode calcular diferenças da média geral alterando para contrastes de soma e zero
ou (2) todas as comparações pareadas (não gosto dessa abordagem, mas é comum):
fonte
Error in as.data.frame.default(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors) : cannot coerce class 'c("confint.glht", "glht")' into a data.frame
Observe que todos os seus
Head
valores estão no intervalo de 1,7 a 2,4, enquanto as intercepções estão tentando estimar oLeg
valor emHead=0
. Esta é uma grande extrapolação, por isso há muita incerteza. Se você centralizar osHead
valores e repetir essa análise, os intervalos de confiança ficarão muito mais apertados.Além disso, a sobreposição de intervalos de confiança de 95% não implica falta de diferença estatisticamente significante. De fato, para dois grupos, os intervalos de confiança de 84% não sobrepostos aproximam-se das diferenças significativas no nível de 5%. Obviamente, devido a vários testes, isso não funciona muito bem com vários grupos.
fonte
Além das outras respostas, aqui estão alguns links da Unidade de Consultoria Estatística da Cornell que são relevantes para a sobreposição de intervalos de confiança e servem como um lembrete curto e bom do que eles fazem e não significam
http://www.cscu.cornell.edu/news/statnews/stnews73.pdf http://www.cscu.cornell.edu/news/statnews/Stnews73insert.pdf
Aqui está o ponto principal:
Se duas estatísticas têm intervalos de confiança não sobrepostos, eles são necessariamente significativamente diferentes, mas se eles têm intervalos de confiança sobrepostos, não é necessariamente verdade que eles não são significativamente diferentes.
Aqui está o texto relevante do primeiro link:
Aqui estão as informações do outro link:
fonte