Estimating Quasi-Poisson Regression with GLIMMIX in SAS
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
When modeling the frequency measure in the operational risk with regressions, most modelers often prefer Poisson or Negative Binomial regressions as best practices in the industry. However, as an alternative approach, Quasi-Poisson regression provides a more flexible model estimation routine with at least two benefits. First of all, Quasi-Poisson regression is able to address both over-dispersion and under-dispersion by assuming that the variance is a function of the mean such that VAR(Y|X) = Theta * MEAN(Y|X), where Theta > 1 for the over-dispersion and Theta < 1 for the under-dispersion. Secondly, estimated coefficients with Quasi-Poisson regression are identical to the ones with Standard Poisson regression, which is considered the prevailing practice in the industry.
While Quasi-Poisson regression can be easily estimated with glm() in R language, its estimation in SAS is not very straight-forward. Luckily, with GLIMMIX procedure, we can estimate Quasi-Poisson regression by directly specifying the functional relationship between the variance and the mean and making no distributional assumption in the MODEL statement, as demonstrated below.
proc glimmix data = credit_count; model MAJORDRG = AGE ACADMOS MINORDRG OWNRENT / link = log solution; _variance_ = _mu_; random _residual_; run; /* Model Information Data Set WORK.CREDIT_COUNT Response Variable MAJORDRG Response Distribution Unknown Link Function Log Variance Function _mu_ Variance Matrix Diagonal Estimation Technique Quasi-Likelihood Degrees of Freedom Method Residual Fit Statistics -2 Log Quasi-Likelihood 19125.57 Quasi-AIC (smaller is better) 19135.57 Quasi-AICC (smaller is better) 19135.58 Quasi-BIC (smaller is better) 19173.10 Quasi-CAIC (smaller is better) 19178.10 Quasi-HQIC (smaller is better) 19148.09 Pearson Chi-Square 51932.87 Pearson Chi-Square / DF 3.86 Parameter Estimates Standard Effect Estimate Error DF t Value Pr > |t| Intercept -1.3793 0.08613 13439 -16.01 <.0001 AGE 0.01039 0.002682 13439 3.88 0.0001 ACADMOS 0.001532 0.000385 13439 3.98 <.0001 MINORDRG 0.4611 0.01348 13439 34.22 <.0001 OWNRENT -0.1994 0.05568 13439 -3.58 0.0003 Residual 3.8643 . . . . */
For the comparison purpose, we also estimated a Quasi-Poisson regression in R, showing completely identical statistical results.
summary(glm(MAJORDRG ~ AGE + ACADMOS + MINORDRG + OWNRENT, data = credit_count, family = quasipoisson(link = "log"))) # Estimate Std. Error t value Pr(>|t|) # (Intercept) -1.3793249 0.0861324 -16.014 < 2e-16 *** # AGE 0.0103949 0.0026823 3.875 0.000107 *** # ACADMOS 0.0015322 0.0003847 3.983 6.84e-05 *** # MINORDRG 0.4611297 0.0134770 34.216 < 2e-16 *** # OWNRENT -0.1993933 0.0556757 -3.581 0.000343 *** # --- # Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 # # (Dispersion parameter for quasipoisson family taken to be 3.864409) # # Null deviance: 24954 on 13443 degrees of freedom # Residual deviance: 22048 on 13439 degrees of freedom # AIC: NA
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.