From jfox at mcmaster.ca  Tue Sep 30 15:57:36 2008
From: jfox at mcmaster.ca (John Fox)
Date: Tue, 30 Sep 2008 09:57:36 -0400
Subject: [Rd] weird behavior of drop1() for polr models (MASS)
In-Reply-To: <19742120.post@talk.nabble.com>
References: <19742120.post@talk.nabble.com>
Message-ID: <003801c92304$7ea05d50$7be117f0$@ca>

Dear Jeroen,

drop1() respects relationships of marginality among the terms in a model and
won't drop a lower-order term (e.g., a main effect) when a higher-order
relative (e.g., an interaction to which the main effect is marginal) is in
the model. If you want a complete "type-III" ANOVA table and are careful
with contrast coding (which you were not, since contr.treatment produces
contrasts that are not orthogonal in the row basis of the model matrix --
you could use, e.g., contr.sum), then you can use the Anova() function in
the car package, specifying type="III".

Note: I'm responding to this message on the r-devel list where it was
posted, but this is really a question for r-help.

I hope this helps,
 John

------------------------------
John Fox, Professor
Department of Sociology
McMaster University
Hamilton, Ontario, Canada
web: socserv.mcmaster.ca/jfox


> -----Original Message-----
> From: r-devel-bounces at r-project.org [mailto:r-devel-bounces at r-project.org]
On
> Behalf Of Jeroen Ooms
> Sent: September-30-08 9:28 AM
> To: r-devel at r-project.org
> Subject: [Rd] weird behavior of drop1() for polr models (MASS)
> 
> 
> I would like to do a SS type III analysis on a proportional odds logistic
> regression model. I use drop1(), but dropterm() shows the same behaviour.
It
> works as expected for regular main effects models, however when the model
> includes an interaction effect it seems to have problems with matching the
> parameters to the predictor terms. An example:
> 
> library("MASS");
> options(contrasts = c("contr.treatment", "contr.poly"));
> 
> house.plr1 <- polr(Sat ~ Infl + Type + Cont, weights = Freq, data =
> housing);
> drop1(house.plr1,attributes(house.plr1$terms)$term.labels,test="Chisq");
> 
> house.plr2 <- polr(Sat ~ Infl * Type + Cont, weights = Freq, data =
> housing);
> drop1(house.plr2,attributes(house.plr2$terms)$term.labels,test="Chisq");
> 
> Notice that model 2 has a * instead of a + between predictors Infl and
Type.
> In model 1, estimated parameters are nicely attributed to the right term,
> however in house.plr2, only 2 of the 4 terms are evaluated.
> 
> I am using R version 2.7.2 (2008-08-25) i386-pc-mingw32, and MASS_7.2-44.
> 
> --
> View this message in context: http://www.nabble.com/weird-behavior-of-
> drop1%28%29-for-polr-models-%28MASS%29-tp19742120p19742120.html
> Sent from the R devel mailing list archive at Nabble.com.
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



[Rd] weird behavior of drop1() for polr models (MASS)
John Fox