[R] What does model.matrix() return?
David Winsemius
dwinsemius at comcast.net
Thu Sep 17 23:09:52 CEST 2009
On Sep 17, 2009, at 11:13 AM, Peng Yu wrote:
> Hi,
>
> I don't understand what the meaning of the following lines returned by
> model.matrix(). Can somebody help me understand it? What can they be
> used for?
>
> attr(,"assign")
> [1] 0 1 2 2
> attr(,"contrasts")
> attr(,"contrasts")$A
> [1] "contr.treatment"
>
> attr(,"contrasts")$B
> [1] "contr.treatment"
?contrasts.
---direct quote---
contr.treatment contrasts each level with the baseline level
(specified by base): the baseline level is omitted. Note that this
does not produce ‘contrasts’ as defined in the standard theory for
linear models as they are not orthogonal to the intercept.
---end quote---
Also read through (again?):
?aov
--
David.
>
> Regards,
> Peng
>
>> a=2
>> b=3
>> n=4
>> A = rep(sapply(1:a,function(x){rep(x,n)}),b)
>> B = as.vector(sapply(sapply(1:b, function(x){rep(x,n)}), function(x)
>> {rep(x,a)}))
>> Y = A + B + rnorm(a*b*n)
>> fr = data.frame(Y=Y,A=as.factor(A),B=as.factor(B))
>> afit=aov(Y ~ A + B,fr)
>> model.matrix(afit)
> (Intercept) A2 B2 B3
> 1 1 0 0 0
> 2 1 0 0 0
> 3 1 0 0 0
> 4 1 0 0 0
> 5 1 1 0 0
> 6 1 1 0 0
> 7 1 1 0 0
> 8 1 1 0 0
> 9 1 0 1 0
> 10 1 0 1 0
> 11 1 0 1 0
> 12 1 0 1 0
> 13 1 1 1 0
> 14 1 1 1 0
> 15 1 1 1 0
> 16 1 1 1 0
> 17 1 0 0 1
> 18 1 0 0 1
> 19 1 0 0 1
> 20 1 0 0 1
> 21 1 1 0 1
> 22 1 1 0 1
> 23 1 1 0 1
> 24 1 1 0 1
> attr(,"assign")
> [1] 0 1 2 2
> attr(,"contrasts")
> attr(,"contrasts")$A
> [1] "contr.treatment"
>
> attr(,"contrasts")$B
> [1] "contr.treatment"
David Winsemius, MD
Heritage Laboratories
West Hartford, CT
More information about the R-help
mailing list