From: <jpnolan_at_american.edu>

Date: Mon 14 Mar 2005 - 05:12:27 GMT

R-devel@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-devel Received on Mon Mar 14 20:22:59 2005

Date: Mon 14 Mar 2005 - 05:12:27 GMT

Full_Name: John Nolan

Version: 2.0.1

OS: Win XP

Submission from: (NULL) (151.200.9.43)

I think there are two small bugs in the Kolmogorov Smirnov test routines.

(1) In the R function ks.test, toward the bottom, the internal function pkstwo

does:

p[IND] <- .C("pkstwo", as.integer(length(x)), p = as.double(x[IND]),

as.double(tol), PACKAGE = "stats")$p

Instead of length(x), shouldn't length(x[IND]) be passed? If there are NAs, length(x) > length(x[IND]) and the called C routine will try to process more values than it should.

(2) In C routine ks.c, the function pkstwo describes two series it evaluates,

depending on whether x > 1 or x < 1. The second case uses a formula described
in the comments at the head of the function as

- = \sqrt{2\pi/x} \sum_{k=1}^\infty \exp(-(2k-1)^2\pi^2/(8x^2))

The code actually evaluates \sqrt{2\pi}/x, not \sqrt{2\pi/x}. I am not sure
which equation is right: both agree at x=1 so there is no easy test here.
If the equation is correct, the code should be changed to have w =
0.5*log(x[i]),

not w = log(x[i]). If the code is right, change the equation in the comment.

John Nolan

R-devel@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-devel Received on Mon Mar 14 20:22:59 2005

*
This archive was generated by hypermail 2.1.8
: Mon 24 Oct 2005 - 22:26:29 GMT
*