Lme ve aov, R'de ANOVA'nın tekrarlanan ölçümleri için neden farklı sonuçlar veriyor?


24

ANOVA ezpaketini kullanarak lmetekrarlanan önlemlere geçmeye çalışıyorum (umarım ile özel kontrastları kullanabileceğimi umuyorum lme).

Bu blog yazısından gelen tavsiyelerin ardından, aynı modeli hem aov( ezistendiğinde olduğu gibi) hem de kullanarak aynı modeli kurmayı başardım lme. Ancak, oysa verilen örnekte söz konusu yayında F -değerleri mükemmel arasına katılıyorum aovve lme(bunu kontrol ve yaptıkları), bu benim veriler için geçerli değildir. F değerleri benzer olsa da , aynı değildir.

aov1,3399 f değeri lmedöndürür , 1,36264 döndürür. Sonucu aov"doğru" olarak kabul etmeye istekliyim, çünkü bu aynı zamanda SPSS'nin geri gönderdiği şeydir (ve alan / süpervizörüm için geçerli olan şeydir).

Sorular:

  1. Birisi bu farkın neden var olduğunu ve lmegüvenilir sonuçlar elde etmek için nasıl kullanabileceğimi açıklayabilirse çok iyi olur . ( "Doğru" bir sonuç verirse, bu tür şeyler lmeryerine de kullanmak isterdim lme. Ancak, şu ana kadar kullanmadım.)

  2. Bu sorunu çözdükten sonra kontrast analizi yapmak istiyorum. Özellikle, ilk iki faktör seviyesini (yani c("MP", "MT")) bir araya getirmenin karşıtlığı ile ilgilendim ve bunu üçüncü faktör (yani "AC") ile karşılaştırdım. Ayrıca, üçüncü faktör ile dördüncü faktör seviyesinin test edilmesi (yani, "AC"karşı "DA").

Veri:

tau.base <- structure(list(id = structure(c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 
9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 
22L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 
14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 1L, 2L, 3L, 4L, 
5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 
19L, 20L, 21L, 22L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 
11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L), .Label = c("A18K", 
"D21C", "F25E", "G25D", "H05M", "H07A", "H08H", "H25C", "H28E", 
"H30D", "J10G", "J22J", "K20U", "M09M", "P20E", "P26G", "P28G", 
"R03C", "U21S", "W08A", "W15V", "W18R"), class = "factor"), factor = structure(c(1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L), .Label = c("MP", "MT", "AC", "DA"
), class = "factor"), value = c(0.9648092876, 0.2128662077, 1, 
0.0607615485, 0.9912814024, 3.22e-08, 0.8073856412, 0.1465590332, 
0.9981672618, 1, 1, 1, 0.9794401938, 0.6102546108, 0.428651501, 
1, 0.1710644881, 1, 0.7639763913, 1, 0.5298989196, 1, 1, 0.7162733447, 
0.7871177434, 1, 1, 1, 0.8560509327, 0.3096989662, 1, 8.51e-08, 
0.3278862311, 0.0953598576, 1, 1.38e-08, 1.07e-08, 0.545290432, 
0.1305621416, 2.61e-08, 1, 0.9834051136, 0.8044114935, 0.7938839461, 
0.9910112678, 2.58e-08, 0.5762677121, 0.4750002288, 1e-08, 0.8584252623, 
1, 1, 0.6020385797, 8.51e-08, 0.7964935271, 0.2238374288, 0.263377904, 
1, 1.07e-08, 0.3160751898, 5.8e-08, 0.3460325565, 0.6842217296, 
1.01e-08, 0.9438301877, 0.5578367224, 2.18e-08, 1, 0.9161424562, 
0.2924856039, 1e-08, 0.8672987992, 0.9266688748, 0.8356425464, 
0.9988463913, 0.2960361777, 0.0285680426, 0.0969063841, 0.6947998266, 
0.0138254805, 1, 0.3494775301, 1, 2.61e-08, 1.52e-08, 0.5393467752, 
1, 0.9069223275)), .Names = c("id", "factor", "value"), class = "data.frame", row.names = c(1L, 
6L, 10L, 13L, 16L, 17L, 18L, 22L, 23L, 24L, 27L, 29L, 31L, 33L, 
42L, 43L, 44L, 45L, 54L, 56L, 58L, 61L, 64L, 69L, 73L, 76L, 79L, 
80L, 81L, 85L, 86L, 87L, 90L, 92L, 94L, 96L, 105L, 106L, 107L, 
108L, 117L, 119L, 121L, 124L, 127L, 132L, 136L, 139L, 142L, 143L, 
144L, 148L, 149L, 150L, 153L, 155L, 157L, 159L, 168L, 169L, 170L, 
171L, 180L, 182L, 184L, 187L, 190L, 195L, 199L, 202L, 205L, 206L, 
207L, 211L, 212L, 213L, 216L, 218L, 220L, 222L, 231L, 232L, 233L, 
234L, 243L, 245L, 247L, 250L))

