Uzunlamasına bir veri kümesinin analizinde aov () ve lme () kullanımı arasındaki fark nedir?


14

Birisi bana boyuna verileri kullanma aov()ve lme()analiz etme arasındaki farkı söyleyebilir ve bu iki yöntemden elde edilen sonuçları nasıl yorumlayabilir?

Aşağıda, aynı kullanarak veri kümesi analiz aov()ve lme()ve 2 farklı sonuçlar aldık. İle aov()ben Tedavi etkileşimi süresinde önemli bir sonuç var, ama doğrusal karma modelin yerleştirilmesi, Tedavi etkileşimi zaman önemsizdir.

> UOP.kg.aov <- aov(UOP.kg~time*treat+Error(id), raw3.42)
> summary(UOP.kg.aov)

Error: id
          Df  Sum Sq Mean Sq F value Pr(>F)
treat      1   0.142  0.1421  0.0377 0.8471
Residuals 39 147.129  3.7725               

Error: Within
            Df  Sum Sq Mean Sq  F value  Pr(>F)    
time         1 194.087 194.087 534.3542 < 2e-16 ***
time:treat   1   2.077   2.077   5.7197 0.01792 *  
Residuals  162  58.841   0.363                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

> UOP.kg.lme <- lme(UOP.kg~time*treat, random=list(id=pdDiag(~time)), 
                    na.action=na.omit, raw3.42)
> summary(UOP.kg.lme)
Linear mixed-effects model fit by REML
 Data: raw3.42 
       AIC      BIC    logLik
  225.7806 248.9037 -105.8903

Random effects:
 Formula: ~time | id
 Structure: Diagonal
        (Intercept)      time  Residual
StdDev:   0.6817425 0.5121545 0.1780466

Fixed effects: UOP.kg ~ time + treat + time:treat 
                 Value Std.Error  DF   t-value p-value
(Intercept)  0.5901420 0.1480515 162  3.986059  0.0001
time         0.8623864 0.1104533 162  7.807701  0.0000
treat       -0.2144487 0.2174843  39 -0.986042  0.3302
time:treat   0.1979578 0.1622534 162  1.220053  0.2242
 Correlation: 
           (Intr) time   treat 
time       -0.023              
treat      -0.681  0.016       
time:treat  0.016 -0.681 -0.023

Standardized Within-Group Residuals:
         Min           Q1          Med           Q3          Max 
-3.198315285 -0.384858426  0.002705899  0.404637305  2.049705655 

Number of Observations: 205
Number of Groups: 41 

Yanıtlar:


19

Açıklamanıza dayanarak, tek bir tedavi faktörüne sahip tekrarlanan önlemler modeliniz olduğu anlaşılıyor. Veri kümesine ( raw3.42) erişimim olmadığından, nlmeburada neler olduğunu göstermek için paketten Orthodont verilerini kullanacağım . Veri yapısı aynıdır (iki farklı grup için tekrarlanan ölçümler - bu durumda, erkekler ve kadınlar).

Aşağıdaki kodu çalıştırırsanız:

library(nlme)
data(Orthodont)

res <- lme(distance ~ age*Sex, random = ~ 1 | Subject, data = Orthodont)
anova(res)

aşağıdaki sonuçları alacaksınız:

            numDF denDF  F-value p-value
(Intercept)     1    79 4123.156  <.0001
age             1    79  122.450  <.0001
Sex             1    25    9.292  0.0054
age:Sex         1    79    6.303  0.0141

Eğer koşarsan:

res <- aov(distance ~ age*Sex + Error(Subject), data = Orthodont)
summary(res)

Alacaksın:

Error: Subject
          Df Sum Sq Mean Sq F value   Pr(>F)   
Sex        1 140.46 140.465  9.2921 0.005375 **
Residuals 25 377.91  15.117                    

Error: Within
          Df  Sum Sq Mean Sq  F value  Pr(>F)    
age        1 235.356 235.356 122.4502 < 2e-16 ***
age:Sex    1  12.114  12.114   6.3027 0.01410 *  
Residuals 79 151.842   1.922                     

F testlerinin tamamen aynı olduğunu unutmayın.

Çünkü lme(), list(id=pdDiag(~time))sadece modele rastgele bir kesişme değil, aynı zamanda rastgele bir eğim de eklediniz. Ayrıca, kullanarak pdDiag, rastgele kesme ve eğim arasındaki korelasyonu sıfıra ayarlıyorsunuz. Bu, belirttiğinizden farklı bir modeldir aov()ve dolayısıyla farklı sonuçlar elde edersiniz.


Teşekkürler @ Wolfgang; açıklamanız çok yardımcı oluyor. O zaman sahip olduğum bir takip sorusu bu. Gerçekten tek bir tedavi faktörü ile tekrarlanan önlemler modelini analiz ediyorum. Her denek rastgele bir şekilde A veya B tedavisine atanır. Daha sonra 0 dakika, 15 dakika, 30 dakika, 60 dakika, 120 dakika ve 180 dakika olarak ölçülür. Anladığım kadarıyla, zaman rastgele bir faktör olmalı, çünkü sadece 0 ila 180 dakika arasındaki örnekler. Öyleyse yapmalıyım: lme (UOP.kg ~ time * tedavi, rastgele = ~ time | id, raw3.42)?
biostat_newbie

Evet, ama bunu şu şekilde düşünürüm: Aslında, aynı tedavi grubundaki denekler arasında (rasgele) regresyon çizgisinin (zamanında UOP.kg) kesişme ve eğimine izin veriyorsunuz. Rastgele = ~ time | id bunu yapar. Modelin size anlatacağı şey, kesişme noktalarındaki ve eğimlerde tahmini değişkenlik miktarıdır. Dahası, zaman: tedavi etkileşimi terimi, A ve B için ortalama eğimin farklı olup olmadığını gösterir
Wolfgang

Teşekkürler @ Wolfgang! Error(Subject/age)Bazı öğreticiye baktığımdan, /agebu faktör boyunca tekrarlanan ölçüm anlamına geldiğini söyleyebilir miyim ? Bu seninkiyle aynı Error(Subject)mı? Başka bir soru: dengesiz veriler için aovve lmefarklı sonuçlar doğurabilir, değil mi?
breezeintopl

1

Sadece yüklemek istediğiniz olabileceğini eklersiniz carpaketi ve kullanımını Anova()bu paket yerine sağladığı anova()için çünkü aov()ve lm()nesneler, vanilya anova()için ise eşit olmayan örnek boyutları için yanlış sonuç verir kareler sıralı toplamı kullanır lme()o da türünü kullanan -I veya typeargümana bağlı olarak tip-III kareler toplamı, ancak tip-III kareler toplamı marjinalliği ihlal eder - yani etkileşimlere ana etkilerden farklı davranmaz.

R-yardım listesinin, kareler tip-I ve tip-III toplamları hakkında söyleyecek iyi bir şeyleri yoktur, ancak bunlar sadece seçenekler! Git şekil.

Düzenleme: Aslında, önemli bir etkileşim terimi varsa tip-II geçerli değil gibi görünüyor ve herkes yapabileceği en iyi görünüyor etkileşim olduğunda tip-III kullanmaktır. Bir tarafından kendisine ihbar var benim kendi sorulardan birine cevap sırayla beni işaret ettiğini bu yazı .


0

Bana öyle geliyor ki her seferinde her kimlik için birden fazla önleminiz var. Bunları aov için toplamanız gerekiyor çünkü bu analizdeki haksız bir şekilde gücü arttırıyor. Biriktirmenin sonuçları aynı yapacağını söylemiyorum ama onları daha benzer hale getirmeli.

dat.agg <- aggregate(UOP.kg ~ time + treat + id, raw3.42, mean)

Ardından verileri dat.agg ile değiştirmeden önce aov modelinizi çalıştırın.

Ayrıca, anova'nın (lme) sonuçları karşılaştırmak için yapmak istediğiniz şey olduğuna inanıyorum. Bir efektin yönü ve büyüklüğü, model sapmasının hataya oranı ile aynı değildir.

(BTW, eğer yapmamanız gereken toplu veriler üzerinde lme analizi yaparsanız ve anova'yı (lme) kontrol ederseniz, aov ile hemen hemen aynı sonuçları alırsınız)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.