I tried to run the sample code from R:
dd <- data.frame(a = gl(3,4), b = gl(4,1,12))? a b
1 1 1
2 1 2
3 1 3
4 1 4
5 2 1
6 2 2
7 2 3
8 2 4
9 3 1
10 3 2
11 3 3
12 3 4
options("contrasts")
model.matrix(~ a + b, dd)(Intercept) a2 a3 b2 b3 b4
1 1 0 0 0 0 0
2 1 0 0 1 0 0
3 1 0 0 0 1 0
4 1 0 0 0 0 1
5 1 1 0 0 0 0
6 1 1 0 1 0 0
7 1 1 0 0 1 0
8 1 1 0 0 0 1
9 1 0 1 0 0 0
10 1 0 1 1 0 0
11 1 0 1 0 1 0
12 1 0 1 0 0 1
when I tried to remove the intercept from the matrix, I used the following
codemodel.matrix(~ 0+a + b, dd)
a1 a2 a3 b2 b3 b41 1 0 0 0 0 02 1 0 0 1 0 03 1 0 0 0 1 04 1 0 0 0 0 15 0 1 0 0
0 06 0 1 0 1 0 07 0 1 0 0 1 08 0 1 0 0 0 19 0 0 1 0 0 010 0 0 1 1 0 011 0 0 1 0
1 012 0 0 1 0 0 1?when I tried to remove the intercept
Here I noticed that, all levels of a, a1, a2, and a3, were included. I wonder
how I can include the "b1" in the matrix as well? a1 a2 a3 b1 b2 b3
b4
1 1 0 0 1 0 0 0
2 1 0 0 0 1 0 0
3 1 0 0 0 0 1 0
4 1 0 0 0 0 0 1
5 0 1 0 1 0 0 0
6 0 1 0 0 1 0 0
7 0 1 0 0 0 1 0
8 0 1 0 0 0 0 1
9 0 0 1 1 0 0 0
10 0 0 1 0 1 0 0
11 0 0 1 0 0 1 0
12 0 0 1 0 0 0 1?
[[alternative HTML version deleted]]
This is really a question about statistics rather than R but see below On 01/04/2015 06:28, Fix Ace wrote:> I tried to run the sample code from R: > dd <- data.frame(a = gl(3,4), b = gl(4,1,12)) a b > 1 1 1 > 2 1 2 > 3 1 3 > 4 1 4 > 5 2 1 > 6 2 2 > 7 2 3 > 8 2 4 > 9 3 1 > 10 3 2 > 11 3 3 > 12 3 4 > options("contrasts") > model.matrix(~ a + b, dd)(Intercept) a2 a3 b2 b3 b4 > 1 1 0 0 0 0 0 > 2 1 0 0 1 0 0 > 3 1 0 0 0 1 0 > 4 1 0 0 0 0 1 > 5 1 1 0 0 0 0 > 6 1 1 0 1 0 0 > 7 1 1 0 0 1 0 > 8 1 1 0 0 0 1 > 9 1 0 1 0 0 0 > 10 1 0 1 1 0 0 > 11 1 0 1 0 1 0 > 12 1 0 1 0 0 1 > when I tried to remove the intercept from the matrix, I used the following codemodel.matrix(~ 0+a + b, dd) > a1 a2 a3 b2 b3 b41 1 0 0 0 0 02 1 0 0 1 0 03 1 0 0 0 1 04 1 0 0 0 0 15 0 1 0 0 0 06 0 1 0 1 0 07 0 1 0 0 1 08 0 1 0 0 0 19 0 0 1 0 0 010 0 0 1 1 0 011 0 0 1 0 1 012 0 0 1 0 0 1 when I tried to remove the intercept >That got mangled but In your matrix below try forming the sum of a1+a2+a3 and the sum of b1+b2+b3+b4. I think you will find they are linearly related.> Here I noticed that, all levels of a, a1, a2, and a3, were included. I wonder how I can include the "b1" in the matrix as well? a1 a2 a3 b1 b2 b3 b4 > 1 1 0 0 1 0 0 0 > 2 1 0 0 0 1 0 0 > 3 1 0 0 0 0 1 0 > 4 1 0 0 0 0 0 1 > 5 0 1 0 1 0 0 0 > 6 0 1 0 0 1 0 0 > 7 0 1 0 0 0 1 0 > 8 0 1 0 0 0 0 1 > 9 0 0 1 1 0 0 0 > 10 0 0 1 0 1 0 0 > 11 0 0 1 0 0 1 0 > 12 0 0 1 0 0 0 1 > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. >-- Michael http://www.dewey.myzen.co.uk/home.html
Thank you very much for the response. Then what does it mean? I am not a stat
person, but have to use it for my project. :(
Could you please recommend some readings about it? Thanks a lot!
On Wednesday, April 1, 2015 10:58 AM, Michael Dewey <lists at
dewey.myzen.co.uk> wrote:
This is really a question about statistics rather than R but see below
On 01/04/2015 06:28, Fix Ace wrote:> I tried to run the sample code from R:
> dd <- data.frame(a = gl(3,4), b = gl(4,1,12))? a b
> 1? 1 1
> 2? 1 2
> 3? 1 3
> 4? 1 4
> 5? 2 1
> 6? 2 2
> 7? 2 3
> 8? 2 4
> 9? 3 1
> 10 3 2
> 11 3 3
> 12 3 4
> options("contrasts")
> model.matrix(~ a + b, dd)(Intercept) a2 a3 b2 b3 b4
> 1? ? ? ? ? ? 1? 0? 0? 0? 0? 0
> 2? ? ? ? ? ? 1? 0? 0? 1? 0? 0
> 3? ? ? ? ? ? 1? 0? 0? 0? 1? 0
> 4? ? ? ? ? ? 1? 0? 0? 0? 0? 1
> 5? ? ? ? ? ? 1? 1? 0? 0? 0? 0
> 6? ? ? ? ? ? 1? 1? 0? 1? 0? 0
> 7? ? ? ? ? ? 1? 1? 0? 0? 1? 0
> 8? ? ? ? ? ? 1? 1? 0? 0? 0? 1
> 9? ? ? ? ? ? 1? 0? 1? 0? 0? 0
> 10? ? ? ? ? 1? 0? 1? 1? 0? 0
> 11? ? ? ? ? 1? 0? 1? 0? 1? 0
> 12? ? ? ? ? 1? 0? 1? 0? 0? 1
> when I tried to remove the intercept from the matrix, I used the following
codemodel.matrix(~ 0+a + b, dd)
>? a1 a2 a3 b2 b3 b41 1 0 0 0 0 02 1 0 0 1 0 03 1 0 0 0 1 04 1 0 0 0 0 15 0 1
0 0 0 06 0 1 0 1 0 07 0 1 0 0 1 08 0 1 0? 0 0 19 0 0 1 0 0 010 0 0 1 1 0 011 0 0
1 0 1 012 0 0 1 0 0 1 when I tried to remove the intercept
>
That got mangled but
In your matrix below try forming the sum of a1+a2+a3 and the sum of
b1+b2+b3+b4. I think you will find they are linearly related.
> Here I noticed that, all levels of a, a1, a2, and a3, were included. I
wonder how? I can include the "b1" in the matrix as well?? a1 a2 a3 b1
b2 b3 b4
> 1? 1? 0? 0? 1? 0? 0? 0
> 2? 1? 0? 0? 0? 1? 0? 0
> 3? 1? 0? 0? 0? 0? 1? 0
> 4? 1? 0? 0? 0? 0? 0? 1
> 5? 0? 1? 0? 1? 0? 0? 0
> 6? 0? 1? 0? 0? 1? 0? 0
> 7? 0? 1? 0? 0? 0? 1? 0
> 8? 0? 1? 0? 0? 0? 0? 1
> 9? 0? 0? 1? 1? 0? 0? 0
> 10? 0? 0? 1? 0? 1? 0? 0
> 11? 0? 0? 1? 0? 0? 1? 0
> 12? 0? 0? 1? 0? 0? 0? 1
>
> ??? [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.
>
--
Michael
http://www.dewey.myzen.co.uk/home.html
[[alternative HTML version deleted]]