Данные подсчета моделирования, где переменная смещения равна 0 для некоторых наблюдений

9

Я пытаюсь помочь студенту коллеги. Студент наблюдал и подсчитывал поведение птицы (количество вызовов) в экспериментальной обстановке. Количество вызовов, относящихся к конкретной наблюдаемой птице во время каждого эксперимента, определить невозможно, но подсчет числа птиц, внесших вклад в количество зарегистрированных вызовов, был возможен. Следовательно, мое первоначальное предложение состояло в том, чтобы включить количество птиц в качестве смещенного члена в модель Пуассона GLM, поэтому мы подгоняем ожидаемое количество вызовов на птицу .

журнал(0)знак равно-инфy-Infoffset(log(nbirds))-Inf

Я на самом деле подозреваю, что нам нужна модель препятствий (или аналогичная), где у нас есть отдельная биномиальная модель для "наблюдаемых вызовов"? (или нет) и усеченную модель подсчета для количества вызовов (на птицу) в ситуациях, когда были вызовы, когда мы включаем смещение только в подсчетную часть модели.

Попробовав это с помощью пакета pscl в R, но я все еще получаю ту же ошибку:

mod1 <- hurdle(NumberCallsCOPO ~ Condition * MoonVis +
               offset(log(NumberCOPO)) | 1, data = Data,
               dist = "poisson")

потому что тот же самый R-код ( glm.fitиспользуется внутренне hurdle()для соответствия части модели подсчета) проверяет, -Infхотя я не думаю, что это повлияет на соответствие модели для этих наблюдений. (Это правильное предположение?)

Я могу привести модель в соответствие, добавив небольшое число NumberCOPO(скажем 0.0001), но в лучшем случае это выдумка.

Можно ли добавить это небольшое исправление непрерывности на практике? Если нет, то какие другие подходы мы должны учитывать при обработке данных, когда мы можем использовать смещение в модели Пуассона, где переменная смещения может принимать значение 0? Все примеры, с которыми я сталкивался, предназначены для ситуаций, когда 0 не может быть возможным для переменной смещения.

Гэвин Симпсон
источник
2
В этом случае кажется, что ваша модель пытается соответствовать тавтологии: если наблюдается 0 птиц, вы также услышите 0 птиц. Я не уверен, что подгонка модели к строкам со смещением 0 подходит в этом случае.
Sycorax говорит восстановить Monica
Спасибо, как я упоминал ниже, это тоже моя внутренняя реакция. Я немного расширил свой ответ на ответ Барри (Spacedman) ниже.
Гэвин Симпсон
2
Я согласен с замечаниями , которые предполагают , что Пуассон скорость модели (то есть, с термином смещения) не подходит для тех случаев (и вы правильно сказали , что может быть отдельным, такие как биномиальное, модель должна применяться для включения тех случаев) , Ставка не может быть основана на нулевом знаменателе.
ttnphns

Ответы:

5

Таким образом, вы хотите смоделировать ответ «Количество вызовов на птицу», а неприятные линии - это то, где вы не наблюдали ни одной птицы? Просто брось эти строки. Они не добавляют никакой информации к тому, что вы пытаетесь смоделировать.

Spacedman
источник
Это тоже моя внутренняя реакция; вероятно, обдумывая это, но я могу представить себе ситуацию, когда птицы наблюдали, но звонков не было. Следовательно, модель препятствий, но внутренне она все еще использует, glm.fitкоторая создает колебания, даже если эти значения не учитываются в подсчитываемой части модели. Я полагаю, что могу сделать модель препятствий вручную, но я не хочу этого делать, просто советую студенту.
Гэвин Симпсон
3
Если у вас много нулевых вызовов, сделанных от ненулевых наблюдаемых птиц, вы, возможно, захотите сделать модель Пуассона с нулевой раздувкой (или аналогичную), но это сильно отличается от нулевых наблюдаемых птиц, когда вас интересует количество вызовов на птицу .
Spacedman
В этом случае я не думаю, что у нас их много; выброс данных о 0 наблюдаемых птицах и подгонка с отрицательным биномом, кажется разумным первым шагом.
Гэвин Симпсон
2

В пуассоновском GLM смещение - это просто мультипликативное масштабирование моделируемой скорости Пуассона, а пуассон с нулевой скоростью не полезен или даже не имеет смысла ...

Вот почему Spacedman является правильным!

Луковичный кальмар
источник
0

Просто попробуйте сделать это («Препятствие») «вручную (для« дидактического / гимнастического »смысла): разделить на биномиальную часть и часть cout, а также разделить регрессию logit и cout по отдельности! Или использовать стандартные модели Hurdle (+ тест Vuong) Poisson / negBin / Gamma ..., GAM. Мне не нужен "смещенный" var, мне кажется. ;-)

Иван Кшнясев
источник