Jeg ønsker å utføre en ANCOVA-analyse av data angående tettheten av planteepifytter. Først vil jeg gjerne vite om det er noen forskjell i plantetetthet mellom to skråninger, en N og en S, men jeg har andre data som høyde, baldakinåpning og høyde på vertsplanten. Jeg vet at kovariatet mitt må være de to bakkene (N og S). Jeg bygde denne modellen som kjører i R, og selv om jeg ikke aner om den fungerer bra. Også vil jeg vite hva forskjellen er hvis jeg bruker symbolet +
eller *
.
model1 <- aov(density~slope+altitude+canopy+height) summary(model1) model1
Kommentarer
- + beregner bare hovedeffekter, * vil estimere interaksjoner mellom faktorer knyttet til *. ANCOVA-rammer estimerer vanligvis bare en hovedeffekt av den kontinuerlige faktoren, men interaksjoner mellom alle grupperte faktorer.
Svar
Det grunnleggende verktøyet for dette er lm
; merk at aov
er en innpakning for lm
.
Spesielt hvis du har noen grupperingsvariabler (faktor), $ g $ , og en kontinuerlig kovariat $ x $ , modellen y ~ x + g
passer til en ANCOVA-hovedeffektmodell, mens y ~ x * g
passer til en modell som inkluderer interaksjon med kovariatet. aov
tar de samme formlene.
Vær spesielt oppmerksom på Note
i hjelpen på aov
.
Når det gjelder +
vs *
, dekker russellpierce ganske mye det, men jeg vil anbefale deg å se på ?lm
og ?formula
og spesielt avsnitt 11.1 i håndboken En introduksjon til R som følger med R (eller du kan finne den online hvis du ikke har funnet ut hvordan du finner den på datamaskinen din; lettest innebærer dette å finne rullegardinmenyen «Hjelp» i enten R eller RStudio).
Kommentarer
Svar
Jeg anbefaler å få og lese Discovering Statistics using R by Field. Han har en fin seksjon om ANCOVA.
For å kjøre ANCOVA i R, last inn følgende pakker:
car compute.es effects ggplot2 multcomp pastecs WRS
Hvis du bruker lm
eller aov
(jeg bruker aov
) sørg for at du stiller kontrastene ved hjelp av «kontrastene «funksjon før du gjør enten aov
eller lm
. R bruker ikke-ortogonale kontraster som standard, som kan ødelegge alt i en ANCOVA. Hvis du vil angi ortogonale kontraster, bruk:
contrasts(dataname$factorvariable)=contr.poly(# of levels, i.e. 3)
så kjør modellen din som
model.1=aov(dv~covariate+factorvariable, data=dataname)
For å se modellbruk:
Anova(model.1, type="III")
Forsikre deg om at du bruker store bokstaver «A» Anova
her og ikke anova
. Dette vil gi resultater ved hjelp av type III SS.
summary.lm(model.1)
vil gi et nytt sammendrag og inkluderer R-sq. produksjon.
posth=glht(model.1, linfct=mcp(factorvariable="Tukey")) ##gives the post-hoc Tukey analysis summary(posth) ##shows the output in a nice format.
Hvis du vil teste for homogenitet i regresjonsbakker, kan du også inkludere et interaksjonsuttrykk for IV og kovariat. Det ville være:
model=aov(dv~covariate+IV+covariate:IV, data=dataname)
Hvis samhandlingsbegrepet er signifikant, har du ikke homogenitet.
Kommentarer
- Hvorfor ødelegger ikke-ortogonale kontraster alt?
- For å svare på spørsmålet ovenfor om » hvorfor ikke-ortogonale kontraster rot alt opp «. Svaret er at R er som standard ikke-ortogonalt (dvs. forskjell mellom midler) som kan forårsake problemer hvis du vil se bidraget til hver IV separat. Når vi spesifiserer ortogonale kontraster, forteller vi R at vi vil at SS for IV ‘ skal være fullstendig partisjonert og ikke overlappende. På denne måten kan vi se variasjonen som tilskrives hver prediktor rent og tydelig. Hvis du ikke spesifiserer, er R som standard en mer liberal tilnærming til kontrasten.
- Hvorfor interessen for type III SS?
Svar
Her er en utfyllende dokumentasjon http://goo.gl/yxUZ1R av prosedyren foreslått av @Butorovich. I tillegg er min observasjon at når kovariatet er binært, vil bruk av sammendrag (lm.object) gi samme IV-estimat som genereres av Anova (lm.object, type = «III»).
Kommentarer
- Det er ikke ‘ det er ikke klart at dette skal være et svar. Er det? I så fall må du redigere for å avklare. Hvis det er et spørsmål, kan du spørre ved å klikke på
ASK QUESTION
øverst & og be det der. Da kan vi hjelpe deg ordentlig. - Avtalt. Meldingen er revidert som et (utfyllende) svar på det forrige.
Svar
Vi bruker regresjon analyse for å lage modeller som beskriver effekten av variasjon i prediktorvariabler på responsvariabelen. Noen ganger hvis vi har en kategorisk variabel med verdier som Ja / Nei eller Mann / Kvinne etc., gir den enkle regresjonsanalysen flere resultater for hver verdi av den kategoriske variabelen. I et slikt scenario kan vi studere effekten av den kategoriske variabelen ved å bruke den sammen med prediktorvariabelen og sammenligne regresjonslinjene for hvert nivå av den kategoriske variabelen. En slik analyse kalles Analyse av kovarians, også kalt ANCOVA.
Eksempel
Tenk på R
innebygde data sett mtcars
. I den observerer vi at feltet am
representerer overføringstypen (automatisk eller manuell). Det er en kategorisk variabel med verdiene 0 og 1. Miles per gallon-verdi (mpg
) til en bil kan også avhenge av den i tillegg til verdien av hestekraft (hp
). Vi studerer effekten av verdien am
på regresjonen mellom mpg
og hp
. Det gjøres ved å bruke aov()
-funksjonen etterfulgt av anova()
-funksjonen for å sammenligne flere regresjoner.
Inngangsdata
Opprett en dataramme som inneholder feltene mpg
, hp
og am
fra datasettet mtcars
. Her tar vi mpg
som responsvariabel, hp
som prediktorvariabel og am
som den kategoriske variabelen.
input <- mtcars[,c("am","mpg","hp")] head(input)
Når vi kjører ovenfor koden, gir den følgende resultat:
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
Vi lager en regresjonsmodell som tar hp
som prediktorvariabel og mpg
som responsvariabel med tanke på samspillet mellom am
og hp
.
Modell med samspill mellom kategorisk variabel og prediktorvariabel
Opprett regresjonsmodell1
result1 <- aov(mpg~hp*am,data=mtcars) summary(result1)
Når vi kjører over koden, gir den følgende resultat:
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
Dette resultatet viser at både hestekraft og overføringstype har signifikant effekt på miles per gallon da p-verdien i begge tilfeller er mindre enn 0,05. Men samspillet mellom disse to variablene er ikke signifikant da p-verdien er mer enn 0,05.
Modell uten samhandling mellom kategorisk variabel og prediktorvariabel
Lag regresjonsmodellen2
result2 <- aov(mpg~hp+am,data=mtcars) summary(result2)
Når vi kjører over koden, gir det følgende resultat:
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
Dette resultatet viser at både hestekraft og overføringstype har signifikant effekt på miles per gallon ettersom p-verdien i begge tilfeller er mindre enn 0,05.
Sammenligning av to modeller
Nå kan vi sammenligne de to modellene for å konkludere hvis samspillet mellom variablene virkelig er ubetydelig. Til dette bruker vi anova()
-funksjonen.
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
Da p-verdien er større enn 0,05, konkluderer vi med at samspillet mellom hestekraft og overføringstype er ikke signifikant. Så kjørelengden per gallon vil på en lignende måte avhenge av hestens kraft i bilen i både automatisk og manuell girkasse.
Kommentarer
- Så som kom først, dette svaret eller dette innlegget på tutorials peker? tutorialspoint.com/r/r_analysis_of_covariance.htm . Bør dette svaret slettes som plagiering? Eller pekte opplæringsprogrammer bare på kopi herfra?
anova
(du ‘ vil snart se om du gir dem i feil rekkefølge fordi noen SS vil være negative hvis du gjør det)