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

  • stel dat ik twee groepsfactoren $ g_1, g_2 $ en twee covariabele $ x_1, x_2 $, waarbij mijn model $$ y_ {ij} = \ mu + \ alpha_i + \ eta_j + x_ {ij1} \ gamma_1 + x_ {ij2} \ gamma_2 + \ epsilon_ {ij} $$ Is y ~ g_1 + g_2 + x_1 + x_2 doet dezelfde truc? Testen de F-waarden die zijn verkregen tegen x_1 en x_2 respectievelijk $ \ gamma_1 = 0 $ en $ \ gamma_2 = 0 $?
  • Weet ik niet zeker hoe ik dit heb gemist. Ja. … en als je beide tegelijk wilt testen, pas dan zowel met als zonder ze toe en geef de gepaste lm-objecten door aan 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)

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

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *