Măsuri repetate în două sensuri ANOVA este un test statistic puternic utilizat pentru a analiza seturi de date unde doi factori în cadrul subiectului (variabile independente) sunt măsurate de mai multe ori pentru fiecare subiect. Acest test ajută la determinarea dacă există diferențe semnificative între grupuri în timp sau în diferite condiții, în timp ce contabilizează variabilitatea individuală.
În acest ghid, vom acoperi:
- Ce este o măsuri repetate în două sensuri ANOVA?
- Când să -l folosești?
- Cum să efectuați măsuri repetate în două sensuri ANOVA în R?
- Interpretarea rezultatelor.
Măsuri repetate în două sensuri ANOVA este cunoscută și ca:
- Doi factori repetați măsoară ANOVA
- Doi factori sau două sensuri ANOVA cu măsuri repetate
- În cadrul subiecților ANOVA
Măsuri repetate în două sensuri ANOVA este adesea utilizată în studiile în care ați măsurat:
- O variabilă dependentă pe două sau mai multe puncte de timp
- Când subiecții au suferit două sau mai multe condiții
De asemenea, ar trebui să știți cum să identificați măsurile repetate în două sensuri ANOVA de la ANOVA mixtă. ANOVA mixtă este foarte asemănătoare cu măsurile repetate în două sensuri ANOVA, deoarece ambele teste implică doi factori. Într -o ANOVA mixtă, subiecții care suferă fiecare afecțiune sunt diferiți. În timp ce, în două sensuri, măsoară repetate ANOVA, aceiași subiecți suferă ambele condiții.
Care este măsurile repetate în două sensuri ANOVA?
O măsuri repetate în două sensuri ANOVA examinează efectele a doi factori în cadrul subiectului asupra unei variabile dependente. Extinde măsurile repetate unidirecționale ANOVA prin încorporarea unui factor suplimentar, permițând înțelegerea atât a efectelor principale, cât și a efectelor de interacțiune.
Componente cheie:
- Factorii în cadrul subiecților: Două variabile independente categorice măsurate pe aceiași subiecți.
- Variabilă dependentă: O variabilă continuă afectată de factorii independenți.
- Subiecți ca efecte aleatorii: Fiecare participant este expus la toate condițiile, reducând variabilitatea cauzată de diferențele individuale.
Când să folosiți o măsuri repetate în două sensuri ANOVA?
Folosiți acest test când:
- Aveți doi factori în cadrul subiectului (de exemplu, timp, condiție).
- Aceiași subiecți participă la toate combinațiile de factori.
- Variabila dependentă este continuă și distribuită în mod normal.
- Doriți să analizați atât efectele principale, cât și cele de interacțiune.

