Lme4'te yakınsama uyarıları konusunda ne kadar korkmalıyız?


88

Eğer bir glmer takarsak, modelin yakınsamaya zor anlar yaşadığını söyleyen bir uyarı alabiliriz.

>Warning message:
In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  :
  Model failed to converge with max|grad| = 0.00389462 (tol = 0.001)

@Ben Bolker tarafından bu konu tartışılan yakınsama kontrol etmek için başka bir yoludur :

 relgrad <- with(model@optinfo$derivs,solve(Hessian,gradient))
 max(abs(relgrad))
 #[1] 1.152891e-05

eğer max(abs(relgrad))olduğunu <0.001o zaman bu durumda biz çelişkili sonuçlar var bu yüzden işler ... Tamam olabilir? Modellerimize uygun yöntemler arasında nasıl seçim yapmalı ve kendimizi güvende hissetmeliyiz?

Öte yandan, aşağıdaki gibi aşırı değerler elde ettiğimizde:

>Warning message:
In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  :
  Model failed to converge with max|grad| = 35.5352 (tol = 0.001)

relgrad <- with(model@optinfo$derivs,solve(Hessian,gradient))
max(abs(relgrad))
#[1] 0.002776518

Bu, model sonuçlarını / tahminlerini / p-değerlerini görmezden gelmemiz gerektiği anlamına mı geliyor? 0.0027 devam edemeyecek kadar büyük mü?

Farklı iyimserler farklı sonuçlar verdiğinde ve değişkenlerin merkezlenmesi / parametrelerinin çıkarılması (en aza indirgenmiş modellerin) faydası yoktur ancak VIF'ler düşüktür, fazla dağılmamış modeller ve modeller sonuçları önceden tahmin edilen beklentilere dayanarak mantıklı bir anlam ifade eder. ne yapalım.

Yakınsama problemlerini nasıl yorumlayacağımız, tavsiye etmemizin ne kadar aşırı olması gerektiğine dair tavsiyeler ve bizi endişelendirebilir ve bunları belirtilenlerin ötesinde yönetmenin olası yolları çok yararlı olacaktır.

Kullanma: R version 3.1.0 (2014-04-10)velme4_1.1-6


10
Yeni versiyon lme4(sürüm 1.1-7), yazarların "yanlış alarm" uyarısı verme ihtimalinin daha düşük olduğuna inandığı farklı uyarı davranışlarına sahiptir. lme4En azından ilk durumda, en yeni sürüme güncellemeyi , modeli tekrar yerleştirmeyi ve hala benzer uyarılar alıp almadığınızı görmeyi deneyebilirsiniz .
Jake Westfall

Yanıtlar:


91

Korkmak. Çok korkma

Geçen yıl, IBM'in DeveloperWorks sitesinde yayınlanan bir makale için optim ve optimx yazarı John Nash ile görüştüm . Optimize edicilerin nasıl çalıştığını ve başarısız olduklarında neden başarısız olduklarını konuştuk. Sık sık yaptıklarını kabul ettiği için onu alıyor gibiydi. Bu nedenle teşhisler pakete dahil edilmiştir. Ayrıca “sorununuzu anlamanız” ve verilerinizi anlamanız gerektiğini de düşündü. Bunların hepsi, uyarıların ciddiye alınması gerektiği ve verilerinize başka şekillerde bakılması için bir davet olduğu anlamına gelir.

Tipik olarak, bir optimize edici, kayıp fonksiyonunu artık anlamlı bir miktarda iyileştiremediğinde arama işlemini durdurur. Temelde nereye gideceğini bilmiyor. Kayıp fonksiyonunun gradyanı bu noktada sıfır değilse, herhangi bir ekstremuma ulaşmadınız. Eğer Hessian pozitif değilse, ancak gradyan sıfır ise, minimum bulmadınız, ancak muhtemelen maksimum veya eyer noktası buldunuz. İyileştiriciye bağlı olarak, Hessian ile ilgili sonuçlar sağlanamayabilir. Optimx'te, KKT koşullarının değerlendirilmesini istiyorsanız, onlardan istemeniz gerekir - bunlar varsayılan olarak değerlendirilmez. (Bu koşullar, gerçekten minimum olup olmadığınızı görmek için degradeye ve Hessian'a bakar.)

Karışık modellerde sorun, rastgele etkilere yönelik varyans tahminlerinin pozitif olması ve böylece optimizasyon bölgesi içine bir sınır koymasıdır. Ancak modelinizde gerçekten rastgele bir etkinin gerekli olmadığını varsayalım - yani rastgele etkinin varyansı 0'dır. Optimize ediciniz bu sınıra girecek, devam edemeyecek ve sıfırdan farklı bir gradyanla duramayacak. Eğer bu rastgele etkiyi ortadan kaldırarak yakınsaklığı iyileştirirseniz, sorunun bu olduğunu bilirsiniz.

