[Rd] anova.glm and explicit contrast matrices (PR#1187)

ripley@stats.ox.ac.uk ripley@stats.ox.ac.uk
Fri, 30 Nov 2001 11:04:29 +0100 (MET)


Quick workaround:

> fm2 <- glm(accuracy ~ proficiency * task + proficiency/learner, viet,
   family = binomial(), x=TRUE)
> anova(fm2)
Analysis of Deviance Table

Model: binomial, link: logit

Response: accuracy

Terms added sequentially (first to last)


                      Df Deviance Resid. Df Resid. Dev
NULL                                   5592     4921.9
proficiency            1     57.5      5591     4864.4
task                   4    131.7      5587     4732.6
proficiency:task       4     58.6      5583     4674.1
proficiency:learner    4     64.6      5579     4609.5

which looks more sensible.

The model matrix is being reconstructed incorrectly, hence the
discrepancies. I will look into that later.


On Thu, 29 Nov 2001 bates@stat.wisc.edu wrote:

> anova.glm does not calculate the degrees of freedom properly when an
> explicit contrast has been set on a factor and the contrast has fewer
> than (len(levels(thisfactor)) - 1) columns.
>
> > load("/p/stat/course/st849-bates/public/slides/figs/src/viet.rda")
> > fm1 <- glm(accuracy ~ proficiency * task + proficiency/learner, viet,
> +    family = binomial())
> > anova(fm1)
> Analysis of Deviance Table
>
> Model: binomial, link: logit
>
> Response: accuracy
>
> Terms added sequentially (first to last)
>
>
>                       Df Deviance Resid. Df Resid. Dev
> NULL                                   5592     4921.9
> proficiency            3     69.5      5589     4852.4
> task                   4    132.9      5585     4719.5
> proficiency:task      12     96.2      5573     4623.4
> proficiency:learner    2     35.0      5571     4588.4
> > contrasts(viet$proficiency, 1) <- contrasts(viet$proficiency)
> > contrasts(viet$proficiency)
>           .L
> l -0.6708204
> m -0.2236068
> h  0.2236068
> a  0.6708204
> > fm2 <- glm(accuracy ~ proficiency * task + proficiency/learner, viet,
> +   family = binomial())
> > anova(fm2)
> Analysis of Deviance Table
>
> Model: binomial, link: logit
>
> Response: accuracy
>
> Terms added sequentially (first to last)
>
>
>                       Df Deviance Resid. Df Resid. Dev
> NULL                                   5592     4921.9
> proficiency            3     69.5      5589     4852.4
> task                   4    132.9      5585     4719.5
> proficiency:task      12     96.2      5573     4623.4
> proficiency:learner   -6     13.9      5579     4609.5
>
> The degrees of freedom for proficiency should be 1, for
> proficiency:task should be 4 and for proficiency:learner should be 4.
>
> The coefficient count is correct.
>
> --please do not edit the information below--
>
> Version:
>  platform = i386-pc-linux-gnu
>  arch = i386
>  os = linux-gnu
>  system = i386, linux-gnu
>  status = Under development (unstable)
>  major = 1
>  minor = 4.0
>  year = 2001
>  month = 11
>  day = 28
>  language = R
>
> Search Path:
>  .GlobalEnv, package:Devore5, package:ctest, Autoloads, package:base
>
> -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
> r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
> Send "info", "help", or "[un]subscribe"
> (in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
> _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
>

-- 
Brian D. Ripley,                  ripley@stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272860 (secr)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595


-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._