Ve kod:

require(nlme)

summary(aov(value ~ factor+Error(id/factor), data = tau.base))

anova(lme(value ~ factor, data = tau.base, random = ~1|id))

Buradaki cevabınızdaki karşıtlıklar hakkındaki kısma cevap vermiş gibisiniz ; değilse, lütfen bu soruyu düzenleyin, böylece ne zorluk kaldığını anlayabilelim.
Aaron - Monica

2
@Aaron, lmestandart ders kitabı ANOVA'dan (sonuçta verilenler aovve hangi ihtiyacım olan) elde edilen sonuçlarda farklılıklar olduğu sürece , bu benim için bir seçenek değil. Makalemde ANOVA gibi bir şey değil, bir ANOVA bildirmek istiyorum. İlginçtir ki Venables & Ripley (2002, s. 285), her iki yaklaşımın da aynı tahminlere yol açtığını göstermektedir. Fakat F değerindeki farklılıklar beni kötü bir his veriyor. Ayrıca, Anova()(from car) lmenesneler için yalnızca Chi²-değerlerini döndürür . Bu nedenle benim için ilk sorum henüz cevaplanmadı.
Henrik

Sizin güvenliğinizi anlıyorum (ama paylaşmayın) lme; ama kontrastlar için, sadece uyum için değil, aynı zamanda uyum glhtüzerinde lmde çalışır lme. (Ayrıca, lmesonuçlar da standart ders kitabı sonuçlarıdır.)
Aaron - Reinstate Monica

Ne yazık ki, lmtekrarlanan bir ölçüm analizi için belirtemezsiniz . Sadece aovtekrarlanan önlemlerle başa çıkabilir, ancak aovlistmaalesef işlenmeyen bir sınıf nesnesini geri getirebilir glht.
Henrik

3
lmArtık hatayı tüm etkiler için hata terimi olarak kullanır; farklı bir hata terimi kullanması gereken etkiler olduğunda aov, gereklidir (veya bunun yerine, lmF-istatistiklerini manuel olarak hesaplamak için sonuçları kullanarak ). Örnekte, hata terimi factorolan id:factorbir katkı modelinde rezidüel hata terimi etkileşim. Sonuçları ile karşılaştırın anova(lm(value~factor+id)).
Aaron - Monica,

Yanıtlar:


28

Bunlar farklıdır çünkü lme modeli varyans bileşenini idsıfırdan büyük olmaya zorlamaktadır . Tüm terimler için ham anova tablosuna baktığımızda, kimliği için ortalama kare hatasının artıklar için olduğundan daha az olduğunu görüyoruz.

> anova(lm1 <- lm(value~ factor+id, data=tau.base))

          Df  Sum Sq Mean Sq F value Pr(>F)
factor     3  0.6484 0.21614  1.3399 0.2694
id        21  3.1609 0.15052  0.9331 0.5526
Residuals 63 10.1628 0.16131   

