Modèles de décompte zéro gonflé en R: quel est le véritable avantage?

11

Pour analyser les dénombrements d'oiseaux gonflés à zéro, j'aimerais appliquer des modèles de comptage à gonflage nul en utilisant le package R pscl . Cependant, après avoir regardé l'exemple fourni dans la documentation pour l'une des principales fonctions ( ? Zeroinfl ), je commence à douter du véritable avantage de ces modèles. Selon l'exemple de code qui y est donné, j'ai calculé les modèles standard de poisson, quasi-poisson et bionomial négatif, les modèles simples de poisson et de binôme négatif gonflés à zéro et les modèles de poisson et de binôme négatif gonflés à zéro avec des régresseurs pour la composante zéro. J'ai ensuite inspecté les histogrammes des données observées et ajustées. (Voici le code pour répliquer cela.)

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)!

Histogramme des données observées et ajustées

Je ne vois aucune différence fondamentale entre les différents modèles (à part que les données d'exemple ne me semblent pas très "gonflées à zéro" ...); en fait, aucun des modèles ne donne une estimation à mi-chemin raisonnable du nombre de zéros. Quelqu'un peut-il expliquer quel est l'avantage des modèles zéro gonflé? Je suppose qu'il devait y avoir une raison de choisir cela comme exemple pour la fonction.

user7417
la source

Réponses:

15

Je pense que c'est un ensemble de données mal choisi pour explorer les avantages des modèles gonflés à zéro, car, comme vous le constatez, il n'y a pas beaucoup d'inflation nulle.

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

montre que les valeurs prévues sont presque identiques.

Dans les ensembles de données avec plus d'inflation nulle, les modèles ZI donnent des résultats différents (et généralement mieux adaptés) que Poisson.

Une autre façon de comparer l'ajustement des modèles est de comparer la taille des résidus:

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

montre que, même ici, les résidus du Poisson sont plus petits que ceux du ZINB. Si vous avez une idée de l'ampleur du résidu qui est vraiment problématique, vous pouvez voir quelle proportion des résidus dans chaque modèle est supérieure à cela. Par exemple, s'il était hors de plus de 1 était inacceptable

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

montre que ce dernier est un peu mieux - 20 moins de gros résidus.

Ensuite, la question est de savoir si la complexité supplémentaire des modèles en vaut la peine.

Peter Flom - Réintégrer Monica
la source
6

XjePojes(μ)Xjeμ^jeXjeXjePojes(μ^)XjeXje

Scortchi - Réintégrer Monica
la source
Quel autre type de comparaison recommanderiez-vous?
user7417
Voir la réponse de Peter pour de bonnes comparaisons entre les modèles.
Scortchi - Réintégrer Monica