Skip to content

simple interactions

5 messages · Thierry Onkelinx, Achim Zeileis, Terry Therneau +1 more

#
I'd like to get interaction terms in a model to be in another form.  Namely, suppose I had 
variables age and group, the latter a factor with levels A, B, C, with  age * group in the 
model.  What I would like are the variables "age:group=A", "age:group=B" and 
"age:group=C"  (and group itself of course).  The coefficients of the model will then be 
the age effect in group A, the age effect in group B and the age effect in C rather than 
the standard ones of an overall age effect followed by contrasts.  These is often a better 
format for tables in a publication.

Yes, I can reconstruct these from the original fit, but I have a lot of variables for 
several models and it would be easier to have an automatic form.  I suspect that there is 
an easy answer, but I don't see it.

Terry Therneau
#
Dear Terry,

Does fitting group + age:group instead of age*group solves your problem?

Best regards,

ir. Thierry Onkelinx
Instituut voor natuur- en bosonderzoek / Research Institute for Nature and
Forest
team Biometrie & Kwaliteitszorg / team Biometrics & Quality Assurance
Kliniekstraat 25
1070 Anderlecht
Belgium

To call in the statistician after the experiment is done may be no more
than asking him to perform a post-mortem examination: he may be able to say
what the experiment died of. ~ Sir Ronald Aylmer Fisher
The plural of anecdote is not data. ~ Roger Brinner
The combination of some data and an aching desire for an answer does not
ensure that a reasonable answer can be extracted from a given body of data.
~ John Tukey

2016-04-15 13:58 GMT+02:00 Therneau, Terry M., Ph.D. <therneau at mayo.edu>:

  
  
#
Try using
   ~ group/age
or even
   ~ 0 + group/age

Both have all three group-specific slopes but differ with respect to the 
intercept codings. The latter has three group-specific intercepts as well. 
But the former has an intercept corresponding to the reference group A and 
then the usual treatment contrasts for group B and C (i.e., intercept 
differences).

IIRC then I found the discussion of these contrasts and nested codings in 
the MASS book very useful.
On Fri, 15 Apr 2016, Therneau, Terry M., Ph.D. wrote:

            
#
I was right that there is an easy answer!

Thanks for the 3 quick answers, all three correct and useful.

Terry Therneau
On 04/15/2016 07:15 AM, Thierry Onkelinx wrote:
#
> I'd like to get interaction terms in a model to be in
    > another form.  Namely, suppose I had variables age and
    > group, the latter a factor with levels A, B, C, with age *
    > group in the model.  What I would like are the variables
    > "age:group=A", "age:group=B" and "age:group=C" (and group
    > itself of course).  The coefficients of the model will
    > then be the age effect in group A, the age effect in group
    > B and the age effect in C rather than the standard ones of
    > an overall age effect followed by contrasts.  These is
    > often a better format for tables in a publication.

Did you try  to use  one of the good old

   dummy.coef()

or

   model.tables()

Functions?
Please use R  3.2.4 or newer, notably for dummy.coef() which was
improved (made more generally working) for R 3.2.4, notably
thanks to my colleague Werner Stahel.

Best regards,
Martin

--
Martin Maechler, ETH Zurich

  

    > Yes, I can reconstruct these from the original fit, but I
    > have a lot of variables for several models and it would be
    > easier to have an automatic form.  I suspect that there is
    > an easy answer, but I don't see it.

    > Terry Therneau

    > ______________________________________________
    > R-help at r-project.org mailing list -- To UNSUBSCRIBE and
    > more, see https://stat.ethz.ch/mailman/listinfo/r-help
    > PLEASE do read the posting guide
    > http://www.R-project.org/posting-guide.html and provide
    > commented, minimal, self-contained, reproducible code.