Varyans bileşenlerini hesapladığımızda, bu, id'ye bağlı varyansın negatif olacağı anlamına gelir. Beklenen ortalama kareler hafızamın hafızası titrek, ancak hesaplama gibi bir şey

(0.15052-0.16131)/3 = -0.003597.

Bu garip geliyor ama olabilir. Bunun anlamı, her bir kimliğe ilişkin ortalamaların, modeldeki kalıntı varyasyon miktarı göz önüne alındığında, birbirinize beklediğinizden daha yakın olmasıdır.

Buna karşılık, lme kullanmak bu varyansı sıfırdan büyük olmaya zorlar.

> summary(lme1 <- lme(value ~ factor, data = tau.base, random = ~1|id))
...
Random effects:
 Formula: ~1 | id
        (Intercept)  Residual
StdDev: 3.09076e-05 0.3982667

Bu, sapma 9.553e-10varyansı ve 0.1586164artık varyans için varyans verimi elde etmek için kareleri standart sapmalar rapor eder.

Şimdi, aovtekrarlanan ölçümler için kullanmanın sadece tüm tekrarlanan ölçüm çiftleri arasındaki korelasyonun aynı olduğuna inanıyorsanız uygun olduğunu bilmelisiniz ; buna bileşik simetri denir. (Teknik olarak, küresellik gereklidir, ancak bu şimdilik yeterlidir.) Kullanmak bir nedeni lmeüzerinde aovo korelasyon yapılarının farklı türde işleyebilir olmasıdır.

Bu özel veri setinde, bu korelasyon için tahmin negatiftir; Bu, id için ortalama kare hatasının kalıntı kare hatadan daha az olduğunu açıklamaya yardımcı olur. Negatif bir korelasyon, bir bireyin ilk ölçümünün ortalamanın altında olması durumunda, ortalama olarak ikincilerinin ortalamanın üzerinde olacağı anlamına gelir; bireylerin toplam ortalamalarının, sıfır korelasyon veya pozitif bir korelasyon olması durumunda beklediğimizden daha az değişken olması anlamına gelir.

lmeRastgele bir etki ile kullanmak , bu korelasyonun negatif olmaya zorlandığı bir bileşik simetri modelinin takılmasına eşdeğerdir; kullanarak korelasyonun negatif olmasına izin verilen bir modele uyabiliriz gls:

> anova(gls1 <- gls(value ~ factor, correlation=corCompSymm(form=~1|id),
                    data=tau.base))
Denom. DF: 84 
            numDF   F-value p-value
(Intercept)     1 199.55223  <.0001
factor          3   1.33985   0.267

Bu ANOVA masası, aovfit ve fit şeklindeki masayı kabul eder lm.

Tamam, peki ne? Eh, idgözlemler arasındaki korelasyonun ve gözlemler arasındaki korelasyonun negatif olmaması gerektiğine inanıyorsanız, lmeuyum aslında kullanımdaki uyumdan daha uygundur, aovya lmda kalıntı varyansın tahmini biraz daha iyidir. Eğer inanırsan Ancak, gözlemler arasındaki korelasyon negatif olabilir, aovya da lmya da glsdaha iyidir.

Ayrıca, korelasyon yapısını daha fazla keşfetmek de ilginizi çekebilir; Genel bir korelasyon yapısına bakmak için,

gls2 <- gls(value ~ factor, correlation=corSymm(form=~unclass(factor)|id),
data=tau.base)

Burada çıktıyı sadece korelasyon yapısı ile sınırlandırıyorum. 1 ila 4 arasındaki değerler dört seviyeyi temsil eder factor; faktör 1 ve faktör 4'ün oldukça güçlü bir negatif korelasyona sahip olduğunu görüyoruz:

> summary(gls2)
...
Correlation Structure: General
 Formula: ~unclass(factor) | id 
 Parameter estimate(s):
 Correlation: 
  1      2      3     
2  0.049              
3 -0.127  0.208       
4 -0.400  0.146 -0.024

