[R] Model matrix using dummy regressors or deviation regressors

John Fox jfox at mcmaster.ca
Wed Feb 10 01:09:49 CET 2010


Dear bluesky315,

There are several ways in R to determine regressors associated with factors.
One way is to set the global contrasts option. To get "deviation"
regressors, use options(contrasts=c("contr.sum", "contr.poly")), and see
?options and ?contrasts for details. Also see Section 11.1.1 of the
Introduction to R manual that comes with R.

I hope this helps,
 John

--------------------------------
John Fox
Senator William McMaster 
  Professor of Social Statistics
Department of Sociology
McMaster University
Hamilton, Ontario, Canada
web: socserv.mcmaster.ca/jfox


> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org]
On
> Behalf Of bluesky315 at gmail.com
> Sent: February-09-10 6:33 PM
> To: r-help at stat.math.ethz.ch
> Subject: [R] Model matrix using dummy regressors or deviation regressors
> 
> The model matrix for the code at the end the email is shown below.
> Since the model matrix doesn't have -1, I think that it is made of
> dummy regressors rather than deviation regressors. I'm wondering how
> to make a model matrix using deviation regressors. Could somebody let
> me know?
> 
> > model.matrix(aaov)
>    (Intercept) A2 B2 B3 A2:B2 A2:B3
> 1            1  0  0  0     0     0
> 2            1  0  0  0     0     0
> 3            1  0  0  0     0     0
> 4            1  0  0  0     0     0
> 5            1  1  0  0     0     0
> 6            1  1  0  0     0     0
> 7            1  1  0  0     0     0
> 8            1  1  0  0     0     0
> 9            1  0  1  0     0     0
> 10           1  0  1  0     0     0
> 11           1  0  1  0     0     0
> 12           1  0  1  0     0     0
> 13           1  1  1  0     1     0
> 14           1  1  1  0     1     0
> 15           1  1  1  0     1     0
> 16           1  1  1  0     1     0
> 17           1  0  0  1     0     0
> 18           1  0  0  1     0     0
> 19           1  0  0  1     0     0
> 20           1  0  0  1     0     0
> 21           1  1  0  1     0     1
> 22           1  1  0  1     0     1
> 23           1  1  0  1     0     1
> 24           1  1  0  1     0     1
> attr(,"assign")
> [1] 0 1 2 2 3 3
> attr(,"contrasts")
> attr(,"contrasts")$A
> [1] "contr.treatment"
> 
> attr(,"contrasts")$B
> [1] "contr.treatment"
> 
> 
> 
> #############
> 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))
> aaov=aov(Y ~ A * B,fr)
> summary(aaov)
> model.matrix(aaov)
> 
> ______________________________________________
> R-help at r-project.org mailing list
> 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.



More information about the R-help mailing list