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.
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.lme4
En 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 .