[R] Plot for Binomial GLM
Peter Ehlers
ehlers at ucalgary.ca
Mon Oct 4 21:05:25 CEST 2010
On 2010-10-04 8:21, klsk89 wrote:
>
> Hi i would like to use some graphs or tables to explore the data and make
> some sensible guesses of what to expect to see in a glm model to assess if
> toxin concentration and sex have a relationship with the kill rate of rats.
> But i cant seem to work it out as i have two predictor
> variables~help?Thanks.:)
>
> Here's my data.
>
>> rat.toxic<-read.table(file="Rats.csv",header=T,row.names=NULL,sep=",")
>> attach(rat.toxic)
>> names(rat.toxic)
> [1] "Dose" "Sex" "Dead" "Alive"
>> rat.toxic
> Dose Sex Dead Alive
> 1 10 F 1 19
> 2 10 M 0 20
> 3 20 F 4 16
> 4 20 M 4 16
> 5 30 F 9 11
> 6 30 M 8 12
> 7 40 F 13 7
> 8 40 M 13 7
> 9 50 F 18 2
> 10 50 M 17 3
> 11 60 F 20 0
> 12 60 M 16 4
> 13 10 F 3 17
> 14 10 M 1 19
> 15 20 F 2 18
> 16 20 M 2 18
> 17 30 F 10 10
> 18 30 M 8 12
> 19 40 F 14 6
> 20 40 M 12 8
> 21 50 F 16 4
> 22 50 M 13 7
> 23 60 F 18 2
> 24 60 M 16 4
>
> glm2<-glm(deadalive~Dose*Sex,family=binomial,data=rat.toxic)
>> anova(glm2,test="Chi")
> Analysis of Deviance Table
>
> Model: binomial, link: logit
>
> Response: deadalive
>
> Terms added sequentially (first to last)
>
>
> Df Deviance Resid. Df Resid. Dev P(>|Chi|)
> NULL 23 225.455
> Dose 1 202.366 22 23.090<2e-16 ***
> Sex 1 4.328 21 18.762 0.0375 *
> Dose:Sex 1 1.149 20 17.613 0.2838
> ---
> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
>> summary(glm2)
>
> Call:
> glm(formula = deadalive ~ Dose * Sex, family = binomial, data = rat.toxic)
>
> Deviance Residuals:
> Min 1Q Median 3Q Max
> -1.82241 -0.85632 0.06675 0.61981 1.47874
>
> Coefficients:
> Estimate Std. Error z value Pr(>|z|)
> (Intercept) -3.47939 0.46167 -7.537 4.83e-14 ***
> Dose 0.10597 0.01286 8.243< 2e-16 ***
> SexM 0.15501 0.63974 0.242 0.809
> Dose:SexM -0.01821 0.01707 -1.067 0.286
> ---
> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
>
> (Dispersion parameter for binomial family taken to be 1)
>
> Null deviance: 225.455 on 23 degrees of freedom
> Residual deviance: 17.613 on 20 degrees of freedom
> AIC: 91.115
>
> Number of Fisher Scoring iterations: 4
>
This is pretty much the budworm example in MASS (the book).
I would produce a plot of Prob(dead) vs dose with separate
lines for M/F:
dose <- seq(10, 60, length=51)
ypF <- predict(glm2, data.frame(Dose=dose, Sex="F"), type="response")
ypM <- predict(glm2, data.frame(Dose=dose, Sex="M"), type="response")
plot(c(10,60), c(0,1), type="n")
lines(dose, ypF, col=2)
lines(dose, ypM, col=4)
text(locator(1), "F", col=2)
text(locator(1), "M", col=4)
See recent posts by Ben Bolker for confidence bands.
-Peter Ehlers
More information about the R-help
mailing list