Bu modeller arasında seçim yapmanın bir yolu olasılık oranı testidir; bu, rastgele etkiler modelinin ve genel korelasyon yapı modelinin istatistiksel olarak anlamlı bir farklı olmadığını göstermektedir; Bu olduğunda, basit model genellikle tercih edilir.

> anova(lme1, gls2)
     Model df      AIC      BIC    logLik   Test  L.Ratio p-value
lme1     1  6 108.0794 122.6643 -48.03972                        
gls2     2 11 111.9787 138.7177 -44.98936 1 vs 2 6.100725  0.2965

2
Aslında (ve böylece tüm ANOVA'lar için mümkün kılan ) lmeaynı sonuçları elde etmek için bileşik simetriyi kullanmak , yani çağrıda korelasyon argümanını kullanmakla mümkündür :aovlmelmeanova(lme(value ~ factor, data = tau.base, random = ~1|id, correlation = corCompSymm(form = ~1|id)))
Henrik

1
Güzel buldum. Fakat bu şekilde fazladan bir parametre yok mu? Üç varyans parametresine sahiptir; id için varyans, rezidüel varyans ve korelasyon, gls sadece rezidüel varyans ve bir korelasyona sahipken.
Aaron - Monica

1
Argümanınız makul görünüyor, ancak sonuçlar aynı fikirde değil. Tüm tek yönlü varyans analizi tablo ( aov, lmeve bileşik simetri olmayan lmebileşik simetrili) DFS tam olarak aynı sayıda vardır.
Henrik

1
Beni, bu üç parametrenin gerçekten ilk ikisinin de aşırı değerlenmesi olduğuna ikna etmeniz gerekir. Nasıl ilişki kurdukları hakkında çalıştınız mı?
Aaron - Monica

1
Hayır anova.lme(). Çıktısına güveniyorum . Cevabınıza göre, ANOVA ve karma modeller arasındaki ilişkinin korelasyon yapısında yattığını anladım. Daha sonra, tamamlanmış bir simetrik korelasyon yapısının kurulmasının iki yaklaşım arasında eşitlik sağladığını okudum. Bu yüzden ben dayattı. Bunun başka bir df yediğini mi bilmiyorum. Ancak çıktı bu yorumlamaya katılmıyor.
Henrik

2

aov()modele lm()en küçük kareler kullanılarak lmeuyar, maksimum olasılıkla uyar. Doğrusal modelin parametrelerinin tahmin edilmesindeki bu fark muhtemelen f değerlerinizdeki (çok küçük) farktan kaynaklanmaktadır.

Uygulamada, (örneğin hipotez testleri için) bu tahminler aynıdır, bu yüzden birinin diğerinden daha güvenilir olarak nasıl değerlendirilebileceğini görmüyorum. Farklı model uydurma paradigmalarından geliyorlar.

Kontrastlar için, faktörleriniz için bir kontrast matrisi ayarlamanız gerekir. Venebles ve Ripley, bunun 4. baskının p 143, p.146 ve p.293-294 tarihlerinde nasıl yapıldığını göstermektedir.


Hmm, ama neden bazen farklılıklar var ve bazen sonuçlar tam olarak eşit? Furthemrore, o zaman kullanmak mümkün görünmektedir lmeveya lmerbenzer fakat özdeş olmayan bir yöntem kullanır (katı konuşma), bir ANOVA hesaplamak için. Öyleyse, R'deki tekrarlanan ölçüm ANOVA'ları için kontrastları hesaplamanın bir yolu yok mu?
Henrik,

Eğer sisteminiz modellemeniz gerçekten en küçük karelerden daha doğrusalsa ve ML aynı istatistiği vermelidir. Sadece verilerde iki yöntemin farklı sonuçlar vereceği başka bir yapı olduğunda. Pinheiro ve Bates bunu karma efektli modeller kitabında anlatıyorlar. Ayrıca muhtemelen 'tam' eşit değillerdir, eğer sig rakamlarında yeterince ileri gidecekseniz, bazı farklar bulacağınızdan eminim. Ancak tüm pratik amaçlar için aynıdır.
Chris,
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.