Должен ли я использовать смещение для моего Poisson GLM?


11

Я провожу исследование, чтобы посмотреть на различия в плотности и богатстве видов рыб при использовании двух разных методов подводной визуальной переписи. Мои данные изначально были данными подсчета, но затем они обычно меняются на плотность рыбы, но я все же решил использовать Poisson GLM, что, я надеюсь, правильно.

model1 <- glm(g_den ~ method + site + depth, poisson)

Моими 3 переменными предиктора являются метод, место и глубина, которые я указывал в качестве факторов при вводе их.

Мои переменные ответа - богатство видов окуня, плотность окуня и то же самое для других групп рыб. Я знаю, что плотность не является целым числом, и это числовые данные, например, 1,34849. Однако сейчас я получаю эту ошибку:

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

Я читал, и многие люди предлагают использовать смещение, это самая рекомендуемая вещь, чтобы сделать?


1
Дело не в том, как использовать R. Это основной статистический вопрос, замаскированный под вопрос R. Это должно быть по теме здесь.
gung - Восстановить Монику

Ответы:


11

Здесь есть несколько вопросов:

  1. Вы должны использовать наблюдаемые значения в качестве переменной ответа. Вы не должны использовать плотности ( g_den).
  2. Если наблюдаемые значения относятся к разным областям, необходимо взять журнал этих областей в качестве новой переменной:

    larea = log(area)
  3. Вы можете контролировать различные области для наблюдений двумя различными способами:

    • Используя lareaв качестве смещения. Это сделает ваш ответ на самом деле нормой (даже если то, что указано в левой части вашей модели, является счетчиком ).
    • Используя lareaкак ковариату. Это будет контролировать различные области, но не сделает ваш ответ эквивалентным скорости. Это более гибкий подход, который позволит вам оценить, lareaвлияет ли увеличение на увеличение или уменьшение влияния на счет (т. Е. Наклона меньше или больше 1).

Более подробная информация об этих проблемах содержится в следующих темах резюме:


6

Похоже, вы разделили количество рыб на объем (или, возможно, площадь) обследованной воды. В этом случае смещение действительно подходит, вы должны использовать журнал того, на что вы делились. возможно

model1 <- glm(g_den ~ method + site + depth + offset(log(area)), poisson)

(отредактировано из более ранней неверной версии, отсутствует журнал)

Причина сообщения об ошибке заключается в том, что распределение Пуассона обычно целочисленное, но ответ не был целым числом. Это изменяется, как только смещение присутствует; (response / offset) должно быть целым числом (что, конечно, при условии, что исходные значения были целыми числами).


2
Вы упоминаете, что в своем ответе вы должны использовать преобразование области журналов (поскольку модель Пуассона использует ссылку журналов), но ваш код не выполняет преобразование. Я не думаю, что offsetприменяет преобразование по умолчанию, но прошло уже много времени с тех пор, как я использовал offset.
Якобус

3
Обратите внимание, что по умолчанию преобразование offset() не применяется; это просто заставляет коэффициент быть 1. См., например, здесь .
gung - Восстановить Монику

1
Спасибо за комментарии. Так что я должен изменить свои данные обратно на счетчики, а не плотности и включить площадь в качестве отдельной переменной? Мне также посоветовали на другом форуме сделать гамма- или инверсную гауссову модель и изменить мои нулевые значения на 0,00001, если бы я сохранял данные в виде плотностей, как вы думаете, это также будет уместно?
Вивьен,

4
E(count)=exp(βTx)area=exp(βTx+log(area))E(count/area)=E(count)/area=exp(βTx)

5
Вы не можете использовать плотности в качестве ответа. Вы должны использовать исходные значения в качестве ответа. Включение смещения автоматически сделает результат подсчета эквивалентным плотности правильно.
gung - Восстановить Монику

5

Если вы собираетесь моделировать с использованием Пуассона, вы должны иметь целочисленные значения для вашей переменной ответа. Тогда у вас есть два варианта

  • Используйте площадь или другой подходящий знаменатель в качестве смещения. Это обычно должно быть зарегистрировано сначала
  • Включите область или т. Д. В качестве переменной предиктора. Опять же, это обычно включается в журнал, потому что вы моделируете количество журналов.

Если вы используете подход со смещением, вы говорите, что если я удвою площадь, то получу удвоенный счет. Если вы используете подход предиктора, вы говорите, что знаете, если вы умножаете площадь, которую вы умножаете, но не обязательно на тот же коэффициент.

Это твой звонок.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.