Bunun yanında, asimptotik maksimum olabilirlik teorisinin MLE'nin bir iç noktada bulunduğunu varsaydığını unutmayın (yani, lisans parametresi değerlerinin sınırında değil) - yani varyans bileşenleri için olabilirlik oranı testleri, gerçekten sıfır varyansının boş hipotezi olduğunda işe yaramayabilir. doğru. Test, RLRsim paketinde uygulandığı gibi simülasyon testleri kullanılarak yapılabilir.

Bana göre, parametre sayısı için çok az veri olduğunda veya önerilen model gerçekten uygun olmadığında optimize edicilerin sorun yaşadığından şüpheleniyorum. Cam terliği ve çirkin üvey kız kardeşi düşünün: ne kadar uğraşırsanız yapın ve bir şeyler vermek zorunda kalırsanız, verilerinizi modele bağlayamazsınız.

Veriler modele uygun olsa bile, tüm parametreleri tahmin etme gücüne sahip olmayabilir. Bu çizgiler boyunca bana komik bir şey oldu. Bir soruyu cevaplamak için bazı karma modelleri simüle ettimKarışık etkiler modelini yerleştirirken rastgele etkilerin ilişkilendirilmesine izin vermezseniz ne olacağı hakkında. İki rastgele etki arasında güçlü bir korelasyon bulunan verileri simüle ettim, sonra modele her iki yöne de lmer ile uyum sağladım: 0 korelasyonu ve serbest korelasyonları. Korelasyon modeli ilişkisiz modelden daha iyi uyuyor, ancak ilginç bir şekilde, 1000 simülasyonda, gerçek modele uyarlanırken 13 hata ve daha basit modele uyarlanırken 0 hata yaptım. Bunun neden olduğunu tam olarak anlamadım (ve benzer sonuçlara benzeyenleri yineledim). Korelasyon parametresinin oldukça işe yaramaz olduğundan ve optimize edicinin değeri bulamadığından şüpheliyim (çünkü önemli değil).

Farklı optimize ediciler farklı sonuçlar verdiğinde ne yapılması gerektiğini sordunuz. John ve ben bu konuyu tartıştık. Bazı optimize ediciler, bence, o kadar iyi değil! Ve hepsinde zayıflık noktaları var - yani onların başarısız olmasına neden olacak veri setleri. Bu yüzden çeşitli optimize ediciler içeren optimx'i yazdı. Aynı veri setinde birkaç tane çalıştırabilirsiniz.

İki optimize edici aynı parametreleri verirse, ancak farklı teşhisler - ve bu parametreler gerçek dünyayı anlamlandırırsa - o zaman parametre değerlerine güvenmeye meyilli olurum. Zorluk, aptal olmayan tanılamalardan kaynaklanabilir. Gradient işlevini ve / veya Hessian matrisini açıkça belirtmediyseniz, optimize edicinin bunları kayıp işlevinden ve sadece yanlış gidebilecek başka bir şey olan verilerden tahmin etmesi gerekir.

Eğer farklı parametre değerleri de alıyorsanız, farklı başlangıç ​​değerleri denemek ve daha sonra ne olacağını görmek isteyebilirsiniz. Bazı optimize ediciler ve bazı problemler başlangıç ​​değerlerine karşı çok hassastır. Top parkında başlamak istiyorsun.


3
Ahhh! Ben sadece bu soruyu "Korkma. Çok korkma" yapmak için açtım. şaka. Sana iyi. Ayrıca, yapma niyetim olmayan, gerçek bir cevaba dahil etmek de iyi.
Alexis

2
Nash'in yazdığı kitabı gerçekten okumalısınız. Uygulamada Hessian'ı belirlemek çok zordur, bu nedenle optimizer birçok durumda birleşebilir, ancak Hessian kesin değildir, bu nedenle farklı optimize edicilerden benzer sonuçlar elde ederseniz, ancak yakınsama uyarıları sizin sık sık hessianınızın sahte olmadığı şeklinde olur. Hessian veya gradient testleri güvence için sadece orada. Bazen bir kendir de, sınır kısıtlı bir eniyileyiciye sahip olduğunuzda pek bir anlam ifade etmiyor, ancak kendir algoritmanız bunu hesaba katmıyor (lme4 gibi) ve sınıra giriyorsunuz.

18

Sadece @ Placidia'nın büyük cevabını desteklemek istiyorum. James Hodges (2014) tarafından "Zengin Parametreli Doğrusal Modeller: Katkı, Zaman Serisi ve Rastgele Etkileri Kullanan Mekansal Modeller" bölümüne göz atmak isteyebilirsiniz. Karma modeller hakkında bilmediğimiz şeyleri reddeder ve aynı zamanda karmaşık modellerin takılması için pratik ipuçlarının yanı sıra geniş bir teori sunmaya çalışır.

Sık sık korkan bir modelciyim, Hodge'un "bulmaca" tartışmalarını paha biçilemez buluyorum. “Sabit etkiyle rekabet eden rastgele bir etki” ve “Rastgele Etkiler Arasındaki Rekabet” de dahil olmak üzere karma etki modellemesi uygulamasından kaynaklanan garip durumları açıklar. Tanıdık geliyor?

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.