[R] Simple General Statistics and R question (with 3 line example) - get z value from pairwise.wilcox.test

peter dalgaard pdalgd at gmail.com
Thu May 5 15:52:45 CEST 2011


On May 5, 2011, at 10:58 , JP wrote:

> On 4 May 2011 15:32, peter dalgaard <pdalgd at gmail.com> wrote:
> 
>> 
>> On May 4, 2011, at 15:11 , JP wrote:
>> 
>>> Peter thanks for the fantastically simple and understandable explanation...
>>> 
>>> To sum it up... to find the z values of a number of pairwise wilcox
>>> tests do the following:
>>> 
>>> # pairwise tests with bonferroni correction
>>> x <- pairwise.wilcox.test(a, b, alternative="two.sided",
>>> p.adj="bonferroni", exact=F, paired=T)
>> 
>> 
>> You probably don't want the bonferroni correction there. Rather p.adj="none". You generally correct the p values for multiple testing, not the test statistics.
>> 
> 
> Oh, I see thanks... of course since I have 5 groups (samples) and 10
> comparisons I still have to correct when quoting p values...
> 
> 
>> (My sentiment would be to pick apart the stats:::wilcox.test.default function and clone the computation of Z from it, but presumably backtracking from the p value is a useful expedient.)
>> 
> 
> Should this be so onerous for the user [read non-statistician] ?


My main reservation is that if the p value gets very small or close to 1 (for 1-sided tests), then it might not be possible to reconstruct the underlying Z (qnorm(pnorm(Z)) breaks down around Z = -37 and Z=+8). If you get sensible values, there's probably not a problem.


> 
>>> # what is the data structure we got back
>>> is.matrix(x$p.value)
>>> # p vals
>>> x$p.value
>>> # z.scores for each
>>> z.score <- qnorm(x$p.value / 2)
>>> 
>> 
>> Hmm, you're not actually getting a signed z out of this, you might want to try alternative="greater" and drop the division by 2 inside qnorm(). (If the signs come out inverted, I meant "less" not "greater"...)
>> 
> 
> But I need a two sided test (changing the alternative would change the
> hypothesis!)...  do I still do this?

For the z's, yes.

Hmm, the asymmetry of qnorm(pnorm(...)) indicates that you might want to be a bit more careful.

> All my z values are negative....
> 
> Is this correct?

No, that's the problem. The sign of Z should depend on whether the signed ranks are predominantly positive or negative. If you do a two-sided p-value and divide by two, then by definition you get something less than .5 and qnorm of that will be negative. So if the 2-sided p is 0.04, the one-sided p will be either 0.02 or 0.98, depending on the alternative and on whether the V statistic is above or below its expectation. Notice that this corresponds to Z statistics of opposite sign:

> qnorm(.02)
[1] -2.053749
> qnorm(.98)
[1] 2.053749

-- 
Peter Dalgaard
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com



More information about the R-help mailing list