ANOVA e regressão linear são equivalentes quando os dois modelos testam contra as mesmas hipóteses e usam uma codificação idêntica. Os modelos diferem em seu objetivo básico: a ANOVA se preocupa principalmente em apresentar diferenças entre as médias das categorias nos dados, enquanto a regressão linear se preocupa principalmente em estimar uma resposta média da amostra e um associado .σ2
Um tanto aforicamente, pode-se descrever a ANOVA como uma regressão com variáveis fictícias. Podemos ver facilmente que esse é o caso da regressão simples com variáveis categóricas. Uma variável categórica será codificada como uma matriz indicadora (uma matriz que 0/1
depende se um sujeito faz parte de um determinado grupo ou não) e, em seguida, usada diretamente para a solução do sistema linear descrita por uma regressão linear. Vamos ver um exemplo com 5 grupos. Por uma questão de argumento, assumirei que a média de group1
igual a 1, a média de group2
igual a 2, ... e a média de group5
igual a 5. (eu uso MATLAB, mas exatamente a mesma coisa é equivalente em R.)
rng(123); % Fix the seed
X = randi(5,100,1); % Generate 100 random integer U[1,5]
Y = X + randn(100,1); % Generate my response sample
Xcat = categorical(X); % Treat the integers are categories
% One-way ANOVA
[anovaPval,anovatab,stats] = anova1(Y,Xcat);
% Linear regression
fitObj = fitlm(Xcat,Y);
% Get the group means from the ANOVA
ANOVAgroupMeans = stats.means
% ANOVAgroupMeans =
% 1.0953 1.8421 2.7350 4.2321 5.0517
% Get the beta coefficients from the linear regression
LRbetas = [fitObj.Coefficients.Estimate']
% LRbetas =
% 1.0953 0.7468 1.6398 3.1368 3.9565
% Rescale the betas according the intercept
scaledLRbetas = [LRbetas(1) LRbetas(1)+LRbetas(2:5)]
% scaledLRbetas =
% 1.0953 1.8421 2.7350 4.2321 5.0517
% Check if the two results are numerically equivalent
abs(max( scaledLRbetas - ANOVAgroupMeans))
% ans =
% 2.6645e-15
Como pode ser visto neste cenário, os resultados foram exatamente os mesmos. A diferença numérica diminuta se deve ao fato de o projeto não estar perfeitamente equilibrado, bem como ao procedimento de estimativa subjacente; a ANOVA acumula erros numéricos um pouco mais agressivamente. A esse respeito, ajustamos um intercepto LRbetas(1)
; poderíamos ajustar um modelo sem interceptação, mas isso não seria uma regressão linear "padrão". (Os resultados estariam ainda mais próximos da ANOVA nesse caso.)
F
abs( fitObj.anova.F(1) - anovatab{2,5} )
% ans =
% 2.9132e-13
Isso ocorre porque os procedimentos testam a mesma hipótese, mas com palavras diferentes: a ANOVA verificará qualitativamente se " a proporção é alta o suficiente para sugerir que nenhum agrupamento é implausível " enquanto a regressão linear verificará qualitativamente se " a proporção é alta o suficiente para sugerir apenas uma interceptação modelo é possivelmente inadequado ".
(Essa é uma interpretação um tanto livre da " possibilidade de ver um valor igual ou superior ao observado sob a hipótese nula " e não pretende ser uma definição de livro-texto.)
β, etc. Claramente quando alguém começa a adicionar múltiplas covariáveis em seu modelo de regressão, uma ANOVA unidirecional simples não tem uma equivalência direta. Nesse caso, aumentamos as informações usadas para calcular a resposta média da regressão linear com informações que não estão diretamente disponíveis para uma ANOVA de sentido único. Acredito que se pode re-expressar as coisas em termos de ANOVA mais uma vez, mas é principalmente um exercício acadêmico.
Um artigo interessante sobre o assunto é o artigo de Gelman, de 2005, intitulado: Analysis of Variance - Por que é mais importante do que nunca . Alguns pontos importantes levantados; Não sou totalmente favorável ao artigo (acho que pessoalmente me alino muito mais à visão de McCullach), mas pode ser uma leitura construtiva.
Como nota final: o enredo engrossa quando você tem modelos de efeitos mistos . Lá você tem conceitos diferentes sobre o que pode ser considerado um incômodo ou informações reais sobre o agrupamento de seus dados. Essas questões estão fora do escopo desta questão, mas acho que merecem um aceno.
Deixe-me colocar um pouco de cor na idéia de que o OLS com regressores categóricos ( codificados por modelos) é equivalente aos fatores da ANOVA. Nos dois casos, existem níveis (ou grupos no caso da ANOVA).
Na regressão OLS, é mais comum também ter variáveis contínuas nos regressores. Eles modificam logicamente o relacionamento no modelo de ajuste entre as variáveis categóricas e a variável dependente (CD). Mas não ao ponto de tornar o paralelo irreconhecível.
Com base no
mtcars
conjunto de dados, podemos primeiro visualizar o modelolm(mpg ~ wt + as.factor(cyl), data = mtcars)
como a inclinação determinada pela variável contínuawt
(peso) e as diferentes intercepções projetando o efeito da variável categóricacylinder
(quatro, seis ou oito cilindros). É esta última parte que forma um paralelo com uma ANOVA unidirecional.Vamos vê-lo graficamente na subparcela à direita (as três subparcelas à esquerda estão incluídas para comparação lado a lado com o modelo ANOVA discutido imediatamente depois):
Cada mecanismo de cilindro é codificado por cores, e a distância entre as linhas ajustadas com diferentes interceptações e a nuvem de dados é equivalente à variação dentro do grupo em uma ANOVA. Observe que as interceptações no modelo OLS com uma variável contínua (
weight
) não são matematicamente iguais ao valor das diferentes médias dentro do grupo na ANOVA, devido ao efeitoweight
e às diferentes matrizes do modelo (veja abaixo): a médiampg
para carros de 4 cilindros, por exemplo, émean(mtcars$mpg[mtcars$cyl==4]) #[1] 26.66364
, ao passo que o OLS intercepção "linha de base" (reflectindo por convençãocyl==4
(menor para o maior numerais ordenação em R)) é marcadamente diferente:summary(fit)$coef[1] #[1] 33.99079
. A inclinação das linhas é o coeficiente para a variável contínuaweight
.Se você tentar suprimir o efeito de
weight
endireitar mentalmente essas linhas e retorná-las à linha horizontal, você terminará com o gráfico ANOVA do modeloaov(mtcars$mpg ~ as.factor(mtcars$cyl))
nas três sub plotagens à esquerda. Oweight
regressor agora está fora, mas a relação dos pontos para as diferentes interceptações é praticamente preservada - estamos simplesmente girando no sentido anti-horário e espalhando as plotagens anteriormente sobrepostas para cada nível diferente (novamente, apenas como um dispositivo visual para "ver" a conexão; não como uma igualdade matemática, pois estamos comparando dois modelos diferentes!).cylinder
E é através da soma desses segmentos verticais que podemos calcular manualmente os resíduos:
O resultado:
SumSq = 301.2626
eTSS - SumSq = 824.7846
. Comparado a:Exatamente o mesmo resultado que testar com uma ANOVA o modelo linear com apenas o categórico
cylinder
como regressor:O que vemos, então, é que os resíduos - a parte da variação total não explicada pelo modelo - e a variação são os mesmos, independentemente de você chamar um OLS do tipo
lm(DV ~ factors)
ou uma ANOVA (aov(DV ~ factors)
): quando removemos o valor modelo de variáveis contínuas, acabamos com um sistema idêntico. Da mesma forma, quando avaliamos os modelos globalmente ou como uma ANOVA abrangente (não nível por nível), obtemos naturalmente o mesmo valor-pF-statistic: 39.7 on 2 and 29 DF, p-value: 4.979e-09
.Isso não significa que o teste de níveis individuais produzirá valores p idênticos. No caso do OLS, podemos invocar
summary(fit)
e obter:p adjusted
"), resultando em uma saída completamente diferente:Por fim, nada é mais tranquilizador do que dar uma olhada no motor sob o capô, que não é outro senão as matrizes do modelo e as projeções no espaço da coluna. Estes são realmente bastante simples no caso de uma ANOVA:
cyl 4
cyl 6
cyl 8
Por outro lado, a matriz do modelo para uma regressão OLS é:
weight
displacement
lm(mpg ~ wt + as.factor(cyl), data = mtcars)
weight
weight
cyl 4
cyl 4
cyl 6
cyl 8
fonte
Antoni Parellada e usεr11852 tiveram uma resposta muito boa. Vou abordar sua pergunta para codificar a perspectiva com
R
.De fato, podemos
aov
funcionarR
pode ser usado da mesma forma quelm
. Aqui estão alguns exemplos.Como você pode ver, não apenas podemos obter coeficientes do modelo ANOVA, mas também podemos usá-lo para previsão, assim como o modelo linear.
Se verificarmos o arquivo de ajuda quanto à
aov
função, ele dizfonte
Se pegarmos todas as entradas de dados e as organizarmos em uma única coluna Y, com o restante das colunas sendo variáveis indicadoras 1 {com dados é elemento da j-ésima coluna no arranjo original da anova}, tomando uma regressão linear simples de Y Em qualquer uma das outras colunas (por exemplo, coluna B), você deve obter a mesma estatística de teste DF, SS, MS e F do seu problema ANOVA.
Assim, a ANOVA pode ser 'tratada como' Regressão Linear escrevendo os dados com variáveis binárias. Observe também que o coeficiente de regressão para, digamos, uma regressão de Y em B deve ser o mesmo que a média. da coluna B, calculada com os dados originais.
fonte