Ik wil een ANCOVA-analyse uitvoeren van gegevens over de dichtheid van plantepifyten. In eerste instantie zou ik willen weten of er enig verschil in plantdichtheid is tussen twee hellingen, een N en een S, maar ik heb andere gegevens zoals hoogte, openheid van het bladerdak en hoogte van de waardplant. Ik weet dat mijn covariaat de twee hellingen (N en S) zou moeten zijn. Ik heb dit model gebouwd dat in R draait en hoewel ik geen idee heb of het goed presteert. Ik zou ook graag willen weten wat het verschil is als ik het symbool +
of *
gebruik.
model1 <- aov(density~slope+altitude+canopy+height) summary(model1) model1
Opmerkingen
- + berekent alleen de hoofdeffecten, * schat de interacties tussen factoren die verband houden met *. ANCOVA-raamwerken schatten meestal alleen een hoofdeffect van de continue factor, maar interacties tussen alle gegroepeerde factoren.
Antwoord
Het basistool hiervoor is lm
; merk op dat aov
een wrapper is voor lm
.
In het bijzonder als u een groeperingsvariabele (factor) heeft, $ g $ , en een continue covariabele $ x $ , het model y ~ x + g
zou passen in een ANCOVA-model met hoofdeffecten, terwijl y ~ x * g
zou passen in een model dat omvat interactie met de covariaat. aov
zal dezelfde formules aannemen.
Besteed bijzondere aandacht aan de Note
in de help op aov
.
Wat betreft +
vs *
, russellpierce dekt het vrijwel, maar ik “raad u aan om ?lm
en ?formula
te bekijken en vooral sectie 11.1 van de handleiding Een inleiding tot R die bij R wordt geleverd (of u kunt het online vinden als u niet weet hoe u het op uw computer kunt vinden. het vervolgkeuzemenu “Help” in R of RStudio).
Reacties
Antwoord
Ik raad aan om Statistieken ontdekken met R per veld op te halen en te lezen. Hij heeft een leuke sectie over ANCOVA.
Om ANCOVA in R uit te voeren, laadt u de volgende pakketten:
car compute.es effects ggplot2 multcomp pastecs WRS
Als u lm
of aov
(ik gebruik aov
) zorg ervoor dat u de contrasten instelt met de “contrasten “functie voordat u aov
of lm
doet. R gebruikt standaard niet-orthogonale contrasten die alles in een ANCOVA kunnen verknoeien. Als u orthogonale contrasten wilt instellen, gebruik dan:
contrasts(dataname$factorvariable)=contr.poly(# of levels, i.e. 3)
en voer uw model uit als
model.1=aov(dv~covariate+factorvariable, data=dataname)
Gebruik om het model te bekijken:
Anova(model.1, type="III")
Zorg ervoor dat u hoofdletter “A” Anova
hier gebruikt en niet anova
. Dit geeft resultaten met type III SS.
summary.lm(model.1)
geeft nog een samenvatting en bevat de R-sq. output.
posth=glht(model.1, linfct=mcp(factorvariable="Tukey")) ##gives the post-hoc Tukey analysis summary(posth) ##shows the output in a nice format.
Als je wilt testen op homogeniteit van regressiehellingen, kun je ook een interactieterm opnemen voor de IV en covariaat. Dat zou zijn:
model=aov(dv~covariate+IV+covariate:IV, data=dataname)
Als de interactieterm significant is, dan heb je geen homogeniteit.
Opmerkingen
- Waarom verknoeien niet-orthogonale contrasten alles?
- Om de bovenstaande vraag te beantwoorden over ” waarom niet-orthogonale contrasten zoenen alles omhoog “. Het antwoord is dat R standaard niet-orthogonaal is (d.w.z. verschil tussen gemiddelden), wat problemen kan veroorzaken als u de bijdrage van elke IV afzonderlijk wilt zien. Wanneer we orthogonale contrasten specificeren, vertellen we R dat we willen dat de SS voor de IV ‘ s volledig gepartitioneerd en niet-overlappend is. Op deze manier kunnen we de variatie die aan elke voorspeller wordt toegeschreven, duidelijk en duidelijk zien. Als u niet specificeert, kiest R standaard voor een meer liberale benadering van het contrast.
- Waarom de interesse in type III SS?
Antwoord
Hier is een aanvullende documentatie http://goo.gl/yxUZ1R van de procedure voorgesteld door @Butorovich. Bovendien is mijn observatie dat wanneer de covariabele binair is, het gebruik van samenvatting (lm.object) dezelfde IV-schatting zou geven als gegenereerd door Anova (lm.object, type = “III”).
Reacties
- Het is niet ‘ t duidelijk dat dit een antwoord zou moeten zijn. Is het? Zo ja, bewerk dit dan om het te verduidelijken. Als het een vraag is, stel deze dan door op
ASK QUESTION
bovenaan & te klikken. Dan kunnen we u goed helpen. - Akkoord. Het bericht is herzien als een (aanvullend) antwoord op het vorige.
Antwoord
We gebruiken regressie analyse om modellen te creëren die het effect van variatie in voorspellende variabelen op de responsvariabele beschrijven. Soms, als we een categorische variabele hebben met waarden zoals Ja / Nee of Man / Vrouw enz., Geeft de eenvoudige regressieanalyse meerdere resultaten voor elke waarde van de categorische variabele. In een dergelijk scenario kunnen we het effect van de categorische variabele bestuderen door deze samen met de voorspellende variabele te gebruiken en de regressielijnen voor elk niveau van de categorische variabele te vergelijken. Zon analyse wordt Analyse van Covariantie genoemd, ook wel ANCOVA genoemd.
Voorbeeld
Beschouw de R
ingebouwde gegevens set mtcars
. Daarin zien we dat het veld am
het type verzending vertegenwoordigt (automatisch of handmatig). Het is een categorische variabele met waarden 0 en 1. De mijl per gallon-waarde (mpg
) van een auto kan er ook van afhangen, naast de waarde van paardenkracht (hp
). We bestuderen het effect van de waarde van am
op de regressie tussen mpg
en hp
. Dit wordt gedaan door de functie aov()
te gebruiken, gevolgd door de functie anova()
om de meervoudige regressies te vergelijken.
Invoergegevens
Maak een dataframe met de velden mpg
, hp
en am
uit de dataset mtcars
. Hier nemen we mpg
als responsvariabele, hp
als voorspellende variabele en am
als de categorische variabele.
input <- mtcars[,c("am","mpg","hp")] head(input)
Wanneer we bovenstaande code uitvoeren, levert dit het volgende resultaat op:
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
ANCOVA-analyse
We maken een regressiemodel met hp
als de voorspellende variabele en mpg
als responsvariabele rekening houdend met de interactie tussen am
en hp
.
Model met interactie tussen categorische variabele en voorspellende variabele
Creëer regressiemodel1
result1 <- aov(mpg~hp*am,data=mtcars) summary(result1)
Wanneer we bovenstaande code uitvoeren, levert dit het volgende resultaat op:
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
Dit resultaat toont aan dat zowel het aantal pks als het transmissietype een significant effect hebben op mijlen per gallon aangezien de p-waarde in beide gevallen minder is dan 0,05. Maar de interactie tussen deze twee variabelen is niet significant aangezien de p-waarde groter is dan 0,05.
Model zonder interactie tussen categorische variabele en voorspellende variabele
Maak het regressiemodel2
result2 <- aov(mpg~hp+am,data=mtcars) summary(result2)
Wanneer we bovenstaande code uitvoeren, levert dit het volgende resultaat op:
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
Dit resultaat toont aan dat zowel het aantal pks als het transmissietype een significant effect hebben op mijlen per gallon, aangezien de p-waarde in beide gevallen minder is dan 0,05.
Twee modellen vergelijken
Nu kunnen we de twee modellen vergelijken om te concluderen of de interactie van de variabelen echt onbeduidend is. Hiervoor gebruiken we de anova()
functie.
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
Omdat de p-waarde groter is dan 0,05, concluderen we dat de interactie tussen paardenkracht en transmissietype is niet significant. Het aantal kilometers per gallon hangt dus op een vergelijkbare manier af van het aantal pks van de auto in zowel automatische als handmatige transmissiemodus.
Opmerkingen
- Dus wat was er eerst, dit antwoord of dit bericht op tutorials-punt? tutorialspoint.com/r/r_analysis_of_covariance.htm . Moet dit antwoord worden verwijderd als plagiaat? Of is het punt van tutorials gewoon vanaf hier gekopieerd?
anova
(jij ‘ Ik zal snel zien of je ze in de verkeerde volgorde opgeeft, omdat een of andere SS negatief is als je dat doet)