R kullanarak konular arasında ve içinde kontrastlı 4 x 4 karma ANOVA nasıl yapılır?


11

Burada R'nin yeni kullanıcısı tekrarlanan önlemler ANOVA ile mücadele ediyor.

4 seviyeli denekler faktörü ('gruplar' olarak adlandırılan tek bir değişkente kodlanmış) ve 4 seviyeli denekler faktörü (4 ayrı değişken 'DV1', 'DV2', 'DV3 olarak kodlanmış bir veri kümesine sahibim ',' DV4 ').

Aşağıdaki hedeflerim var:

  1. Genel olarak tekrarlanan önlemler ANOVA çalıştırın.
  2. Grupları özel kontrastlar kullanarak karşılaştırın (SPSS'de bir LMATRIX komutunda olduğu gibi).
  3. Özel kontrastlar kullanarak farklı DV düzeylerini karşılaştırın (SPSS'deki MMATRIX komutunda olduğu gibi).
  4. Eş zamanlı olarak 2) ve 3) 'ün bir kombinasyonunu yapın, bu yüzden sadece denekler içindeki faktörün belirli seviyelerindeki belirli grupları karşılaştırıyorum.
  5. Sıfıra TOPMAYAN bir kontrast seti çalıştırın.

Bunu SPSS'de çok fazla sorun olmadan yapabileceğimi biliyorum, ancak bunu R'de nasıl yapacağım hakkında net bir fikir edemiyorum. Bunun bazı bölümlerinin farklı paketler halinde nasıl çalışabileceğini gördüm, ama öyle değil bunun bir prosedürde veya R'deki bir dizi ilgili prosedürde nasıl çalışabileceğini gördüm.

Yanıtlar:


18

Bir çözümün taslağı (diğeri için aşağıya bakın):

  1. Verilerin SPSS'de olduğu gibi geniş formatta (yani, satır başına bir konu) yerine uzun formatta (yani satır başına değerde) olması gerekir, yeniden şekillendirme paketine bakın veya ?reshape. Bu, özne tanımlayıcısını (yani özne kimliği) gösteren bir değişken olması gerektiğini içerir.
  2. Tüm faktörler (konu tanımlayıcısı dahil) sınıf faktörü olmalıdır ( strbunu kontrol etmek için veri çerçevenizde çalıştırın ). Bunu yapmazsanız sonuçlarınız yanlış olur.
  3. Tip-III kareler toplamlarını elde etmek istiyorsanız, kodlama için varsayılan kontrastları ayarlayın:
    options(contrasts=c("contr.sum","contr.poly"))
  4. İstenen modeli belirleme lmegelen nlmepaket (yükleme ve üzerinden paket beforehands yük install.packages("nlme")ve library(nlme)) bir bileşen A'yı simetrik korelasyon yapısı kullanılarak. Cevaba ve özellikle bu soruya kabul edilen cevaba yapılan yorumuma bakın. Durumunuz böyle bir şey olabilir (şiddetle tavsiye edilen örnek veriler sağlarsanız, doğru kodu alırsınız):
    my.anova <- lme(dv ~ group*within, data = your.df, random = ~1|id, correlation = corCompSymm(form = ~1|id))
  5. anovaAnova tablosunu elde etmek için genel işlevi kullanın (bkz. ?anova.lme):
    anova(my.anova)
    Karelerin tip-III toplamlarını elde etmek için şu anovaargüman olarak typeayarlanmış komutu kullanın "marginal"(bu yalnızca kontrastlar efekt kodlamasına ayarlanmışsa işe yarar, bkz. Nokta 3):
    anova(my.anova, type = "marginal")
  6. Takılan türdeki nesne lmeartık çeşitli işlevlerin kontrast yapmasına izin veriyor. En esnek çözüm (ama oldukça kullanışlı olmayan) Lçağrısındaki argümandır anova.lme(tekrar bakın ?anova.lme).
    Diğer çözümler de lmeargüman olarak uygun bir nesne gerektirir :
    Ayrıca çok esnek estimableolan gmodels paketinin fonksiyonudur . Bu paket ayrıca fit.contrastsişlevi de sunar . Multcomp paketi kullanarak, (ancak bunları yalnızca faktörlerden birini kullanarak kontrast gerçekleştirebilir) alfa-hata düzenleme kullanımına tezat verir işlevi. Bununla birlikte, yeni ve umut verici bir yaklaşım kontrast paketidir, ancak şimdiye kadar olası tüm kontrastları gizlemiyor gibi görünmektedir.
    glht

Alternatif bir çözüm, standart -Vignette kombinasyonu afexve lsmeansana hatlarıyla belirtildiği gibi standart ANOVA kullanmaktır .afex


(+1) Harika ve çok öğretici bir yanıt. Blog yazısı bekleniyor ...
chl

?anova.lmebenim için çalışmaz ve methods(anova)görünmeyen bir işlev olarak listeler.
John

@John Daha nlmeönce yüklediniz mi ? Değilse, koş library(nlme), o zaman işe yarayacak. Hala çalışmıyorsa, install.packages("nlme")önce.
Henrik

ah ... Görünüşe göre, sadece lme4
John

@ Henrick, adım 5'e kadar gidebilirim, ancak belirli konu içi faktör düzeylerindeki konular arasında belirli faktörleri karşılaştırarak kontrast ayarlayamıyorum. Gördüğüm tüm çevrimiçi belgeler, denekler arası farklı düzeylerdeki farklılıkları test etmekle ilgilidir. Örnek kodunuz var mı? Sadece orada yazacaksanız blog gönderisini bekleyebilirim.
aquadhere
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.