Модели с нулевым раздувом в R: в чем реальное преимущество?


11

Для анализа числа птиц с нулевым уровнем инфляции я хотел бы применить модели с нулевым уровнем инфляции с использованием пакета R pscl . Однако, взглянув на приведенный в документации пример для одной из основных функций ( ? Zeroinfl ), я начинаю сомневаться в том, каково реальное преимущество этих моделей. Согласно приведенному там образцу кода, я рассчитал стандартные модели Пуассона, квази-Пуассона и отрицательного бионома, простые модели с нулевым инфляцией Пуассона и отрицательного бинома и модели с нулевым инфляцией Пуассона и отрицательного бинома с регрессорами для нулевой компоненты. Затем я проверил гистограммы наблюдаемых и подобранных данных. (Вот код для воспроизведения этого.)

library(pscl)
data("bioChemists", package = "pscl")

## standard count data models
fm_pois  <- glm(art ~ .,    data = bioChemists, family = poisson)
fm_qpois <- glm(art ~ .,    data = bioChemists, family = quasipoisson)
fm_nb    <- glm.nb(art ~ ., data = bioChemists)

## with simple inflation (no regressors for zero component)
fm_zip  <- zeroinfl(art ~ . | 1, data = bioChemists)
fm_zinb <- zeroinfl(art ~ . | 1, data = bioChemists, dist = "negbin")

## inflation with regressors
fm_zip2  <- zeroinfl(art ~ fem + mar + kid5 + phd + ment | fem + mar + kid5 + phd + 
                     ment, data = bioChemists)
fm_zinb2 <- zeroinfl(art ~ fem + mar + kid5 + phd + ment | fem + mar + kid5 + phd + 
                     ment, data = bioChemists, dist = "negbin")

## histograms
breaks <- seq(-0.5,20.5,1)
par(mfrow=c(4,2))
hist(bioChemists$art,  breaks=breaks)
hist(fitted(fm_pois),  breaks=breaks)
hist(fitted(fm_qpois), breaks=breaks)
hist(fitted(fm_nb),    breaks=breaks)
hist(fitted(fm_zip),   breaks=breaks)
hist(fitted(fm_zinb),  breaks=breaks)
hist(fitted(fm_zip2),  breaks=breaks)
hist(fitted(fm_zinb2), breaks=breaks)!

Гистограмма наблюдаемых и подобранных данных

Я не вижу какой-либо принципиальной разницы между различными моделями (кроме того, что данные примера не кажутся мне очень «раздутыми» ...); фактически ни одна из моделей не дает достаточно разумной оценки числа нулей. Может кто-нибудь объяснить, в чем преимущество моделей с нулевой раздувкой? Я предполагаю, что должна была быть причина, чтобы выбрать это как пример для функции.

Ответы:


15

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

plot(fitted(fm_pois), fitted(fm_zinb))

показывает, что прогнозируемые значения практически идентичны.

В наборах данных с большей нулевой инфляцией ZI-модели дают другие (и обычно более подходящие) результаты, чем Пуассон.

Еще один способ сравнить подгонку моделей - сравнить размеры остатков:

boxplot(abs(resid(fm_pois) - resid(fm_zinb)))

показывает, что даже здесь остатки от Пуассона меньше, чем от ZINB. Если у вас есть некоторое представление о величине невязки, которая действительно проблематична, вы можете увидеть, какая доля невязок в каждой модели выше этой. Например, если отключение более чем на 1 было недопустимо

sum(abs(resid(fm_pois) > 1))
sum(abs(resid(fm_zinb) > 1))

показывает, что последний немного лучше - на 20 меньше крупных остатков.

Тогда вопрос заключается в том, стоит ли сложность моделей того, что стоит вам.


6

Подходящие значения будут показывать меньшую дисперсию, чем наблюдаемые значения из-за случайного отклонения. Вы не проводите осмысленное сравнение. Проще говоря, если бы ваши данные были просто вы не сравнили бы гистограмму с гистограммой подобранного значения - то же самое для всех ! Хотя было бы разумно смоделировать значения из и сравнить гистограммы & .х я μ я х * я Х * я ~ Р о я сек ( ц ) х * я х яXiPois(μ)xiμ^ixiXiPois(μ^)xixi


Какой другой тип сравнения вы бы порекомендовали?
user7417

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