[BioC] Confusion over limma documentation and design/contrast
matrix
michael watson (IAH-C)
michael.watson at bbsrc.ac.uk
Mon Nov 15 12:25:27 CET 2004
Perfect :-)
Thank you.
-----Original Message-----
From: Gordon Smyth [mailto:smyth at wehi.edu.au]
Sent: 14 November 2004 02:36
To: bioconductor at stat.math.ethz.ch
Subject: [BioC] Confusion over limma documentation and design/contrast
matrix
>Date: Fri, 12 Nov 2004 13:42:22 -0000
>From: "michael watson (IAH-C)" <michael.watson at bbsrc.ac.uk>
>Subject: [BioC] Confusion over limma documentation and design/contrast
>To: "Gordon Smyth" <smyth at wehi.edu.au>
>Cc: bioconductor at stat.math.ethz.ch
>
>Hi Gordon
>
>Thanks for the response. I worked through my two examples and found
>out they are equivalent.
>
> >Do you know how to multiply a vector by a matrix? If you do, then I
>think
> >the best way to figure out what the design matrix is doing for you is
>just
> >to sit down with a piece of paper and a pencil for a few minutes, and
> >multiply the design matrix by the coefficient vector.
>
>I did actually do this previous to sending the mail but it didn't easy
>my confusion.
No you haven't actually, see below. The design matrix multiples the
vector
of regression coefficients. Whenever the word "coefficients" is used in
the
limma documentation, it refers to the regression coefficients. You can
read
about this in any text book which covers multiple regression.
Unfortunately
there are not lot a lot of books which include a matrix treatment of
multiple regression or linear models.
> > apoai.design %*% apoai.contrasts
Multiplying the design matrix by a contrast matrix is nonsense. No
suggestion has been made that you should do that.
> I have read the updated limma documentation and it is clearer now,
but
>it is still unclear why the above design matrix is used for the ApoAI
>data - there is no explanation as to how it relates to the design
>matrix and contrasts matrix I calculated above using modelMatrix() and
>makeContrasts().
It seems to me that this is exactly what is explained in Section 10.5 of
the User's Guide. For example, the paragraph:
"Here the first coefficient estimates the difference between wild type
and
the reference for each
probe while the second coefficient estimates the difference between
mutant
and wild type.
For those not familiar with model matrices in linear regression, it can
be
understood in the
following way. The matrix indicates which coefficients apply to each
array.
For the first
two arrays the fitted values will be just the WTvsREF coefficient, which
is
correct. For the
remaining arrays the fitted values will be WTvsREF + MUvsWT, which is
equivalent to mutant vs
reference, also correct."
explains in words why the second coefficient defined why the ApoAI
design
matrix measures the comparison of interest: mutant vs wildtype
comparison.
Perhaps this still isn't clear, but it isn't right to say that there is
no
explanation.
Here is one more go at trying to explain:
You have two groups, wildtype and mutant. Two arrays for the first group
and three for the second. Suppose the log-fold-change for the first
group
is A and for the second is B. What we want is B-A.
The first design matrix
1 0
1 0
1 1
1 1
1 1
represents the five arrays by
c1
c1
c1+c2
c1+c2
c1+c2
where c1 and c2 are the regression coefficients. In other words, we have
c1=A and c1+c2=B. This means that c2 must represent c2=B-A.
The second design matrix
1 0
1 0
0 1
0 1
0 1
represents the five arrays by
c1
c1
c2
c2
c2
where again c1 and c2 are the regression coefficients. In this case we
have
c1=A and c2=B. So to get B-A we have to go one extra step, to compute
the
difference between c2 and c1 to get B-A and its standard error. This
difference is represented by the contrast (-1,1) because matrix
multiplication of (-1,1) by (c1 c2) gives c2-c1 = B-A.
In summary, the first design matrix represents A and B by the
coefficients
c1=A and c2=B-A. The second design matrix represents A and B by the
coefficients c1=A and c2=B. The first representation includes our
contrast
of interest, the second does not. Hence we need to take the difference
between the coefficients in the second case but not in the first. You
can,
of course, do it either way.
Finally, as explained in Section 10 of the limma User's Guide, this is
no
different from what happens (implicitly) when you use the lm() or aov()
functions in R.
Gordon
> Regards
>
> Michael Watson
_______________________________________________
Bioconductor mailing list
Bioconductor at stat.math.ethz.ch
https://stat.ethz.ch/mailman/listinfo/bioconductor
More information about the Bioconductor
mailing list