[R] forcing a zero level in contr.sum

Bond, Stephen
2010-07-07T20:41:18Z

Please, do not post if you do not know the answer. People will see this has
answers and skip.

I tried with
mat1=contrasts(fixw$snconv)
mat1=mat1[,-2]
summary(frm2sum <- glm(resp.frm ~
C(snconv,contr=mat1)+mprime+mshape,data=fixw,family="quasibinomial"))

the unwanted level is still there. Unbelievable.

Stephen Bond

-----Original Message-----
From: David Winsemius [mailto:dwinsemius at comcast.net]
Sent: Wednesday, July 07, 2010 4:15 PM
To: Bond, Stephen
Cc: r-help at r-project.org
Subject: Re: [R] forcing a zero level in contr.sum


On Jul 7, 2010, at 4:04 PM, Bond, Stephen wrote:

> Clarifying my question:
>
> options(contrasts = c("contr.sum", "contr.poly"))
>> contrasts()
>   [,1] [,2] [,3] [,4] [,5]
> 01    1    0    0    0    0
> 03    0    1    0    0    0
> 05    0    0    1    0    0
> 06    0    0    0    1    0
> 07    0    0    0    0    1
> 09   -1   -1   -1   -1   -1
>
> I need to force the coefficient on level 03 to be zero.

?factor
?relevel


Perhaps worth a try:

fixw$snconv <- relevel(fixw$snconv, ref="03")


(But I wonder if using contr.sum will ever generally satisfy that
goal, since contr.sum calculates the difference from a grand mean and
this will only work if a) the GM=0 and b) there is only one term on
the RHS of the model, and c) probably a bunch of other restrictions.)

--
David.
>
> Thank you.
>
> Stephen Bond
> -----Original Message-----
> From: David Winsemius [mailto:dwinsemius at comcast.net]
> Sent: Wednesday, July 07, 2010 3:44 PM
> To: Bond, Stephen
> Cc: r-help at r-project.org
> Subject: Re: [R] forcing a zero level in contr.sum
>
>
> On Jul 7, 2010, at 3:13 PM, Bond, Stephen wrote:
>
>> I need to use contr.sum and observe that some levels are not
>> statistically different from the overall mean of zero.
>> What is the proper way of forcing the zero estimate? It seems the
>> column corresponding to that level should become a column of zeros.
>> Is there a way to achieve that without me constructing the design
>> matrix?
>> Thank you.
>
> lm( formula = z ~ x + y + 0,   ...)  _might_ do something close to
> what you want.
>
>
>
>
> David Winsemius, MD
> West Hartford, CT
>