Metafor paketi: önyargı ve hassasiyet teşhisi


9

Birden çok sonucu olan bazı makaleler içeren çok seviyeli bir meta-analiz yapıyorum. Bu nedenle rma.mv()işlevi kullanıyorum . Örnek kod:

test.main = rma.mv(yi,vi,random = ~1|ID, data = data) 

İki sorum var:

  1. Bir önceki sorguda kullanırken rma.mv(), ranktest()huni arsa asimetrisinin güvenilir bir test olmadığını okudum . Bununla birlikte, orijinal modele moderatör olarak örnek varyansı eklenmişse, bu model Egger testine benzer olacaktır:

    test.egger = rma.mv(yi,vi, mod = vi, random = ~1|ID, data = data)
    

    Bu kod, bu rehberin doğru bir yorumu mu? Ayrıca, huni grafikleri de (az çok) rma.mv()modelli bir araç olarak işe yaramaz mı?

  2. Ne leave1out()de ne de sonuçların hassasiyetini değerlendirmek için trimfill()çalışmayın rma.mv(). Şu anda rma.mv()ustaca bir R bilgisi içermeyen modeller için başka duyarlılık analiz araçları mevcut mu?

Yanıtlar:


8

1 ile ilgili olarak: Evet, vimoderatör olarak eklemek aslında Egger'in testini daha karmaşık modellere genişletmenin mantıklı yoludur.

Aslında, örnekleme varyanslarını bir moderatör olarak kullanmak, "huni grafiği asimetrisi için regresyon testini" gerçekleştirme olasılıklarından sadece biridir. Diğerleri, örnekleme varyanslarının tersinin veya standart hataların (örnekleme varyanslarının kare kökü) veya bunların terslerinin veya toplam örnek boyutlarının (veya bazı fonksiyonlarının) moderatör olarak kullanılmasını önermiştir. Hangi öngörücünün "en iyi" seçenek olduğu tam olarak açık değildir (ve bu, meta analiziniz için hangi sonuç ölçüsünü kullandığınıza bağlı olabilir). Örneğin, bazı ölçümler için, örnekleme varyansını yaklaşık olarak tahmin etmek / tahmin etmek için kullandığımız denklem aslında gözlemlenen sonucun bir fonksiyonudur; ya da her ne demek istiyorsak. Bu durumda,

Ancak asıl nokta şu: Evet, daha karmaşık modellerle çalışırken modele uygun bir moderatör eklenerek regresyon testi kolayca uygulanabilir.

Huni grafiklerinin, verilerin altında yatan çok düzeyli / çok değişkenli yapılar olduğunda faydalı olup olmadığı tartışmalıdır. Örneğin, nokta kümeleri, istatistiksel bağımlılıklar (uygun çok düzeyli / çok değişkenli bir model kullanıldığında dikkate alınır) nedeniyle birlikte kümelenebilir, ancak huni grafiğinde, noktalar sadece şudur: bir grup nokta. Bu, huni parsellerinin yorumlanmasını daha zor hale getirir, çünkü (farklı renkler veya semboller kullanarak fazladan adımlar atmazsanız), bu doğal bağımlılıkları göremezsiniz - çoğu insanın (ben dahil) huni parsellerini en basit şekilde bile yorumlamakta iyi olmadığı anlamına gelmez. (bunu gösteren ampirik araştırmalar var!).

2 ile ilgili olarak: Evet, bir grup post model uydurma işlevi şu anda rma.mvmodel nesnelerle çalışmaz . Sadece bunu uygulamak için uğraşmadım ve bunların bazıları aslında biraz düşünmeyi gerektirecek. Örneğin, leave1out()her seferinde bir çalışmayı kaldırır - tek değişkenli bağlamda, bu, gözlemlenen her bir sonucu bir seferde kaldırmaya eşdeğerdir, ancak çok düzeyli / çok değişkenli verilerden ne haber? Ayrıca gözlenen her bir sonucu bir seferde kaldır? Veya nokta kümelerini kaldırmak ister misiniz? Veya farklı seçenekler sunabilir misiniz? Kesme ve doldurma ile ilgili olarak (bu yöntemin gerçekten ne kadar yararlı olduğu sorusunu bir kenara bırakarak): Yöntemin çok düzeyli / çok değişkenli verilere genişletilmesi hakkında bir makale yazmaya değer.

Bu nedenle, duyarlılık analizleri yapmak harika, ancak şu andan itibaren, bunlardan bazılarını manuel olarak yapmanız gerekecek. Bir defaya mahsus analizler, basit bir döngü için kolayca yapılır ve "bir" nin ne olduğunu dikkatlice düşünür (örn. Gözlemlenen her sonuç, her küme / çalışma). Regresyon testini yapabilirsiniz ve belki de şimdilik trim-and-fill bırakabilirsiniz. Standart kalıntılar aracılığıyla elde edilebilir rstandard(), böylece verileri potansiyel aykırı değerler için inceleyebilirsiniz. Şapka değerlerini hatvalues()(sadece çapraz veya tüm şapka matrisi boyunca kaldıraçlar aracılığıyla ) elde edebilirsiniz, bu da puanların sonuçlar üzerinde güçlü bir etkiye sahip olduğunu gösterir. Bu bağlamda gerçekten yararlı bir diğer önlem de Cook'un nesneler cooks.distance()için de elde edebileceğiniz mesafesidirrma.mv .


2
Vaov! Düşünceli ve kapsamlı cevaplarınız için teşekkür ederiz. Önerdiğiniz gibi for-loop kodunu nasıl kullanacağınızı anlamaya çalışacağım.
chabeck

1
Bunu yararlı bulduğunu duyduğuma sevindim. Çeşitli model uydurma işlevleri , gözlemlenen sonuçları düşürmek (kümeleri) için bir for-loop ile birlikte kolayca kullanabileceğiniz rma.mv()bir subsetargümana sahiptir.
Wolfgang

5
Wolfgang, önerilerinizin ürünü burada görülebilir : aobpla.oxfordjournals.org/content/7/… Tekrar teşekkürler!
chabeck
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.