Descrierea datelor
Fișierul de date pentru analiză conține ID -ul subiectului, starea, intervalul de timp și variabila de răspuns. Cercetătorii au înregistrat măsurători variabile de răspuns de la aceiași subiecți la patru intervale de timp diferite. Subiecții au inclus atât persoane masculine, cât și feminine. În loc să folosească persoane diferite, cercetătorii au măsurat în mod repetat aceiași subiecți pe intervale de timp diferite. Deoarece aceiași subiecți au fost folosiți în mod repetat, vom efectua măsuri repetate în două sensuri ANOVA în R Studio.
Mediu clar
Ca prim pas, recomand întotdeauna să ștergeți obiecte și valori de date în mediul global cu rm()
funcţie. Setați adevărata valoare pentru argument all
Pentru a elimina obiecte și valori dacă ați creat mai devreme. Opriți toate ferestrele grafice folosind graphics.off()
funcţie. Punerea valorii „CLS” în shell()
Funcția va șterge mediul consolei.
rm(list = ls(all = TRUE)) graphics.off() shell("cls")
Importul datelor
Pentru a importa setul de date am plasat fișierul de date CSV în directorul de lucru al proiectului. Creați o date obiect și atribuiți -le o funcție pe care o sun read.csv()
. În fișierul de argumente după semnul egal din citate, trebuie doar să apăsați butonul Tab pentru a accesa fișierele prezente în directorul de lucru. Acum trebuie să alegem fișierul de date CSV respectiv. În următorul argument header
Tip adevărat pentru a indica faptul că primul rând al fișierului de date conține nume sau titluri variabile.
În următoarea linie putem folosi head()
Funcție pentru a imprima primele șase rânduri ale cadrului de date. Aici convertesc primele 2 variabile ca variabile ale factorului folosind as.factor()
funcţie. Utilizare attach()
Funcție pentru obiect de date pentru a masca componentele variabilelor din cadrul de date.
data <- read.csv(file = "data.csv", header = TRUE) head(data) data$group = as.factor(data$group) data$time = as.factor(data$time) attach(data) # subID group time resp.var # 1 1 male day1 26 # 2 2 male day1 27 # 3 3 male day1 24 # 4 4 female day1 18 # 5 5 female day1 17 # 6 6 female day1 16
Montarea modelului ANOVA
Să procedăm cu analiza variației pentru a vedea cum se modifică variabila de răspuns ca funcție a condiției și a timpului aplicat fiecărui participant. aov()
Funcția este utilizată pentru a se potrivi cu analiza modelului de varianță. Funcția este aceeași ca și cea utilizată în două sensuri ANOVA, cu o singură diferență de argument de eroare. Aici trebuie să definiți eroarea ca raport între ID -ul subiectului și interacțiunea grupului și factorului de timp. Pentru numitor, puteți utiliza, de asemenea, un termen de grup, timp și interacțiune, combinat cu semnul plus. Summary()
Funcția pentru obiectul modelului va imprima rezultatele.
model.aov <- aov(resp.var ~ group * time + Error(subID/(group*time))) #OR model.aov <- aov(resp.var ~ group * time + Error(subID/(group + time + group:time))) summary(model.aov) # # Error: subID # Df Sum Sq Mean Sq # group 1 408 408 # # Error: subID:group # Df Sum Sq Mean Sq # group 1 67.25 67.25 # # Error: subID:time # Df Sum Sq Mean Sq # time 3 356.7 118.9 # # Error: subID:group:time # Df Sum Sq Mean Sq # time 3 49.94 16.65 # # Error: Within # Df Sum Sq Mean Sq F value Pr(>F) # group 1 13.86 13.863 6.105 0.03866 * # time 3 52.79 17.596 7.749 0.00943 ** # group:time 3 2.60 0.868 0.382 0.76887 # Residuals 8 18.17 2.271 # --- # Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Rezultatele au arătat că funcția de eroare a descompus reziduurile în:
- ID -ul subiectului
- ID -ul subiectului și interacțiunea de grup
- ID -ul subiectului și interacțiunea timpului
- Interacțiunea cu trei căi a ID -ului, grupului și timpului
Această descompunere a termenului de eroare reduce considerabil sursa reziduală de varianță pentru calculul valorii F. Atât variabilele de timp, cât și cele de grup influențează semnificativ variabila de răspuns. Cu toate acestea, interacțiunea lor a fost nesemnificativă.
Test de comparație mediu
Acum să calculăm comparații medii pentru a observa diferențele dintre efectele principale.
Test SNK
Testul SNK este derivat din Tukey, dar este mai puțin conservator. Testul Tukey controlează eroarea pentru toate comparațiile, unde SNK controlează doar pentru comparații luate în considerare. Înainte de a utiliza SNK.test()
Funcție, definiți mai întâi gradul de eroare de libertate și eroare valoarea pătrată medie care va fi utilizată în această funcție.
Edf <- df.residual(model.aov$Within) Edf # (1) 8 EMS <- deviance(model.aov$Within)/Edf EMS # (1) 2.270833
Pentru a aplica testul SNK utilizarea testului SNK.test()
funcţie. Această funcție necesită:
- Y argument care specifică variabila de răspuns
- Argument TRT care reprezintă variabila factorului de tratament aplicată fiecărei unități experimentale ca grup și timp în acest exemplu.
- Eroarea DF și eroarea MS reprezintă gradul de libertate și pătratul mediu pentru termenul de eroare, așa cum este stabilit anterior
- Alpha arată nivelul de semnificație. Valoarea implicită este de 5 %.
- Argumentul de grup specifică formarea grupurilor de tratament. Adevărata valoare pentru grup va duce la grupuri de tratament cu litere. Valoarea falsă pentru grup va oferi informații cu privire la comparațiile dintre tratamente.
library(agricolae) SNK.test1 <- SNK.test(y = resp.var, trt = group, DFerror = Edf, MSerror = EMS, alpha = 0.05, group = TRUE) print(SNK.test1) # $statistics # MSerror Df Mean CV # 2.270833 8 14.33333 10.51345 # # $parameters # test name.t ntr alpha # SNK group 2 0.05 # # $snk # Table CriticalRange # 2 3.261182 1.418656 # # $means # resp.var std r Min Max Q25 Q50 Q75 # female 9.833333 4.687184 12 4 18 6.75 9.0 11.50 # male 18.833333 4.687184 12 13 27 15.75 17.5 21.75 # # $comparison # NULL # # $groups # resp.var groups # male 18.833333 a # female 9.833333 b # # attr(,"class") # (1) "group"
În mod similar, pentru comparații medii în variabilă de timp, înlocuiți grupul cu timpul în trt
argument.
SNK.test2 <- SNK.test(y = resp.var, trt = time, DFerror = Edf, MSerror = EMS, alpha = 0.05, group = TRUE) print(SNK.test2) # $statistics # MSerror Df Mean CV # 2.270833 8 14.33333 10.51345 # # $parameters # test name.t ntr alpha # SNK time 4 0.05 # # $snk # Table CriticalRange # 2 3.261182 2.006283 # 3 4.041036 2.486050 # 4 4.528810 2.786128 # # $means # resp.var std r Min Max Q25 Q50 Q75 # day1 21.333333 4.885352 6 16 27 17.25 21.0 25.50 # day2 13.833333 6.145459 6 7 21 9.00 13.5 18.75 # day3 12.500000 3.937004 6 8 17 9.25 12.5 15.75 # day4 9.666667 5.240865 6 4 16 5.25 9.5 13.75 # # $comparison # NULL # # $groups # resp.var groups # day1 21.333333 a # day2 13.833333 b # day3 12.500000 b # day4 9.666667 c # # attr(,"class") # (1) "group"
Vizualizarea rezultatelor
Barplot pentru variabilă de timp
Puteți complota graficul de bare cu o eroare standard în partea de sus a fiecărei bare din ieșirea testului SNK aplicat anterior. Codul de mai jos arată cum va fi desenat graficul folosind ggplot()
funcţie.
library(ggplot2) SE1 = SNK.test1$means$std/sqrt(SNK.test1$means$r) ggplot(data=SNK.test1$means, aes(x= rownames(SNK.test1$means), y= resp.var, fill=rownames(SNK.test1$means))) + geom_bar(stat="identity") + geom_errorbar(aes(ymax = resp.var + std/sqrt(r), ymin = resp.var - std/sqrt(r)), position = position_dodge(width=0.9), width = 0.25) + labs(title = "", x = "group", y = "Response variable", fill = "group") + geom_text(data = SNK.test1$groups, aes(x = rownames(SNK.test1$groups), y = resp.var + SE1, label = as.matrix(groups)), position = position_dodge(width = 0.9), vjust = -(0.5))
Interpretarea rezultatelor
Produsul va include:
- Efecte principale: Examinarea efectului Timp şi Stare independent.
- Efect de interacțiune: Verificarea dacă efectul unui factor depinde de celălalt.
- valorile p: Dacă p <0.05, efectul este semnificativ statistic.
Concluzie
O măsuri repetate în două sensuri ANOVA în R este o metodă utilă pentru analiza observațiilor repetate în mai multe condiții. Urmând pașii prezentate, puteți testa eficient efectele principale și de interacțiune, asigurând inferențe statistice valide.
Prin stăpânirea acestei tehnici, puteți debloca informații mai profunde asupra datelor dvs. experimentale și puteți trage concluzii mai precise.
Post Bid Way Repeted Măsuri ANOVA în R a apărut mai întâi pe ajutorul statistic: o școală de statistici.