bates@stat.wisc.edu
2001-Nov-29 21:13 UTC
[Rd] anova.glm and explicit contrast matrices (PR#1187)
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 _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
ripley@stats.ox.ac.uk
2001-Nov-30 10:04 UTC
[Rd] anova.glm and explicit contrast matrices (PR#1187)
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 _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
ripley@stats.ox.ac.uk
2001-Nov-30 10:54 UTC
[Rd] anova.glm and explicit contrast matrices (PR#1187)
Now fixed (the bug was in model.matrix.default), and will commit once I can get a clean test running on R-devel. On Fri, 30 Nov 2001 ripley@stats.ox.ac.uk wrote:> 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 > _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._ >-- 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 _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._