Staram się modelować średnie intensywności pasożytów atakujących gospodarza w R przy użyciu ujemnego modelu dwumianowego. Ciągle otrzymuję 50 lub więcej ostrzeżeń, które mówią:
In dpois(y, mu, log = TRUE) : non-integer x = 251.529000
Jak sobie z tym poradzić? Mój kod wygląda następująco:
mst.nb = glm.nb(Larvae+Nymphs+Adults~B.type+Month+Season, data=MI.df)
Odpowiedzi:
Ujemny dwumian jest rozkładem danych zliczania, więc naprawdę chcesz, aby zmienna odpowiedzi była zliczana (czyli nieujemne liczby całkowite). To powiedziawszy, należy wziąć pod uwagę „różne próby próbkowania” (nie wiem dokładnie, o czym mówisz, ale rozumiem o co chodzi). Nie powinieneś jednak tego robić, dzieląc liczby przez inną liczbę. Zamiast tego musisz użyć tego drugiego numeru jako przesunięcia . Jest ładna dyskusja na temat CV, co to jest przesunięcie: kiedy użyć przesunięcia w regresji Poissona? Domyślam się, że twój model powinien być taki:
źródło
cbind()
.To ostrzeżenie, a nie fatalny błąd. Glm.nb () oczekuje, że liczy się jako zmienna wynikowa, które są liczbami całkowitymi. Twoje dane nie są liczbami całkowitymi: 251,529.
R mówi „Hmmm… możesz to sprawdzić i upewnić się, że wszystko jest w porządku, ponieważ może nie wyglądać dobrze”. Jeśli moja pamięć jest poprawna, SPSS nie daje takiego ostrzeżenia.
Jeśli masz pewność, że używasz odpowiedniego modelu, nawet jeśli nie masz liczb całkowitych, zignoruj go i kontynuuj.
źródło
Jestem ekologicznym pasożytnikiem .. sposób, w jaki powinieneś sobie z tym poradzić, łącząc żywicieli, którzy byli pasożytowani i tych, którzy nie byli, a następnie stosując rozkład dwumianowy .. zobacz poniższy kod.
Nigdy też nie użyłem zmiennej glm w / więcej niż jednej y. Powiedzmy, że chcesz spojrzeć na pasożytujące larwy: miałbyś # larw, które były zdrowe, i # pasożytów.
Powiedzmy: Lh i Lp
Na przykład
pasożytowane L = cbind (Lp, Lh) hist (pasożytowane) # Zgaduję, że możesz po prostu użyć regularnego rozkładu dwumianowego w / glm .. i może nie potrzebować modelu dwumianowego PLarvae1 = glm (pasożytowane L ~ typ + miesiąc + sezon, rodzina = dwumianowa, dane = MI.df)
następnie wykonaj stopniową redukcję modelu, aby zobaczyć, który z twoich czynników znacząco wpływa na pasożytnictwo ... patrz poniższy link
http://bbolker.github.io/mixedmodels-misc/glmmFAQ.html
wygląda jednak na to, że musisz mieć losowe efekty, aby uwzględnić powtarzające się próbkowanie. więc prawdopodobnie twój losowy efekt to (1 | Sezon / miesiąc) ... ale trudno powiedzieć bez znajomości twoich danych
źródło