[Rd] contrasts
Prof Brian Ripley
ripley at stats.ox.ac.uk
Thu May 8 10:06:46 MEST 2003
On 8 May 2003, Peter Dalgaard BSA wrote:
> Torsten Hothorn <Torsten.Hothorn at 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 at 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
More information about the R-devel
mailing list