[BioC] Two interaction coefficients not estimable in limma's lmFit() in a 2^3 factorial design - does this change my contrast matrix now?

Massimo Pinto pintarello at gmail.com
Fri Aug 7 16:34:17 CEST 2009


thank you Jim,

you are indeed correct: I did not specify how I created my matrix.

Here it comes
====
Dose <- factor(targets$Dose, levels=c("Cn", "1Gy")) # It's very
important that you define the levels now, with their order, as
otherwise he will do it for you and this may not be the way you want
it.
Lab <- factor(targets$Lab, levels=c("ISS", "LNGS"))
Ageing <- factor(targets$Ageing, levels=c("t0", "6mo"))
disegno <- model.matrix(~Dose*Ageing*Lab) # makes a design matrix with
several interaction parameters and a total of eight param.
====

given that my data set includes six independent samples (with four
biological replicates each), I suppose I cannot estimate more than 6
parameters. But model.matrix() went on anyway...

I suppose I could erase the last two columns of my 'disegno'

Yours
Massimo

On Wed, Aug 5, 2009 at 6:30 PM, James W. MacDonald<jmacdon at med.umich.edu> wrote:
> Hi Massimo,
>
> Massimo Pinto wrote:
>>
>> Greetings all,
>>
>> I have noticed that several users have presented the issue of
>> parameters not estimated in some cases of linear model fittings with
>> the limma function lmFit().
>>
>> In trying to implement my 2^3 factorial design, I have followed
>> Bioinformatics and Computational Biology Solutions using R and
>> Bioconductor's examples as at Chapter 14 (Multifactor experiments).
>>  I have encountered my own problem with two such parameters:
>>
>>> fit <- lmFit(esetSub, disegno)
>>
>> Coefficients not estimable: Ageing6mo:LabLNGS Dose1Gy:Ageing6mo:LabLNGS
>> Warning message:
>> Partial NA coefficients for 2176 probe(s)
>
> Well, you don't show how you built this design matrix, but I would bet you
> didn't use model.matrix because the matrix isn't of full rank, so you can't
> solve for all the coefficients you are trying to estimate here.
>
> The lmFit function is nice enough to let you know that, but you could have
> checked using either is.fullrank() to see if the matrix is of full rank, or
> nonEstimable() to see which coefficients aren't going to be estimated.
>
> Best,
>
> Jim
>
>
>>
>> whereby
>>
>>> disegno
>>
>>   (Intercept) Dose1Gy Ageing6mo LabLNGS Dose1Gy:Ageing6mo
>> Dose1Gy:LabLNGS Ageing6mo:LabLNGS Dose1Gy:Ageing6mo:LabLNGS
>> 1            1       0         0       0                 0
>>  0                 0                         0
>> 2            1       0         0       0                 0
>>  0                 0                         0
>> 3            1       0         0       0                 0
>>  0                 0                         0
>> 4            1       0         0       0                 0
>>  0                 0                         0
>> 5            1       1         0       0                 0
>>  0                 0                         0
>> 6            1       1         0       0                 0
>>  0                 0                         0
>> 7            1       1         0       0                 0
>>  0                 0                         0
>> 8            1       1         0       0                 0
>>  0                 0                         0
>> 9            1       0         1       0                 0
>>  0                 0                         0
>> 10           1       0         1       0                 0
>>  0                 0                         0
>> 11           1       0         1       0                 0
>>  0                 0                         0
>> 12           1       0         1       0                 0
>>  0                 0                         0
>> 13           1       1         1       0                 1
>>  0                 0                         0
>> 14           1       1         1       0                 1
>>  0                 0                         0
>> 15           1       1         1       0                 1
>>  0                 0                         0
>> 16           1       1         1       0                 1
>>  0                 0                         0
>> 17           1       0         1       1                 0
>>  0                 1                         0
>> 18           1       0         1       1                 0
>>  0                 1                         0
>> 19           1       0         1       1                 0
>>  0                 1                         0
>> 20           1       0         1       1                 0
>>  0                 1                         0
>> 21           1       1         1       1                 1
>>  1                 1                         1
>> 22           1       1         1       1                 1
>>  1                 1                         1
>> 23           1       1         1       1                 1
>>  1                 1                         1
>> 24           1       1         1       1                 1
>>  1                 1                         1
>> attr(,"assign")
>> [1] 0 1 2 3 4 5 6 7
>> attr(,"contrasts")
>> attr(,"contrasts")$Dose
>> [1] "contr.treatment"
>>
>> attr(,"contrasts")$Ageing
>> [1] "contr.treatment"
>>
>> attr(,"contrasts")$Lab
>> [1] "contr.treatment"
>>
>> I have checked my design and it does make good sense to me. But, I
>> believe I was asking too much from my parameter estimation.
>> I am wondering how is this going to change the way I design my
>> contrast matrix? I am trying to define my contrast matrix following
>> the formulation of null hypotheses as at the 'yellow' book, p244.
>>
>> Thanking you very much,
>>
>> Massimo
>>
>> Massimo Pinto
>> Post Doctoral Research Fellow
>> Enrico Fermi Centre and Italian Public Health Research Institute (ISS),
>> Rome
>> http://claimid.com/massimopinto
>>
>> _______________________________________________
>> Bioconductor mailing list
>> Bioconductor at stat.math.ethz.ch
>> https://stat.ethz.ch/mailman/listinfo/bioconductor
>> Search the archives:
>> http://news.gmane.org/gmane.science.biology.informatics.conductor
>
> --
> James W. MacDonald, M.S.
> Biostatistician
> Douglas Lab
> University of Michigan
> Department of Human Genetics
> 5912 Buhl
> 1241 E. Catherine St.
> Ann Arbor MI 48109-5618
> 734-615-7826
>



More information about the Bioconductor mailing list