Je souhaite effectuer une analyse ANCOVA des données concernant la densité des épiphytes végétales. Dans un premier temps, jaimerais savoir sil y a une différence de densité des plantes entre deux pentes, une N et une S, mais jai dautres données telles que laltitude, louverture de la canopée et la hauteur de la plante hôte. Je sais que ma covariable devrait être les deux pentes (N et S). Jai construit ce modèle qui fonctionne en R et bien que je ne sache pas sil fonctionne bien. Jaimerais également savoir quelle est la différence si jutilise le symbole +
ou *
.
model1 <- aov(density~slope+altitude+canopy+height) summary(model1) model1
Commentaires
- + calculera uniquement les effets principaux, * estimera les interactions entre les facteurs liés à *. Les cadres ANCOVA estiment généralement uniquement un effet principal du facteur continu, mais les interactions entre tous les facteurs groupés.
Réponse
Loutil de base pour cela est lm
; notez que aov
est un wrapper pour lm
.
En particulier, si vous avez une variable de regroupement (facteur), $ g $ , et une covariable continue $ x $ , le modèle y ~ x + g
correspondrait à un modèle ANCOVA deffets principaux, tandis que y ~ x * g
correspondrait à un modèle qui inclut linteraction avec la covariable. aov
prendra les mêmes formules.
Faites particulièrement attention au Note
dans laide sur aov
.
Quant à +
vs *
, russellpierce le couvre à peu près, mais je « vous recommande de regarder ?lm
et ?formula
et plus particulièrement la section 11.1 du manuel Introduction à R fourni avec R (ou vous pouvez le trouver en ligne si vous navez pas trouvé comment le trouver sur votre ordinateur; le plus facilement, cela implique de trouver le menu déroulant « Aide » dans R ou RStudio).
Commentaires
Answer
Je recommande dobtenir et de lire Découverte des statistiques à laide de R par champ. Il a une belle section sur ANCOVA.
Pour exécuter ANCOVA dans R chargez les packages suivants:
car compute.es effects ggplot2 multcomp pastecs WRS
Si vous utilisez lm
ou aov
(jutilise aov
) assurez-vous que vous définissez les contrastes en utilisant les « contrastes » « avant de faire aov
ou lm
. R utilise par défaut des contrastes non orthogonaux qui peuvent tout gâcher dans une ANCOVA. Si vous souhaitez définir des contrastes orthogonaux, utilisez:
contrasts(dataname$factorvariable)=contr.poly(# of levels, i.e. 3)
puis exécutez votre modèle comme
model.1=aov(dv~covariate+factorvariable, data=dataname)
Pour afficher le modèle, utilisez:
Anova(model.1, type="III")
Assurez-vous dutiliser la majuscule « A » Anova
ici et non anova
. Cela donnera des résultats en utilisant le type III SS.
summary.lm(model.1)
donnera un autre résumé et inclura le R-sq. production.
posth=glht(model.1, linfct=mcp(factorvariable="Tukey")) ##gives the post-hoc Tukey analysis summary(posth) ##shows the output in a nice format.
Si vous voulez tester lhomogénéité des pentes de régression, vous pouvez également inclure un terme dinteraction pour lIV et la covariable. Ce serait:
model=aov(dv~covariate+IV+covariate:IV, data=dataname)
Si le terme dinteraction est significatif, alors vous navez pas dhomogénéité.
Commentaires
- Pourquoi les contrastes non orthogonaux gâchent tout?
- Pour répondre à la question ci-dessus sur » pourquoi les contrastes non orthogonaux sont en désordre tout en place « . La réponse est que R est par défaut non orthogonal (cest-à-dire la différence entre les moyennes), ce qui peut poser des problèmes si vous voulez voir la contribution de chaque IV séparément. Lorsque nous spécifions des contrastes orthogonaux, nous disons à R que nous voulons que les SS pour les IV ‘ soient complètement partitionnés et ne se chevauchent pas. De cette façon, nous pouvons voir clairement et clairement la variation attribuée à chaque prédicteur. Si vous ne le spécifiez pas, R utilise par défaut une approche plus libérale du contraste.
- Pourquoi lintérêt pour les SS de type III?
Réponse
Voici une documentation complémentaire http://goo.gl/yxUZ1R de la procédure suggérée par @Butorovich. De plus, mon observation est que lorsque la covariable est binaire, lutilisation de summary (lm.object) donnerait la même estimation IV que celle générée par Anova (lm.object, type = « III »).
Commentaires
- Il nest ‘ pas clair que cest censé être une réponse. Cest ça? Si tel est le cas, veuillez modifier pour clarifier. Sil sagit dune question, posez-la en cliquant sur
ASK QUESTION
en haut & en la posant ici. Ensuite, nous pouvons vous aider correctement. - Daccord. Le message a été révisé comme une réponse (complémentaire) à la précédente.
Réponse
Nous utilisons la régression analyse pour créer des modèles qui décrivent leffet de la variation des variables prédictives sur la variable de réponse. Parfois, si nous avons une variable catégorielle avec des valeurs telles que Oui / Non ou Homme / Femme, etc., lanalyse de régression simple donne plusieurs résultats pour chaque valeur de la variable catégorielle. Dans un tel scénario, nous pouvons étudier leffet de la variable catégorielle en lutilisant avec la variable prédictive et en comparant les lignes de régression pour chaque niveau de la variable catégorielle. Une telle analyse est appelée Analyse de Covariance également appelée ANCOVA.
Exemple
Considérez les données intégrées R
définissez mtcars
. On y observe que le champ am
représente le type de transmission (automatique ou manuelle). Il sagit dune variable catégorielle avec des valeurs 0 et 1. La valeur des miles par gallon (mpg
) dune voiture peut également en dépendre en plus de la valeur de la puissance en chevaux (hp
). Nous étudions leffet de la valeur de am
sur la régression entre mpg
et hp
. Cela se fait en utilisant la fonction aov()
suivie de la fonction anova()
pour comparer les multiples régressions.
Données dentrée
Créez un bloc de données contenant les champs mpg
, hp
et am
à partir de lensemble de données mtcars
. Ici, nous prenons mpg
comme variable de réponse, hp
comme variable de prédiction et am
comme la variable catégorielle.
input <- mtcars[,c("am","mpg","hp")] head(input)
Lorsque nous exécutons le code ci-dessus, il produit le résultat suivant:
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
Analyse ANCOVA
Nous créons un modèle de régression prenant hp
comme variable de prédiction et mpg
comme variable de réponse tenant compte de linteraction entre am
et hp
.
Modèle avec interaction entre la variable catégorielle et variable prédictive
Créer un modèle de régression1
result1 <- aov(mpg~hp*am,data=mtcars) summary(result1)
Lorsque nous exécutons le code ci-dessus, cela produit le résultat suivant:
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
Ce résultat montre que la puissance en chevaux et le type de transmission ont un effet significatif sur les miles par gallon car la valeur p dans les deux cas est inférieure à 0,05. Mais linteraction entre ces deux variables nest pas significative car la valeur p est supérieure à 0,05.
Modèle sans interaction entre la variable catégorielle et la variable prédictive
Créer le modèle de régression2
result2 <- aov(mpg~hp+am,data=mtcars) summary(result2)
Lorsque nous exécutons le code ci-dessus, il produit le résultat suivant:
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
Ce résultat montre que la puissance en chevaux et le type de transmission ont un effet significatif sur les miles par gallon car la valeur p dans les deux cas est inférieure à 0,05.
Comparaison de deux modèles
Nous pouvons maintenant comparer les deux modèles pour conclure si linteraction des variables est vraiment insignifiante. Pour cela, nous utilisons la fonction 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
Comme la valeur p est supérieure à 0,05, nous concluons que linteraction entre la puissance en chevaux et le type de transmission nest pas significative. Ainsi, le kilométrage par gallon dépendra de la même manière de la puissance de la voiture en mode de transmission automatique et manuelle.
Commentaires
- Donc qui est venu en premier, cette réponse ou ce post sur le point de tutoriels? tutorialspoint.com/r/r_analysis_of_covariance.htm . Cette réponse devrait-elle être supprimée comme plagiat? Ou les didacticiels ont-ils simplement suggéré de copier à partir dici?
anova
(vous ‘ Je verrai bientôt si vous les donnez dans le mauvais ordre car certains SS seront négatifs si vous le faites)