14
Chapter 17.5 Poisson ANCOVA

Chapter 17.5 Poisson ANCOVA. Classic Poisson Example Number of deaths by horse kick, for each of 16 corps in the Prussian army, from 1875 to 1894 The

Embed Size (px)

Citation preview

Page 1: Chapter 17.5 Poisson ANCOVA. Classic Poisson Example Number of deaths by horse kick, for each of 16 corps in the Prussian army, from 1875 to 1894 The

Chapter 17.5Poisson ANCOVA

Page 2: Chapter 17.5 Poisson ANCOVA. Classic Poisson Example Number of deaths by horse kick, for each of 16 corps in the Prussian army, from 1875 to 1894 The

Classic Poisson Example

• Number of deaths by horse kick, for each of 16 corps in the Prussian army, from 1875 to 1894

• The risk of death did not change over time in Guard Corps.

• Is there a similar lack of trend in the 1st,2nd, and 3rd units ?

Page 3: Chapter 17.5 Poisson ANCOVA. Classic Poisson Example Number of deaths by horse kick, for each of 16 corps in the Prussian army, from 1875 to 1894 The

1. Construct Model – Graphical

Page 4: Chapter 17.5 Poisson ANCOVA. Classic Poisson Example Number of deaths by horse kick, for each of 16 corps in the Prussian army, from 1875 to 1894 The

1. Construct Model – Formal

Page 5: Chapter 17.5 Poisson ANCOVA. Classic Poisson Example Number of deaths by horse kick, for each of 16 corps in the Prussian army, from 1875 to 1894 The

2. Execute analysis & 3. Evaluate model glm1 <- glm(deaths~year*corps, family = poisson(link=log), data=horsekick)

Page 6: Chapter 17.5 Poisson ANCOVA. Classic Poisson Example Number of deaths by horse kick, for each of 16 corps in the Prussian army, from 1875 to 1894 The

2. Execute analysis & 3. Evaluate model glm1 <- glm(deaths~year*corps, family = poisson(link=log), data=horsekick)

Page 7: Chapter 17.5 Poisson ANCOVA. Classic Poisson Example Number of deaths by horse kick, for each of 16 corps in the Prussian army, from 1875 to 1894 The

2. Execute analysis & 3. Evaluate model glm1 <- glm(deaths~year*corps, family = poisson(link=log), data=horsekick)

deviance(glm1)/df.residual(glm1)[1] 1.134671

• Dispersion parameter assumed to be 1• As a general rule, dispersion parameters approaching 2 (or

0.5) indicate possible violations of this assumption

Page 8: Chapter 17.5 Poisson ANCOVA. Classic Poisson Example Number of deaths by horse kick, for each of 16 corps in the Prussian army, from 1875 to 1894 The

Side note: Over-dispersion

Page 9: Chapter 17.5 Poisson ANCOVA. Classic Poisson Example Number of deaths by horse kick, for each of 16 corps in the Prussian army, from 1875 to 1894 The

Side note: Over-dispersion

> deviance(glm2)/df.residual(glm2) [1] 4.632645

Page 10: Chapter 17.5 Poisson ANCOVA. Classic Poisson Example Number of deaths by horse kick, for each of 16 corps in the Prussian army, from 1875 to 1894 The

4. State population and whether sample is representative.

5. Decide on mode of inference. Is hypothesis testing appropriate?

6. State HA / Ho pair, tolerance for Type I error

Statistic: Non-Pearsonian Chisquare (G-statistic)Distribution: Chisquare

Page 11: Chapter 17.5 Poisson ANCOVA. Classic Poisson Example Number of deaths by horse kick, for each of 16 corps in the Prussian army, from 1875 to 1894 The

7. ANODEV. Calculate change in fit (ΔG) due to explanatory variables.

> library(car)> Anova(glm1, type=3)Analysis of Deviance Table (Type III tests)

Response: deaths LR Chisq Df Pr(>Chisq)year 0.61137 1 0.4343corps 1.27787 3 0.7344year:corps 1.27073 3 0.7361

Page 12: Chapter 17.5 Poisson ANCOVA. Classic Poisson Example Number of deaths by horse kick, for each of 16 corps in the Prussian army, from 1875 to 1894 The

7. ANODEV. Calculate change in fit (ΔG) due to explanatory variables.

> Anova(glm1, type=3)… LR Chisq Df Pr(>Chisq)year 0.61137 1 0.4343corps 1.27787 3 0.7344year:corps 1.27073 3 0.7361

> anova(glm1, test="LR")…Terms added sequentially (first to last) Df Deviance Resid. Df Resid. Dev Pr(>Chi)NULL 79 95.766 year 1 0.00215 78 95.764 0.9630corps 3 1.14678 75 94.617 0.7658year:corps 3 1.27073 72 93.347 0.7361

Page 13: Chapter 17.5 Poisson ANCOVA. Classic Poisson Example Number of deaths by horse kick, for each of 16 corps in the Prussian army, from 1875 to 1894 The

8. Assess table in view of evaluation of residuals.– Residuals acceptable

9. Assess table in view of evaluation of residuals.– Reject HA: The four corps show the same lack of trend in

deaths by horsekick over two decades (ΔG=1.27, p=0.736)

10.Analysis of parameters of biological interest.– βyear was not significant – report mean deaths/unit-yr• (56 deaths / 20 years) / 4 units = 0.7 deaths/unit-year

Page 14: Chapter 17.5 Poisson ANCOVA. Classic Poisson Example Number of deaths by horse kick, for each of 16 corps in the Prussian army, from 1875 to 1894 The

library(pscl)library(Hmisc)library(car)

corp.id <- c("G","I","II","III")horsekick <- subset(prussian, corp %in% corp.id)names(horsekick) <- c("deaths","year","corps")

glm0 <- glm(deaths ~ 1, family = poisson(link = log), data = horsekick) # intercept onlyglm1 <- glm(deaths ~ year*corps, family = poisson(link = log), data = horsekick)

plot(fitted(glm1),residuals(glm1),pch=16, xlab="Fitted values", ylab="Residuals")plot(residuals(glm1), Lag(residuals(glm1)), xlab="Residuals", ylab="Lagged residuals", pch=16)sum(residuals(glm1, type="pearson")^2)/df.residual(glm1)deviance(glm1)/df.residual(glm1)

plot(horsekick$year,horsekick$deaths, pch=16, axes=F, xlab="Year", col=horsekick$corps, ylab="Deaths")axis(1, at=75:94, labels=1875:1894)axis(2, at=0:4)box()

Anova(glm1, type=3, test.statistic="LR")anova(glm1, test="LR")

species <- read.delim("http://www.bio.ic.ac.uk/research/mjcraw/therbook/data/species.txt")plot(Species~Biomass, data=species, pch=16)

lm1 <- lm(Species~Biomass, data=species)plot(fitted(lm1),residuals(lm1), pch=16, xlab="Fitted values", ylab="Residuals", main="GLM")

glm2<-glm(Species~Biomass, data=species, family=poisson)plot(fitted(glm2),residuals(glm2), pch=16, xlab="Fitted values", ylab="Residuals", main="GzLM")deviance(glm2)/df.residual(glm2)