Vreau să realizez o analiză ANCOVA a datelor privind densitatea epifitelor plantelor. La început, aș vrea să știu dacă există vreo diferență în densitatea plantelor între două versanți, unul N și unul S, dar am alte date, cum ar fi altitudinea, deschiderea baldachinului și înălțimea plantei gazdă. Știu că covariata mea ar trebui să fie cele două pante (N și S). Am construit acest model care rulează în R și, deși nu am idee dacă funcționează bine. De asemenea, aș dori să știu care este diferența dacă folosesc simbolul +
sau *
.
model1 <- aov(density~slope+altitude+canopy+height) summary(model1) model1
Comentarii
- + va calcula numai efectele principale, * va estima interacțiunile dintre factorii conectați la *. Cadrele ANCOVA estimează de obicei doar un efect principal al factorului continuu, dar interacțiunile dintre toți factorii grupați.
Răspuns
Instrumentul de bază pentru aceasta este lm
; rețineți că aov
este un wrapper pentru lm
.
În special, dacă aveți o variabilă de grupare (factor), $ g $ și o covariabilă continuă $ x $ , modelul y ~ x + g
s-ar potrivi cu un model ANCOVA cu efecte principale, în timp ce y ~ x * g
s-ar potrivi cu un model care include interacțiunea cu covariata. aov
va lua aceleași formule.
Acordați o atenție deosebită Note
în ajutorul de pe aov
.
În ceea ce privește +
vs *
, russellpierce îl acoperă destul de mult, dar ți-aș recomanda să te uiți la ?lm
și ?formula
și mai ales la secțiunea 11.1 din manualul O introducere în R care vine cu R (sau îl puteți găsi online dacă nu ați aflat cum să îl găsiți pe computer; cel mai ușor, aceasta implică găsirea meniul derulant „Ajutor” în R sau RStudio).
Comentarii
Răspuns
Vă recomand să obțineți și să citiți Descoperirea statisticilor folosind R după câmp. Are o secțiune frumoasă despre ANCOVA.
Pentru a rula ANCOVA în R încărcați următoarele pachete:
car compute.es effects ggplot2 multcomp pastecs WRS
Dacă utilizați lm
sau aov
(folosesc aov
) asigurați-vă că setați contrastele folosind „contrastele” „funcție înainte de a face fie aov
, fie lm
. R folosește în mod implicit contraste neortogonale, care pot încurca totul într-un ANCOVA. Dacă doriți să setați contraste ortogonale utilizați:
contrasts(dataname$factorvariable)=contr.poly(# of levels, i.e. 3)
atunci rulați modelul ca
model.1=aov(dv~covariate+factorvariable, data=dataname)
Pentru a vizualiza modelul, utilizați:
Anova(model.1, type="III")
Asigurați-vă că utilizați capitalul „A” Anova
aici și nu anova
. Acest lucru va da rezultate folosind SS de tip III.
summary.lm(model.1)
va oferi un alt rezumat și include R-sq. ieșire.
posth=glht(model.1, linfct=mcp(factorvariable="Tukey")) ##gives the post-hoc Tukey analysis summary(posth) ##shows the output in a nice format.
Dacă doriți să testați omogenitatea pantelor de regresie, puteți include și un termen de interacțiune pentru IV și covariabil. Aceasta ar fi:
model=aov(dv~covariate+IV+covariate:IV, data=dataname)
Dacă termenul de interacțiune este semnificativ, atunci nu aveți omogenitate.
Comentarii
- De ce contrastele non-ortogonale încurcă totul?
- Pentru a răspunde la întrebarea de mai sus despre ” de ce contrastele non-ortogonali încurcă totul în sus „. Răspunsul este că R implicit este non-ortogonal (adică diferența dintre medii) care poate cauza probleme dacă doriți să vedeți contribuția fiecărui IV separat. Când specificăm contrastele ortogonale, îi spunem lui R că vrem ca SS-urile pentru diviziunile IV ‘ să fie complet partiționate și să nu se suprapună. În acest fel putem vedea variația atribuită fiecărui predictor în mod clar și clar. Dacă nu specificați, R se implică într-o abordare mai liberală a contrastului.
- De ce interesul pentru SS de tip III?
Răspuns
Iată o documentație complementară http://goo.gl/yxUZ1R a procedurii sugerate de @Butorovich. În plus, observația mea este că atunci când covariata este binară, utilizarea sumarului (lm.object) ar da aceeași estimare IV ca și cea generată de Anova (lm.object, tip = „III”).
Comentarii
- Nu este clar ‘ că este clar că se presupune că acesta este un răspuns. Este? Dacă da, vă rugăm să editați pentru a clarifica. Dacă este o întrebare, vă rugăm să întrebați făcând clic pe
ASK QUESTION
din partea de sus & întrebându-l acolo. Apoi vă putem ajuta în mod corespunzător. - De acord. Mesajul a fost revizuit ca răspuns (complementar) la cel anterior.
Răspuns
Folosim Regresie analiza pentru a crea modele care descriu efectul variației variabilelor predictive asupra variabilei de răspuns. Uneori, dacă avem o variabilă categorică cu valori precum Da / Nu sau Bărbat / Femeie etc. analiza simplă de regresie oferă rezultate multiple pentru fiecare valoare a variabilei categorice. Într-un astfel de scenariu, putem studia efectul variabilei categorice utilizând-o împreună cu variabila predictor și comparând liniile de regresie pentru fiecare nivel al variabilei categorice. O astfel de analiză este denumită Analiza Covarianței, numită și ANCOVA.
Exemplu
Luați în considerare datele încorporate R
set mtcars
. În el observăm că câmpul am
reprezintă tipul de transmisie (automată sau manuală). Este o variabilă categorică cu valorile 0 și 1. Mile per galon (mpg
) ale unei mașini pot depinde de ea, pe lângă valoarea puterii de cai (hp
). Studiem efectul valorii am
asupra regresiei dintre mpg
și hp
. Se face utilizând funcția aov()
urmată de funcția anova()
pentru a compara multiplele regresii.
Date de intrare
Creați un cadru de date care conține câmpurile mpg
, hp
și am
din setul de date mtcars
. Aici luăm mpg
ca variabilă de răspuns, hp
ca variabilă predictor și am
ca variabila categorică.
input <- mtcars[,c("am","mpg","hp")] head(input)
Când executăm codul de mai sus, produce următorul rezultat:
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
Analiza ANCOVA
Creăm un model de regresie luând hp
ca variabilă predictor și mpg
ca variabilă de răspuns, luând în considerare interacțiunea dintre am
și hp
.
Model cu interacțiunea dintre variabila categorică și predictor variable
Create regression model1
result1 <- aov(mpg~hp*am,data=mtcars) summary(result1)
Când executăm codul de mai sus, produce următorul rezultat:
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
Acest rezultat arată că atât puterea calului, cât și tipul de transmisie au un efect semnificativ asupra milei pe galon, deoarece valoarea p în ambele cazuri este mai mică de 0,05. Dar interacțiunea dintre aceste două variabile nu este semnificativă, deoarece valoarea p este mai mare de 0,05.
Model fără interacțiune între variabila categorică și variabila predictor
Creați modelul de regresie2
result2 <- aov(mpg~hp+am,data=mtcars) summary(result2)
Când executăm codul de mai sus, produce următorul rezultat:
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
Acest rezultat arată că atât puterea calului, cât și tipul de transmisie au un efect semnificativ asupra milei pe galon, deoarece valoarea p în ambele cazuri este mai mică de 0,05.
Compararea a două modele
Acum putem compara cele două modele pentru a concluziona dacă interacțiunea variabilelor este cu adevărat nesemnificativă. Pentru aceasta folosim funcția 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
Deoarece valoarea p este mai mare de 0,05, concluzionăm că interacțiunea dintre puterea calului și tipul de transmisie nu este semnificativă. Deci, kilometrajul pe galon va depinde într-o manieră similară de puterea calului mașinii atât în modul de transmisie automată, cât și în cea manuală.
Comentarii
- Deci care a venit primul, acest răspuns sau acest post pe tutoriale? tutorialspoint.com/r/r_analysis_of_covariance.htm . Ar trebui șters acest răspuns ca plagiat? Sau tutorialele au indicat doar copierea de aici?
anova
(dvs. ‘ Vom vedea în curând dacă le dați în ordinea greșită, deoarece unele SS vor fi negative dacă faceți acest lucru)