[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