Як поводитися з попередженням "не цілочисельне" від негативного біноміального GLM?


11

Я намагаюся моделювати середню інтенсивність паразитів, що впливають на господаря в R, використовуючи негативну біноміальну модель. Я постійно отримую 50 або більше попереджень, які говорять:

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

Як я можу впоратися з цим? Мій код виглядає приблизно так:

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

1
Будь ласка, додайте відтворюваний приклад для людей, з якими можна працювати.
gung - Відновіть Моніку

5
Негативний двочлен GLiM є своєрідною моделлю підрахунку. Відповідь передбачається підрахунками. Граф , за визначенням, не може бути дробовим. У вас є такі значення?
gung - Відновіть Моніку

1
Чи можете ви уточнити, що ви маєте на увазі під "інтенсивністю"? Чи поділяєте ви кількість паразита на, скажімо, кількість поверхні для господаря?
gung - Відновіть Моніку

1
У мене є дані про підрахунок, проте мені довелося обчислити інтенсивність для врахування різних зусиль вибірки. Я розумію, що мені потрібні дані про підрахунок, але мені було просто цікаво, чи є інший спосіб працювати з не цілими числами, використовуючи ту ж модель. За інтенсивністю я розділив кількість паразитів на кількість заражених господарів.
Наташа

2
@Natasha, не роби цього. Надзвичайно велика ймовірність того, що правильний спосіб вирішити цю проблему, відповідно до відповіді Гунга, є компенсованим. Якщо ви хочете бути впевнені, відредагуйте своє запитання, щоб пояснити трохи більше про те, звідки беруться різниці інтенсивності вибірки. Це різні кількості господарів? Різна тривалість вибірки часу чи кількість колекціонерів?
Бен Болкер

Відповіді:


9

Негативний двочлен - це розподіл для даних підрахунку, тому ви дійсно хочете, щоб ваша змінна відповіді була підрахунком (тобто, негативними цілими числами). Зважаючи на це, доцільно пояснювати "різні зусилля вибірки" (я не знаю точно, про що ви маєте на увазі, але я розумію суть цього). Однак ви не повинні намагатися зробити це, розділивши свої рахунки на інше число. Натомість вам потрібно використовувати це інше число як зміщення . У CV проходить хороша дискусія про те, що тут є компенсованим: Коли використовувати зсув в регресії Пуассона? Я здогадуюсь, що ваша модель повинна бути приблизно такою:

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

Дякую. Я спробую це і повернусь, щоб сказати, що я зробив.
Наташа

ОТ: мені щось не вистачає, що означає мати багато результатів у регресії ??
Бакабург

@ Бакабург, я не можу сказати, на що ти маєш на увазі.
gung - Відновіть Моніку

Частка "Личинки + німфи + дорослі ~" в коді.
Бакабург

1
@ Bakaburg, це про те, як працює R. Доповнення елементарно. Додавання 3 векторів дає вам один вектор, де кожен елемент є сумою 3 відповідних елементів. Щоб мати кілька змінних відповідей на LHS формули R, потрібно використовувати cbind().
gung - Відновити Моніку

4

Це попередження, а не фатальна помилка. glm.nb () очікує, що вважається вашою змінною результату, яка є цілими числами. Ваші дані не цілі числа: 251.529.

R каже: "Гммм ... ви можете перевірити це і переконатися, що це нормально, тому що це може виглядати не так". Якщо моя пам'ять правильна, SPSS не дає такого попередження.

Якщо ви впевнені, що використовуєте правильну модель, навіть не маючи цілих чисел, ігноруйте її та продовжуйте дію.


1
Я знаю, що це попередження, мені просто було цікаво, чи є шлях до цього. У мене є цілі числа, хоча я намагався зрозуміти, чи існує спосіб роботи з цілими числами, але використовую ту саму модель з іншим кодом.
Наташа

1
Як придушити попередження пояснив тут: stackoverflow.com/questions/16194212 / ...
Кьєтіл б Халворсеном

-2

Я екологічний паразитолог. Як ви повинні вирішити це, зв’язуючи господарів, які були паразитовані, та тих, яких не було, а потім використовуючи біноміальне розподіл.

Я також ніколи не використовував glm w / більше, ніж одну змінну y. Тому скажемо, що ви хочете подивитися на паразитизованих личинок: у вас буде # здорових личинок та #, які паразитували.

Скажімо: Lh і Lp

Так, наприклад

parasitizedL = cbind (Lp, Lh) hist (parasitized) # Я здогадуюсь, що ви можете просто використовувати звичайний біноміальний розподіл w / glm .. і, можливо, не знадобиться neg.binomial модель PLarvae1 = glm (паразитоване L ~ B.type + місяць + сезон, сім'я = двочлен, дані = MI.df)

то зробіть поетапне зменшення моделі, щоб побачити, який із ваших факторів значно впливає на паразитизм ... дивіться нижче за посиланням

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

однак схоже, що вам потрібно мати випадкові ефекти для врахування повторного відбору вибору .. тому, ймовірно, ваш випадковий ефект буде (1 | Сезон / Місяць) ... але важко сказати, не знаючи ваших даних

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.