Desejo realizar uma análise ANCOVA de dados relativos à densidade de epífitas de plantas. A princípio gostaria de saber se existe alguma diferença na densidade das plantas entre duas encostas, uma N e uma S, mas tenho outros dados como altitude, abertura do dossel e altura da planta hospedeira. Eu sei que minha covariável teria que ser as duas encostas (N e S). Eu construí este modelo que roda em R e embora não tenha ideia se funciona bem. Também gostaria de saber qual é a diferença se eu usar o símbolo +
ou *
.
model1 <- aov(density~slope+altitude+canopy+height) summary(model1) model1
Comentários
- + irá calcular apenas os efeitos principais, * irá estimar as interações entre fatores conectados com *. Os frameworks ANCOVA geralmente estimam apenas um efeito principal do fator contínuo, mas interações entre todos os fatores agrupados.
Resposta
A ferramenta básica para isso é lm
; observe que aov
é um wrapper para lm
.
Em particular, se você tiver alguma variável de agrupamento (fator), $ g $ , e uma covariável contínua $ x $ , o modelo y ~ x + g
se ajustaria a um modelo ANCOVA de efeitos principais, enquanto y ~ x * g
se encaixaria em um modelo que inclui interação com a covariável. aov
usará as mesmas fórmulas.
Preste atenção especial ao Note
na ajuda em aov
.
Quanto a +
vs *
, russellpierce praticamente cobre isso, mas eu recomendo que você olhe ?lm
e ?formula
e mais especialmente a seção 11.1 do manual Uma introdução ao R que vem com o R (ou você pode encontrá-lo on-line, caso não tenha descoberto como encontrá-lo em seu computador; mais facilmente, isso envolve encontrar o menu suspenso “Ajuda” em R ou RStudio).
Comentários
Resposta
Eu recomendo obter e ler Descobrindo estatísticas usando R por campo. Ele tem uma boa seção sobre ANCOVA.
Para executar ANCOVA em R, carregue os seguintes pacotes:
car compute.es effects ggplot2 multcomp pastecs WRS
Se você estiver usando lm
ou aov
(eu uso aov
) certifique-se de definir os contrastes usando “contrastes “função antes de fazer aov
ou lm
. R usa contrastes não ortogonais por padrão, o que pode bagunçar tudo em uma ANCOVA. Se você deseja definir contrastes ortogonais, use:
contrasts(dataname$factorvariable)=contr.poly(# of levels, i.e. 3)
então execute seu modelo como
model.1=aov(dv~covariate+factorvariable, data=dataname)
Para visualizar o modelo, use:
Anova(model.1, type="III")
Certifique-se de usar maiúscula “A” Anova
aqui e não anova
. Isso dará resultados usando SS tipo III.
summary.lm(model.1)
dará outro resumo e inclui o R-sq. resultado.
posth=glht(model.1, linfct=mcp(factorvariable="Tukey")) ##gives the post-hoc Tukey analysis summary(posth) ##shows the output in a nice format.
Se desejar testar a homogeneidade das inclinações de regressão, você também pode incluir um termo de interação para o IV e a covariável. Isso seria:
model=aov(dv~covariate+IV+covariate:IV, data=dataname)
Se o termo de interação for significativo, você não terá homogeneidade.
Comentários
- Por que contrastes não ortogonais bagunçam tudo?
- Para responder à pergunta acima sobre ” por que contrastes não ortogonais bagunçam tudo em ordem “. A resposta é que o padrão de R é não ortogonal (ou seja, diferença entre as médias), o que pode causar problemas se você quiser ver a contribuição de cada IV separadamente. Quando especificamos contrastes ortogonais, dizemos a R que queremos que o SS para os IV ‘ s seja completamente particionado e não sobreposto. Desta forma, podemos ver a variação atribuída a cada preditor de forma limpa e clara. Se você não especificar, o padrão de R é uma abordagem mais liberal para o contraste.
- Por que o interesse em SS tipo III?
Resposta
Aqui está uma documentação complementar http://goo.gl/yxUZ1R do procedimento sugerido por @Butorovich. Além disso, minha observação é que, quando a covariável é binária, o uso de resumo (lm.objeto) daria a mesma estimativa IV gerada pela Anova (lm.objeto, tipo = “III”).
Comentários
- Não ‘ t claro que se trata de uma resposta. É isso? Em caso afirmativo, edite para esclarecer. Se for uma pergunta, pergunte clicando em
ASK QUESTION
no topo & perguntando lá. Então, podemos ajudá-lo adequadamente. - Concordo. A mensagem foi revisada como uma resposta (complementar) à anterior.
Resposta
Usamos regressão análise para criar modelos que descrevem o efeito da variação nas variáveis preditoras na variável de resposta. Às vezes, se tivermos uma variável categórica com valores como Sim / Não ou Masculino / Feminino etc., a análise de regressão simples fornece vários resultados para cada valor da variável categórica. Nesse cenário, podemos estudar o efeito da variável categórica usando-a junto com a variável preditora e comparando as linhas de regressão para cada nível da variável categórica. Essa análise é chamada de Análise de covariância, também chamada de ANCOVA.
Exemplo
Considere os R
dados integrados definir mtcars
. Nele observamos que o campo am
representa o tipo de transmissão (automática ou manual). É uma variável categórica com valores 0 e 1. O valor de milhas por galão (mpg
) de um carro também pode depender dele além do valor dos cavalos de potência (hp
). Estudamos o efeito do valor de am
na regressão entre mpg
e hp
. Isso é feito usando a função aov()
seguida pela função anova()
para comparar as regressões múltiplas.
Dados de entrada
Crie um quadro de dados contendo os campos mpg
, hp
e am
do conjunto de dados mtcars
. Aqui, tomamos mpg
como a variável de resposta, hp
como a variável preditora e am
como a variável categórica.
input <- mtcars[,c("am","mpg","hp")] head(input)
Quando executamos o código acima, ele produz o seguinte resultado:
am mpg hp Mazda RX4 1 21.0 110 Mazda RX4 Wag 1 21.0 110 Datsun 710 1 22.8 93 Hornet 4 Drive 0 21.4 110 Hornet Sportabout 0 18.7 175 Valiant 0 18.1 105
Análise ANCOVA
Criamos um modelo de regressão tomando hp
como variável preditora e mpg
como a variável de resposta levando em consideração a interação entre am
e hp
.
Modelo com interação entre variável categórica e variável do preditor
Criar modelo de regressão1
result1 <- aov(mpg~hp*am,data=mtcars) summary(result1)
Quando executamos o código acima, ele produz o seguinte resultado:
Df Sum Sq Mean Sq F value Pr(>F) hp 1 678.4 678.4 77.391 1.50e-09 *** am 1 202.2 202.2 23.072 4.75e-05 *** hp:am 1 0.0 0.0 0.001 0.981 Residuals 28 245.4 8.8 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Este resultado mostra que os cavalos de força e o tipo de transmissão têm um efeito significativo nas milhas por galão, pois o valor p em ambos os casos é inferior a 0,05. Mas a interação entre essas duas variáveis não é significativa, pois o valor p é maior que 0,05.
Modelo sem interação entre a variável categórica e a variável preditora
Crie o modelo de regressão2
result2 <- aov(mpg~hp+am,data=mtcars) summary(result2)
Quando executamos o código acima, ele produz o seguinte resultado:
Df Sum Sq Mean Sq F value Pr(>F) hp 1 678.4 678.4 80.15 7.63e-10 *** am 1 202.2 202.2 23.89 3.46e-05 *** Residuals 29 245.4 8.5 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Este resultado mostra que os cavalos de potência e o tipo de transmissão têm efeito significativo nas milhas por galão, pois o valor p em ambos os casos é inferior a 0,05.
Comparando dois modelos
Agora podemos comparar os dois modelos para concluir se a interação das variáveis é realmente insignificante. Para isso, usamos a função anova()
.
anova(result1,result2) Model 1: mpg ~ hp * am Model 2: mpg ~ hp + am Res.Df RSS Df Sum of Sq F Pr(>F) 1 28 245.43 2 29 245.44 -1 -0.0052515 6e-04 0.9806
Como o valor p é maior que 0,05, concluímos que a interação entre cavalos de potência e tipo de transmissão não é significativa. Portanto, a quilometragem por galão dependerá de maneira semelhante dos cavalos de potência do carro tanto no modo de transmissão automático quanto no manual.
Comentários
- Então qual veio primeiro, esta resposta ou esta postagem sobre tutoriais apontam? tutorialspoint.com/r/r_analysis_of_covariance.htm . Esta resposta deve ser excluída como plágio? Ou os tutoriais apontam apenas para copiar daqui?
anova
(você ‘ Em breve verei se você os forneceu na ordem errada porque alguns SS serão negativos se você fizer isso)