Parametrik olmayan tekrarlı ölçümler R'de çok yönlü Anova?


16

Aşağıdaki soru bir süredir benim için kutsal olanlardan biri, umarım birisi iyi bir tavsiyede bulunabilir.

R kullanarak parametrik olmayan tekrarlanan ölçümler çok yönlü anova yapmak istiyorum.

Bir süredir çevrimiçi arama ve okuma yapıyorum ve şimdiye kadar sadece bazı durumlar için çözümler bulabildim: parametrik olmayan tekrarlanan önlemler anova, {car} Anova fonksiyonu ile çok yönlü parametrik olmayan için anormal fonksiyon anova, vb. Kısmi çözümler ben bu soru iplik ne aradığım değil. Bulgularımı şimdiye kadar bir süre önce yayınladığım bir yazıda özetledim (başlıklı: ANOVA'yı tekrarlayan önlemler (fonksiyonlar ve öğreticiler) , kimseye yardım etmesi durumunda)


Çevrimiçi okuduğum şey doğruysa, bu göreve karışık bir Sıradan Regresyon modeli (diğer bir deyişle Oransal Oran Modeli) kullanılarak ulaşılabilir.

Alakalı görünen, ancak konuyla ilgili herhangi bir skeç bulamadığım iki paket buldum:

Konuya yeni geldiğimde, buradaki insanlardan bazı yönler umuyordum.

Konuyla ilgili herhangi bir öğretici / önerilen okuma var mı? Daha da iyisi, birisi bunun R'de nasıl çalıştırılacağı ve analiz edileceği için basit bir örnek kod önerebilir (örneğin: "parametrik olmayan tekrarlanan ölçümler çok yollu anova")?


Tal, bunun için bir çözüm bulup bulamadığınızı sorabilir miyim? Aynı sorunu yaşıyorum ve aşağıdaki yanıtlar bir cevap bulmanıza yardımcı olabilir, ancak gerçekten kesin bir cevap vermeyin. 9 sıralı DV'im ve 2 zaman noktam var ve gerçekleştirmek istediğiniz aynı testi arıyorum.
Torvon

1
Merhaba Torvon. Hiç bir çözüm bulamadım. Permütasyon testlerinin en güvenli yol olacağını düşünüyorum, ama oturmak ve çalışmak için hiç zamanım olmadı. Eğer yaparsanız - cevabınızı göndermek için lütfen tekrar gelin. Şerefe, T
Tal Galili

Hızlı yanıtınız için teşekkür ederim. Bunu halletmem gerekecek ve size bildireceğim.
Torvon

Yanıtlar:


8

Ez Ben yazar olduğum paket, düzgün etkileşimleri yapmaz muhtemelen permütasyon testi hesaplar ezPerm adlı bir işlev () vardır, ancak (dokümantasyon itiraf kadar). En son sürüm ezBoot () adında bir işleve sahiptir; bu, tahmin istatistik olarak geleneksel hücre araçlarını kullanarak veya tahminler yapmak için karışık efekt modelleme kullanarak tekrarlanan ölçümleri (özneleri yeniden örnekleyerek, öznelerin içinde yeniden örnekleyerek) dikkate alan önyükleme yeniden örnekleme yapmanızı sağlar. tasarımdaki her hücre için. Hala karışık efektler model tahminlerinden bootstrap CI'lerinin "parametrik olmayan" olduğundan emin değilim; sezgilerim makul olmayan parametrik olarak kabul edilebilecekleri, ancak hala karışık efekt modelleri hakkında bilgi sahibi olduğum için bu alana olan güvenim düşük.


Merhaba Mike. Cevabınız ve paketiniz için teşekkür ederiz - gerçekten harika!
Tal Galili

@Mike, Paketiniz karışık çok faktörlü tasarımlar için tek çalışan gibi görünüyor. aovpAlternatif - artık gelen lmpermpaket - p-değerleri için çok büyük farklılıklar oluşturur, bkz bu . Birkaç sorum var: Uygulanması için bibliyografik referansları nerede bulabilirim ezPerm? İşlevin muhtemelen etkileşimleri doğru şekilde yapmadığını nasıl yorumlayabilirim ? Bu durumda post-hoc test ne olabilir? Teşekkürler!
toto_tico

@Mike, ezPerm( data = DATA, dv = DV, wid = WID, within = interaction(A,B), perms = 1e3)etkileşimin anlamlı olup olmadığını iki kez kontrol etmek mantıklı mı?
toto_tico

5

Şüphe duyduğunuzda, bootstrap! Gerçekten, böyle bir senaryoyu yürütmek için hazır bir prosedür bilmiyorum.

Önyükleme, eldeki verilerden bazı hata parametreleri oluşturmanın genel olarak uygulanabilir bir yoludur. Önyükleme prosedürleri, tipik parametrik varsayımlara dayanmak yerine, örnek tahminlerinizin karşılaştırılabileceği ampirik bir dağılım oluşturmak için numunenin özelliklerinden yararlanır.

Google bilgini altındır ... daha önce yapılmıştı ... en az bir kez.

Lunneborg, Clifford E .; Tousignant, James P .; 1985 "Tekrarlanan Önlemler Tasarımına Uygulanan Efron'un Bootstrap'ı." Çok Değişkenli Davranışsal Araştırma; Nis85, Cilt. 20 Sayı 2, s161, 18p


1
Lider Brett için teşekkürler! Birisi şimdiye kadar R'de uygulamak zorunda olup olmadığını merak ediyorum (sanırım değil).
Tal Galili

1
Sağ. R, bootstrap ve diğer randomizasyon yöntemlerine yardımcı olmak için birçok rutine sahiptir, ancak bu soruna özgü bir şey bulacağınızı bilmiyorum.
Brett

Çok güzel ilk cümle. Umarım telif hakkı yoktur, çünkü kullanmayı planlıyorum: D
gui11aume

0

Bazı forumlarda ve posta listelerinde bir "hile" söz konusudur - Joop Hox'un "Çok Düzeyli Analiz" kitabında (ikinci baskı, 2010), s.

Fikir şudur: Uzun verilerinizi, tüm DV yanıtlarınızı içeren yeni bir DV oluşturduğunuz ve bu sonucu tahmin etmek için DV'lerin doğası hakkında bilgi tutan bir dizin değişkeni kullandığınız uzun ve uzun bir veri kümesinde yeniden biçimlendirirsiniz.

Diyelim ki 9 depresyon belirtisi (ordinal), 2 ölçüm noktası ve 300 süjeniz var. Normal veri kümenizde 300 satır varken ve uzun veri kümenizde 600 satır varken, bu yeni veri kümesinde 9 (belirtiler) x 2 (zaman) x 300 (konular) satır olacaktır.

Yeni DV değişkeni "semptomlar" artık 9 semptomda katılımcıların semptom şiddetini, "indeks" değişkenleri semptomun doğası (1 ila 9) hakkında bilgi içermektedir ve daha sonra "zaman" ve "iki değişken vardır. Kullanıcı kimliği".

Şimdi ordinalbunu çalıştırmak için paketi kullanabilirsiniz .

data<-read.csv("data_long_long.csv", head=T)

data$symptoms <- factor(data$symptoms)
data$time <- factor(data$time)
data$index <-factor(data$index)

m1<-clmm2(symptoms ~ index+time, random=UserID, data = data, Hess=TRUE, nAGQ=10)

Özel durumumda, dizin ve zaman arasında önemli bir etkileşim olup olmadığıyla ilgileniyordum, bu yüzden bir ek model çalıştırdım ve karşılaştırdım:

m2<-clmm2(symptoms ~ index+time, random=UserID, data = data, Hess=TRUE, nAGQ=10)
anova(m1,m2)

CLMM2 rastgele bir kesişme modeli kullanır (bilgim dahilinde, paket ordinalrastgele eğimler yapmaz), rastgele kesişme modeli için kullanmıyorsanız modelleri CLM kullanarak çalıştırabilirsiniz, örneğin:

m3<-clm(symptoms ~ index+time, data = data)

1
m1 ve m2 tam olarak aynı değil, belki demek istediniz clmm2(symptoms ~ index*time, random=UserID, data = data, Hess=TRUE, nAGQ=10) anova(m1,m2). Yeni clmm fonksiyonu ile bunu nasıl ifade edebileceğinizi biliyor musunuz? Notasyondan emin değilim.
toto_tico
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.