[R] Comparison of age categories using contrasts
Frank E Harrell Jr
f.harrell at vanderbilt.edu
Mon Feb 16 15:00:10 CET 2009
Mark Difford wrote:
> Hi Patrick,
>>> The default in glm is cont.treatment (for unordered factors) and that
>>> leads to compare each level to the first one. I would rather prefer to
>>> compare the 2nd to the 1st, the 3rd to the 2nd, the 4th to the 3rd,
> The functions ?C and ?contrasts allow you to set up your own contrast
> matrix. A function to carry out the type of comparisons you are interested
> in has been written by Venables & Ripley. See contr.sdif in package MASS.
> Regards, Mark.
> Patrick Giraudoux wrote:
>> Dear listers,
>> I would like to compare the levels of a factor with 8 age categories
>> (0,10] (10,20] (20,30] (30,40] (40,50] (50,60] (60,70] (70,90] (however,
>> the factor has not been ordered yet). The default in glm is
>> cont.treatment (for unordered factors) and that leads to compare each
>> level to the first one. I would rather prefer to compare the 2nd to the
>> 1st, the 3rd to the 2nd, the 4th to the 3rd, etc... My understanding is
>> that cont.poly may make the trick, eg specified like this:
>> mod3<-glm(AE~agecat, family=binomial,data=qinghai2,
>> but I am not sure to be right.
>> Would be grateful if a true statistician can confirm or fire me... and
>> before definitive fire tell me how to manage with this...
My preference is to not reformulate the model to get desired contrasts
but to think of the model as something that uses a convenient coding,
then do after-fitting contrasts. In the Design package you can fit a
model (say, using glmD) then use contrast(fit, list(predictor settings
1), list(predictor settings 2)) to get what you want. ?contrast.Design
provides the details. I'll bet that one of John Fox's packages also
provides a good way to do this.
Frank E Harrell Jr Professor and Chair School of Medicine
Department of Biostatistics Vanderbilt University
More information about the R-help