From ripley at stats.ox.ac.uk  Thu May  8 10:06:46 2003
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Thu May  8 10:06:59 2003
Subject: [Rd] contrasts
In-Reply-To: <x2brydx4fb.fsf@biostat.ku.dk>
Message-ID: <Pine.LNX.4.44.0305080859330.18416-100000@gannet.stats>

On 8 May 2003, Peter Dalgaard BSA wrote:

> Torsten Hothorn <Torsten.Hothorn@rzmail.uni-erlangen.de> writes:
> 
> > > >From model.matrix, only the number of levels is passed: src/main/model.c
> > > line 1626 (in R-devel and probably also 1.7.0).
> > 
> > Thank you! Therefore one cannot compute contrasts that depend on
> > the number of observations at each level, right? Looking at the code in
> > `contr.treatment' that handles this case: may I conclude that this is on
> > the wishlist?
> 
> That's not what it does. It just allows you to give the vector of
> levels instead of the count. At the moment, this seems to be used only
> for labeling:
> 
> > contr.treatment(4:1)
>   3 2 1
> 4 0 0 0
> 3 1 0 0
> 2 0 1 0
> 1 0 0 1
> 
> Notice that C() allows a matrix argument, so even if model.matrix
> doesn't use this feature, you could still use y~C(g,contr.xxx(levs))
> in modeling.
> 
> One place where something like this might be useful, but (one of my
> ancient gripes) isn't, is for generating polynomial contrasts over a
> non-equidistant level set. 

How could one detect that?  A level set is just a set of labels, in order
for an ordered factor.  One needs more information as to how (or whether)
to interpret it as `non-equidistant'.  Given such information (e.g. in a
"score.levels" attribute) we could do this fairly easily: but one can also
set the contrast matrix via a contrasts arg, via contrasts<-() or (more
clumsily I think given the way the model is printed) via C().

-- 
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 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595


[Rd] contrasts
Prof Brian Ripley