various choices of variance functions
- function in 2.2 to illustrate the the effect of the assumed variance function (using the identity link for all functions)
x <- 1:3 y <- c(1,2,9) glm(y~x,family=gaussian(link=identity))
Call: glm(formula = y ~ x, family = gaussian(link = identity)) Coefficients: (Intercept) x -4 4 Degrees of Freedom: 2 Total (i.e. Null); 1 Residual Null Deviance: 38 Residual Deviance: 6 AIC: 16.59
glm(y~x,family=poisson(link=identity))
Call: glm(formula = y ~ x, family = poisson(link = identity)) Coefficients: (Intercept) x -2.4 3.2 Degrees of Freedom: 2 Total (i.e. Null); 1 Residual Null Deviance: 9.052 Residual Deviance: 1.69 AIC: 14.36
glm(y~x,family=Gamma(link=identity))
Call: glm(formula = y ~ x, family = Gamma(link = identity)) Coefficients: (Intercept) x -1.799 2.744 Degrees of Freedom: 2 Total (i.e. Null); 1 Residual Null Deviance: 2.537 Residual Deviance: 0.4385 AIC: 14.6
glm(y~x,family=inverse.gaussian(link=identity))
Call: glm(formula = y ~ x, family = inverse.gaussian(link = identity)) Coefficients: (Intercept) x -1.370 2.353 Degrees of Freedom: 2 Total (i.e. Null); 1 Residual Null Deviance: 0.8611 Residual Deviance: 0.1181 AIC: 13.48
model on page 16 to illustrate the use of an offset
- data can be downloaded here as zip http://stata-press.com/data/hh3/glmext3.zip or here as tar.Z http://stata-press.com/data/hh3/glmext3.tar.Z
- first build the model
require(foreign) medpar <- read.dta("glmext3/medpar.dta") m <- glm(los ~ hmo + white + type2 + type3, data=medpar, family=poisson(link="log")) summary(m)
Warnmeldung: In read.dta("glmext3/medpar.dta") : Faktorbeschriftungen von Stata-5-Dateien können nicht gelesen werden Call: glm(formula = los ~ hmo + white + type2 + type3, family = poisson(link = "log"), data = medpar) Deviance Residuals: Min 1Q Median 3Q Max -5.3063 -1.8259 -0.6319 1.0081 15.3827 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) 2.33293 0.02721 85.744 < 2e-16 *** hmo -0.07155 0.02394 -2.988 0.00281 ** white -0.15387 0.02741 -5.613 1.99e-08 *** type2 0.22165 0.02105 10.529 < 2e-16 *** type3 0.70948 0.02614 27.146 < 2e-16 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 (Dispersion parameter for poisson family taken to be 1) Null deviance: 8901.1 on 1494 degrees of freedom Residual deviance: 8142.7 on 1490 degrees of freedom AIC: 13868 Number of Fisher Scoring iterations: 5
- Wald test whether the coefficient on white is equal to -0.2
require(survey) regTermTest(m,test.terms = "white",null=-0.2,method="Wald")
Wald test for white in glm(formula = los ~ hmo + white + type2 + type3, family = poisson(link = "log"), data = medpar) F = 2.831664 on 1 and 1490 df: p= 0.092632
- define model with offset variable white=-0.2
- do the likelihood-ratio test
m1 <- glm(los ~ hmo + type2 + type3 + offset(-0.2*white), data=medpar, family=poisson(link="log")) anova(m1,m,test="Chisq")
Analysis of Deviance Table Model 1: los ~ hmo + type2 + type3 + offset(-0.2 * white) Model 2: los ~ hmo + white + type2 + type3 Resid. Df Resid. Dev Df Deviance Pr(>Chi) 1 1491 8145.5 2 1490 8142.7 1 2.8657 0.09049 . --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1