3.2 Poisson Inverse Gaussian (PIG)

So wie die NB als mixture aus Poisson-Verteilung mit Gamma-verteilter Varianz betrachtet werden kann, ist die Poisson Inverse Gaussian (PIG) eine mixture aus Poisson-Verteilung mit invers-normalverteilter Varianz.
Die Verteilung hat Erwartungswert und Varianz mit gleicher Form wie die NB2, unterscheidet sich aber in ihrer Form – sie ist linkssteiler und hat längere tails.

Die PIG kann also alternativ zur NB verwendet werden, insbesondere für den Fall sehr linkssteifer Daten.

“Simply put, PIG models can better deal with highly overdispersed data that can negative binomial regression, particularly data clumped heavily at 1 and 2”

Hilbe (2014) (p. 163)

Siehe auch

Software:

  • R: gamlss (CRAN)
  • SAS: Machbar via NLMIXED, aber unschön (siehe High 2018).
  • Stata: pigreg

Vergleichen wir ein PIG Modell mit unserem vorigen NB2-Modell:

# Poisson Modell
mod_pois <- glm(docvis ~ outwork + age, family = poisson(),
              data = rwm1984)
# NB2 Modell
mod_nb <- MASS::glm.nb(docvis ~ outwork + age,
                       data = rwm1984)

# PIG Modell
mod_pig <- gamlss::gamlss(docvis ~ outwork + age, family = gamlss.dist::PIG,
                          data = rwm1984)
#> GAMLSS-RS iteration 1: Global Deviance = 16757.45 
#> GAMLSS-RS iteration 2: Global Deviance = 16757.15 
#> GAMLSS-RS iteration 3: Global Deviance = 16757.11 
#> GAMLSS-RS iteration 4: Global Deviance = 16757.11 
#> GAMLSS-RS iteration 5: Global Deviance = 16757.11
summary(mod_pig)
#> ******************************************************************
#> Family:  c("PIG", "Poisson.Inverse.Gaussian") 
#> 
#> Call:  
#> gamlss::gamlss(formula = docvis ~ outwork + age, family = gamlss.dist::PIG,  
#>     data = rwm1984) 
#> 
#> Fitting method: RS() 
#> 
#> ------------------------------------------------------------------
#> Mu link function:  log
#> Mu Coefficients:
#>              Estimate Std. Error t value Pr(>|t|)    
#> (Intercept) -0.285765   0.112128  -2.549   0.0109 *  
#> outwork      0.527637   0.058037   9.091   <2e-16 ***
#> age          0.026861   0.002514  10.684   <2e-16 ***
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#> 
#> ------------------------------------------------------------------
#> Sigma link function:  log
#> Sigma Coefficients:
#>             Estimate Std. Error t value Pr(>|t|)    
#> (Intercept)  1.34417    0.05564   24.16   <2e-16 ***
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#> 
#> ------------------------------------------------------------------
#> No. of observations in the fit:  3874 
#> Degrees of Freedom for the fit:  4
#>       Residual Deg. of Freedom:  3870 
#>                       at cycle:  5 
#>  
#> Global Deviance:     16757.11 
#>             AIC:     16765.11 
#>             SBC:     16790.16 
#> ******************************************************************
cbind(
  exp(coef(mod_pois)),
  exp(coef(mod_nb)),
  exp(coef(mod_pig))
) %>%
  as_tibble(rownames = ".id") %>%
  setNames(c("Koeffizient", "Poisson", "NB2", "PIG"))
Koeffizient Poisson NB2 PIG
(Intercept) 0.9670385 0.9612218 0.7514392
outwork 1.5037040 1.5138595 1.6949230
age 1.0223299 1.0223928 1.0272247

Zum Modellvergleich kann das AIC verwendet werden:

AIC(mod_pois, mod_nb, mod_pig)
df AIC
mod_pois 3 31278.78
mod_nb 4 16673.52
mod_pig 4 16765.11

Literatur

High, Robin. 2018. „Alternative Variance Parameterizations in Count Data Models with the NLMIXED Procedure“. In. https://www.semanticscholar.org/paper/Alternative-Variance-Parameterizations-in-Count-the-High/1224075e77acdee9eef91643e0bbfe869406a35d.

Hilbe, Joseph M. 2014. Modeling Count Data. Cambridge: Cambridge University Press. https://doi.org/10.1017/CBO9781139236065.