Negatif binom GLM'nin “tamsayı olmayan” uyarısı ile nasıl başa çıkılır?


11

Negatif bir binom modeli kullanarak R'de bir konağı etkileyen parazitlerin ortalama şiddetlerini modellemeye çalışıyorum. Şunu söyleyen 50 veya daha fazla uyarı almaya devam ediyorum:

In dpois(y, mu, log = TRUE) : non-integer x = 251.529000

Bununla nasıl başa çıkabilirim? Kodum şöyle görünüyor:

mst.nb = glm.nb(Larvae+Nymphs+Adults~B.type+Month+Season, data=MI.df)

1
Lütfen kişilerin birlikte çalışması için tekrarlanabilir bir örnek ekleyin .
gung - Monica'yı eski

5
Negatif bir binom GLiM bir çeşit sayım modelidir. Yanıtın sayılması gerekiyordu. Bir sayı , tanım gereği, kesirli bir değer olamaz. Bu tür değerleriniz var mı?
gung - Monica'yı eski

1
"Yoğunluklar" ile ne demek istediğinizi açıklığa kavuşturabilir misiniz? Bir parazit sayısını bir ev sahibi için bir miktar yüzey alanına mı bölüyorsunuz?
gung - Monica'yı eski

1
Verilerim var, ancak farklı örnekleme çabalarını açıklamak için yoğunlukları hesaplamak zorunda kaldım. Orada sayım verilere ihtiyacım olduğunu anlıyorum, ancak sadece aynı modeli kullanarak tamsayı olmayan sayılarla çalışmanın başka bir yolu olup olmadığını merak ediyordum. Yoğunluklar için parazit sayısını enfekte konakçı sayısına böldüm.
Natasha

2
@Natasha, yapma. Bu sorunu ele almanın doğru yolunun Gung'un cevabına göre, bir ofset ile olması büyük olasılıkla muhtemeldir. Emin olmak istiyorsanız, diferansiyel örnekleme yoğunluklarının nereden geldiğini biraz daha açıklamak için sorunuzu düzenleyin. Bu farklı sayıda ev sahibi mi? Farklı örnekleme süreleri veya toplayıcı sayısı?
Ben Bolker

Yanıtlar:


9

Negatif binom sayım verileri için bir dağılımdır, bu nedenle yanıt değişkeninizin sayım olmasını istersiniz (yani, negatif olmayan tam sayılar). Bununla birlikte, "farklı örnekleme çabalarını" açıklamak uygun olur (Ne demek istediğinizi tam olarak bilmiyorum, ama bunun özünü alıyorum). Ancak, sayılarınızı başka bir sayıya bölerek bunu yapmaya çalışmamalısınız. Bunun yerine, bu diğer sayıyı ofset olarak kullanmanız gerekir . Bir ofsetin ne olduğuna dair CV hakkında güzel bir tartışma var: Bir Poisson regresyonunda bir ofset ne zaman kullanılır? Benim tahminim modelinizin şöyle bir şey olması gerektiğidir:

mst.nb = glm.nb(Larvae+Nymphs+Adults~B.type+Month+Season + offset(log(num.hosts)), 
                data=MI.df)

Teşekkür ederim. Bunu deneyeceğim ve ne yaptığımı söylemek için geri döneceğim.
Natasha

OT: Bir şey eksik, bir regresyonda birçok sonuca sahip olmak ne anlama geliyor ??
Bakaburg

@Bakaburg, ne demek istediğini anlatamam.
gung - Monica'yı eski

Koddaki "Larvalar + Su Perileri + Yetişkinler ~" kısmı.
Bakaburg

1
@Bakaburg, bu R'nin nasıl çalıştığıyla ilgili. Ekleme öğe biçimindedir. 3 vektör eklenmesi size her bir elemanın karşılık gelen 3 elemanın toplamı olduğu tek bir vektör verir. Bir R formülünün LHS'sinde birden fazla yanıt değişkenine sahip olmak için kullanmanız gerekir cbind().
gung - Monica'yı eski

4

Bu bir uyarı, ölümcül bir hata değil. glm.nb (), tamsayı olan sonuç değişkeniniz olarak sayım bekliyor. Verileriniz tamsayı değil: 251.529.

R "Hmmm ... bunu kontrol etmek ve iyi olduğundan emin olmak isteyebilirsiniz, çünkü olması doğru görünmeyebilir." Hafızam doğruysa, SPSS böyle bir uyarı vermez.

Tamsayıya sahip olmasanız bile doğru modeli kullandığınızdan eminseniz, görmezden gelin ve devam edin.


1
Bunun bir uyarı olduğunu biliyorum, etrafında bir yol olup olmadığını merak ediyordum. Tamsayılar olsa da var, bu yüzden tamsayılarla çalışmanın bir yolu olup olmadığını ancak aynı modeli farklı bir kodla kullanarak görmeye çalışıyordum.
Natasha

1
Burada açıklanan uyarıları nasıl bastırırsınız: stackoverflow.com/questions/16194212/…
kjetil b halvorsen

-2

Ben bir ekolojik parazitologum .. Bunu ele almanızın yolu, parazit olan ve olmayanları bağlamak ve sonra bir binom dağılımı kullanarak .. aşağıdaki koda bakın.

Aynı zamanda birden fazla y değişkeni içeren bir glm kullanmadım .. hadi parazitleşmiş larvalara bakmak istediğinizi varsayalım: sağlıklı larvaların # ve parazitlenmiş # larvalarınız olacaktır.

Diyelim ki: Lh ve Lp

Yani mesela

parasitizedL = cbind (Lp, Lh) hist (parazitleştirilmiş) # Tahmin ediyorum, sadece glm ile düzenli bir binom dağılımı kullanabilirsiniz .. ve negatif.binomiyal modele ihtiyacınız olmayabilir PLarvae1 = glm (parazitleştirilmiş L ~ B.type + Month + Season, aile = binom, data = MI.df)

sonra hangi faktörlerin parazitizmi önemli ölçüde etkilediğini görmek için adım adım model azaltma yapın ...

http://bbolker.github.io/mixedmodels-misc/glmmFAQ.html

ancak tekrarlı örneklemeyi hesaba katmak için rastgele efektlere sahip olmanız gerekiyor gibi görünüyor ... bu yüzden rastgele etkiniz (1 | Sezon / Ay) olacak ...

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.