Un modèle de données non négatives avec agrégation de zéros (Tweedie GLM, zéro gonflé GLM, etc.) peut-il prédire des zéros exacts?

15

Une distribution de Tweedie peut modéliser des données asymétriques avec une masse ponctuelle à zéro lorsque le paramètre (exposant dans la relation moyenne-variance) est compris entre 1 et 2.p

De même, un modèle gonflé à zéro (qu'il soit par ailleurs continu ou discret) peut avoir un grand nombre de zéros.

J'ai du mal à comprendre pourquoi lorsque je fais des prédictions ou que je calcule des valeurs ajustées avec ces types de modèles, toutes les valeurs prédites sont non nulles.

Ces modèles peuvent-ils réellement prédire des zéros exacts?

Par exemple

library(tweedie)
library(statmod)
# generate data
y <- rtweedie( 100, xi=1.3, mu=1, phi=1)  # xi=p
x <- y+rnorm( length(y), 0, 0.2)
# estimate p
out <- tweedie.profile( y~1, p.vec=seq(1.1, 1.9, length=9))
# fit glm
fit <- glm( y ~ x, family=tweedie(var.power=out$p.max, link.power=0))
# predict
pred <- predict.glm(fit, newdata=data.frame(x=x), type="response")

predne contient plus de zéros. J'ai pensé que l'utilité de modèles tels que la distribution Tweedie vient de sa capacité à prédire les zéros exacts et la partie continue.

Je sais que dans mon exemple, la variable xn'est pas très prédictive.

spore234
la source
Voir également les modèles de réponse ordinales semiparamétriques qui permettent des distributions arbitraires pour . Y
Frank Harrell

Réponses:

16

Notez que la valeur prédite dans un GLM est une moyenne.

Pour toute distribution sur des valeurs non négatives, pour prévoir une moyenne de 0, sa distribution devrait être entièrement un pic à 0.

Cependant, avec un lien de journal, vous n'allez jamais ajuster une moyenne d'exactement zéro (car cela nécessiterait que passe à - ).η-

Votre problème n'est donc pas un problème avec le Tweedie, mais bien plus général; vous auriez exactement le même problème avec le Poisson (GLM Poisson gonflé à zéro ou ordinaire) par exemple.

J'ai pensé que l'utilité de la distribution Tweedie vient de sa capacité à prédire les zéros exacts et la partie continue.

Étant donné que la prévision de zéros exacts ne se produira pour aucune distribution sur des valeurs non négatives avec un lien de journal, votre réflexion à ce sujet doit être erronée.

L'une de ses attractions est qu'il peut modéliser des zéros exacts dans les données, pas que les prédictions moyennes seront 0. [Bien sûr, une distribution ajustée avec une moyenne non nulle peut toujours avoir une probabilité d'être exactement zéro, même si la moyenne doit dépasser 0 Un intervalle de prédiction approprié pourrait bien comprendre 0, par exemple.]

Peu importe que la distribution ajustée comprenne une proportion substantielle de zéros - ce qui ne rend pas la moyenne ajustée nulle.

Notez que si vous modifiez votre fonction de lien pour dire un lien d'identité, cela ne résout pas vraiment votre problème - la moyenne d'une variable aléatoire non négative qui n'est pas entièrement nulle sera positive.

Glen_b -Reinstate Monica
la source
1
Merci pour votre explication. J'ai comparé un tweedie glm à un gamma glm et les bêtas sont presque exactement les mêmes, peu importe le nombre de zéros que contiennent les données (je change les zéros à une très petite valeur pour le gamma glm). Et quelle est la méthode proposée pour prédire les zéros et la partie continue simultanément.
spore234
2
@ spore234 Vous pouvez lancer votre propre modèle d'obstacle gamma, qui aurait un obstacle binomial pour prédire 0/1 et un modèle gamma adapté aux données non nulles. Voici un lien vers un article de blog qui discute de ce modèle et comment en adapter un à la main dans R. En passant, si quelque chose est continu, comment savez-vous qu'il est exactement nul? Votre appareil de mesure est-il capable de telles mesures à grain fin?
Reinstate Monica - G. Simpson
2
@spore, vous devrez être plus explicite sur ce que vous entendez vraiment par "prédire les zéros"; ma réponse établit déjà pourquoi aucun autre modèle de distribution utilisé pour remplacer le Tweedie ne donnera une prédiction moyenne de zéro (les modèles NB gonflés à zéro et à obstacle ont également le même problème avec leurs prédictions moyennes). Étant donné qu'une prédiction moyenne est ce que vous entendez par «prédire» lorsque vous utilisez un GLM, que voulez-vous dire par là maintenant? Si vous le changez pour signifier quelque chose où un modèle gonflé à 0 ou un obstacle a du sens, un Tweedie pourrait bien satisfaire la même condition.
Glen_b -Reinstate Monica
1
Cela dépend vraiment de ce que vous entendez par "prédire" (puisque vous ne voulez pas dire "prévoir la moyenne", vous devez dire ce que vous cherchez - voulez-vous prévoir la probabilité d'un zéro? Voulez-vous un prévisions médianes? Quelque chose d'autre?), et quels types de choses vous considérez comme "meilleures" afin de pouvoir faire une comparaison.
Glen_b -Reinstate Monica
1
@ spore234 Le problème, encore une fois, est que vous utilisez le mot "prédire" mais ne définissez pas ce que vous entendez par "prédire" (je continue de demander!). Vous semblez avoir écarté les deux interprétations plus évidentes du terme dans cette situation, vous devez dire ce que vous faites moyenne. Lorsque vous dites "prévoir combien coûtera cette personne", que voulez-vous dire en fait? Notez que vous ne pouvez pas obtenir le coût exact pour chaque personne ... alors quelles propriétés devrait avoir cette "prédiction"?
Glen_b -Reinstate Monica
10

Prédire la proportion de zéros

Je suis l'auteur du package statmod et co-auteur du package tweedie. Tout dans votre exemple fonctionne correctement. Le code prend correctement en compte tous les zéros pouvant figurer dans les données.

Comme Glen_b et Tim l'ont expliqué, la valeur moyenne prévue ne sera jamais exactement nulle, sauf si la probabilité d'un zéro est de 100%. Ce qui pourrait être intéressant cependant, c'est la proportion prévue de zéros, et cela peut facilement être extrait de l'ajustement du modèle comme je le montre ci-dessous.

Voici un exemple de travail plus judicieux. Simulez d'abord quelques données:

> library(statmod)
> library(tweedie)
> x <- 1:100
> mutrue <- exp(-1+x/25)
> summary(mutrue)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
 0.3829  1.0306  2.7737  5.0287  7.4644 20.0855 
> y <- rtweedie(100, mu=mutrue, phi=1, power=1.3)
> summary(y)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
 0.0000  0.8482  2.9249  4.7164  6.1522 24.3897 
> sum(y==0)
[1] 12

Les données contiennent 12 zéros.

Maintenant, installez un glm Tweedie:

> fit <- glm(y ~ x, family=tweedie(var.power=1.3, link.power=0))
> summary(fit)

Call:
glm(formula = y ~ x, family = tweedie(var.power = 1.3, link.power = 0))

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-2.71253  -0.94685  -0.07556   0.69089   1.84013  

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.816784   0.168764   -4.84 4.84e-06 ***
x            0.036748   0.002275   16.15  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

(Dispersion parameter for Tweedie family taken to be 0.8578628)

    Null deviance: 363.26  on 99  degrees of freedom
Residual deviance: 103.70  on 98  degrees of freedom
AIC: NA

Number of Fisher Scoring iterations: 4

Xϕ

X

> Phi <- 0.85786
> Mu <- fitted(fit)
> Power <- 1.3
> Prob.Zero <- exp(-Mu^(2-Power) / Phi / (2-Power))
> Prob.Zero[1:5]
        1         2         3         4         5 
0.3811336 0.3716732 0.3622103 0.3527512 0.3433024 
> Prob.Zero[96:100]
          96           97           98           99          100 
1.498569e-05 1.121936e-05 8.336499e-06 6.146648e-06 4.496188e-06 

Ainsi, la proportion prévue de zéros varie de 38,1% pour les plus petites valeurs moyennes à 4,5e-6 pour les plus grandes valeurs moyennes.

La formule de la probabilité d'un zéro exact peut être trouvée dans Dunn & Smyth (2001) Tweedie Family Densities: Methods of Evaluation ou Dunn & Smyth (2005) Series evaluation of Tweedie exponential dispersion model densities .

Gordon Smyth
la source
merci, utile! Des suggestions sur la façon de calculer l'intervalle de confiance pour ces probabilités de zéro exact? Cela aurait-il du sens du tout? Je suis également perplexe sur la façon de définir la «région de probabilité de 95%» de votre article de 2005, probablement quelque chose de connu que je ne trouve pas. J'apprécierais grandement une référence
irintch3
8

Cette réponse a été fusionnée à partir d'un autre fil de discussion sur les prédictions du modèle de régression à gonflement nul, mais elle s'applique également au modèle Tweedie GLM.

FF :

Fzeroinfl(y)=πje{0}(y)+(1-π)F(y)

jeFzeroinfl(y) , à savoir

μje=π0+(1-π)g-1(Xjeβ)

g-1 est l'inverse de la fonction de liaison. Donc, puisque vous prédisez la moyenne de cette distribution, vous ne verrez pas les zéros en excès dans vos prédictions, car les zéros ne sont pas la moyenne de la distribution (alors qu'ils réduisent la moyenne vers zéro), tout comme la régression linéaire ne prédit pas les résidus.

OuiXOuiXOuiXE(Oui|X)

Exemple

Tim
la source
Tim, c'est vraiment une excellente réponse et je suis désolé pour le moment de la fermeture et de la fusion. Si vous souhaitez modifier la question pour la rendre plus canonique ou pour mieux l'adapter (incorporez peut-être une partie de celle à laquelle vous avez répondu), allez-y, ou je serai heureux de le faire pour vous.
Glen_b -Reinstate Monica