[Rd] Improvement of [dpq]wilcox functions
Olaf Mersmann
olafm at kimberly.tako.de
Thu Jul 23 00:45:32 CEST 2009
Hi Ivo,
Excerpts from Ivo Ugrina's message of Thu Jul 09 17:05:27 +0200 2009:
> I believe I have significantly improved [dpq]wilcox
> functions by implementing Harding's algorithm:
> Harding, E.F. (1984): An Efficient, Minimal-storage Procedure
> for Calculating the Mann-Whitney U, Generalized U and Similar
> Distributions, App. Statist., 33, 1-6
I've looked at your code and it is indeed quite a bit faster. Sadly in
some cases it produces inaccurate results. See for example:
R 2.9.1:
> sum(dwilcox(1:(500*100), 500, 100))
[1] 1
R 2.9.1 + your patch:
> sum(dwilcox(1:(500*100), 500, 100))
[1] 1.001377
> sum(dwilcox(1:(500*200), 500, 200))
[1] -132443.2
> sum(dwilcox(1:(1000*200), 1000, 200))
[1] 3.412391e+13
The last two examples run out of memory on my machine in an unpatched
R. I think if you can sort out the numerical issuses your patch would
be interesting since it is indeed quite a bit faster than the current
implementation.
Cheers,
Olaf Mersmann
More information about the R-devel
mailing list