[R] confidence bands for a quasipoisson glm

Gavin Simpson gavin.simpson at ucl.ac.uk
Mon Sep 13 16:20:56 CEST 2010


On Sat, 2010-09-11 at 14:41 -0700, Peng, C wrote:
> Is this something you want to have  (based on a simulated dataset)?
> 
> counts <- c(18,17,15,20,10,20,25,13,12)
> #risk <- round(rexp(9,0.5),3)
> risk<- c(2.242, 0.113, 1.480, 0.913, 5.795, 0.170, 0.846, 5.240, 0.648)
> gm <- glm(counts ~ risk, family=quasipoisson)
> summary(gm)
> new.risk=seq(min(risk), max(risk),0.1)
> new.risk
> y <- predict.glm(gm, newdata=data.frame(risk=new.risk), se.fit=TRUE,
> type="response") 

I think you should be doing this bit on the scale of the link function,
not the response, and then transform.

y <- predict.glm(gm, newdata=data.frame(risk=new.risk), se.fit=TRUE,
                 type="link")

> upper=y$fit+1.96*y$se.fit
> lower=y$fit-1.96*y$se.fit

upper <- with(y, exp(fit + (2 * se.fit)))
lower <- with(y, exp(fit - (2 * se.fit)))
fit <- with(y, exp(fit))

plot(new.risk, fit, type="l", col=4, lty=1, lwd=2,
     ylim = range(c(upper, lower)))
lines(new.risk, upper, type="l", col=2, lty=2, lwd=2)
lines(new.risk, lower, type="l", col=2, lty=2, lwd=2)

> plot(new.risk,y$fit, type="l", col=4, lty=1, lwd=2)
> lines(new.risk, upper, type="l", col=2, lty=2, lwd=2)
> lines(new.risk, lower, type="l", col=2, lty=2, lwd=2)

HTH

G

-- 
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
 Dr. Gavin Simpson             [t] +44 (0)20 7679 0522
 ECRC, UCL Geography,          [f] +44 (0)20 7679 0565
 Pearson Building,             [e] gavin.simpsonATNOSPAMucl.ac.uk
 Gower Street, London          [w] http://www.ucl.ac.uk/~ucfagls/
 UK. WC1E 6BT.                 [w] http://www.freshwaters.org.uk
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%



More information about the R-help mailing list