[BioC] A question regarding the mean of M-values.
smyth at wehi.edu.au
Fri Apr 29 04:20:11 CEST 2005
I know that "fold change" is an intuitive measure which non-mathematical
users like to relate things back to. Unfortunately, taking arithmetic means
of "fold changes" does not give sensible results. Here is a simple example
to show why:
Suppose you are comparing a cell line in stimulated and unstimulated
conditions, and you have two biological replicates. Suppose the first
replicate gives you 10-fold up regulation in the simulated condition, and
the second replicate is 10-fold down regulated. The only sensible
conclusion here is that there is no systematic difference between the
stimulated and unstimulated conditions, but that there is a lot of
variability between the replicates. This is exactly what the log-ratio
analysis would tell you.
On the other hand, if you average the fold changes, you get nonsense
results. The two fold changes are:
10 and 1/10
so the "average fold change is a bit over 5. So you conclude that "on
average" the stimulation produces 5-fold up regulation. This is nonsense.
Worse still, if you compute the fold changes the other way around, you make
the opposite conclusion. A perfectly equivalent way to state the results
would be to say that the first replicate is 10 fold down in the
unstimulated condition and the second is 10 fold up. So the two fold change
1/10 and 10
so the "average" fold change is again a bit over 5. But now you conclude
that the *unstimulated condition* gives a 5-fold change over the
unstimulated condition. The is the opposite of what you concluded when you
expressed the fold changes the other way around.
It is necessary to express the fold changes on a log-ratio scale, so that
multiplicative changes become additive, before it makes any sense to take
arithmetic averages. There are a lot of good statisticians in Stockholm --
why not have to talk to one of them about this?
>Date: Thu, 28 Apr 2005 09:13:16 +0200
>From: "Johan Lindberg" <johanl at biotech.kth.se>
>Subject: RE: [BioC] A question regarding the mean of M-values.
>To: <bioconductor at stat.math.ethz.ch>
>I have encountered the same problem. In LIMMA it is possible to handle
>two levels of replicates. You can use duplicateCorrelation for one level
>(technical replicates or duplicate spots) and use the rest as biological
>replicates to fit your model. But say that I have another level of
>replicates. I have replicate spots, technical replicates and biological
>replicates. I guess the right thing to do is to average over the
>replicate spots and use duplicate correlation for the technical
>Here I started wondering since limma, when calculating a contrast
>between two samples uses the arithmetic mean on the M-values which is
>the same as taking the geometric mean on the fold-changes and then
>taking the logarithm of that value, or ?!?
>Recall laws of logarithms:
>log(xy) = log(x) + log(y)
>log(x^n) = n*log(x)
>This means that if I take
>(log(M1)+log(M2)+log(M3))/3 this is the same as taking
>log((M1*M2*M3)^(1/3)) which is the same as taking the geometric mean on
>the fold changes and then taking the logarithm of that value.
>I wonder, can one motivate using geometric mean on expression data
>instead of arithmetic? See
>for a nice tip of when to use what mean...
>For me is seem like one should, if you want to take a mean of M-values
>in an expression experiment, remove the logarithm, calculate the average
>fold change and them use the logarithm of desire on that value.
>Comments appreciated to a guy with limited math-skills being out on deep
>// Johan L
>From: bioconductor-bounces at stat.math.ethz.ch
>[mailto:bioconductor-bounces at stat.math.ethz.ch] On Behalf Of marcus
>Sent: Wednesday, April 27, 2005 5:02 PM
>To: bioconductor at stat.math.ethz.ch
>Subject: [BioC] A question regarding the mean of M-values.
>Hello all users.
>I have a question regarding the mean calculations of the M-values in
>I guess that the fit$coeff is the mean of the M-values used for the
>model. The fit$coeff has the mean value of the data derived from a
>RNA source (as defined in the design matrix), and the value in
>is the same as mean(MS[1,1:2]) (if I for example had Sample 1 on 2
>my matrix containing the data.
>So...if you take the mean of two values (in the log 2 scale), for
>M = 8 and M = 1, the mean (and hence the fit$coef ?) will be 4,5.
>If you want to look at the foldchange I guess that 2^fit$coeff is
>calculated, so for the example it will be 2^4,5 = 22,6 times
>But if you look at the values independently, M=8 will give 2^8 = 256
>and 2^1 = 2 times upregulation. The mean of these values are (256 + 2) /
>I know that the question is a bit naive, but how should one do when you
>the mean of logarithms since the numbers are not related to each other
>normal numbers are. E.g. the number 8 is not twice the size of 4 on a
>logarithmic scale, it is 10000 times more (on a log10 scale).
>So....how should one do, when I want to take the average of log values?
>Shouldn't I calculate the ratios back (not in log2 scale) and calculate
>mean, and transform the data back, If I would like to have an average M
More information about the Bioconductor