Fatma Ell
2018-Dec-10 21:17 UTC
[R] ks.test ; impossible to calculate exact exact value with ex-aequos
Dear all, I'm trying to use ks.test in order to compare two curve. I've 0 values i think this is why I have the follonwing warnings :impossible to calculate exact exact value with ex-aequos a=c(3.02040816326531, 7.95918367346939, 10.6162790697674, 4.64150943396226, 1.86538461538462, 1.125, 1.01020408163265, 1.2093023255814, 0.292452830188679, 0, 0, 0) b=c(2.30769230769231, 4.19252873563218, 5.81924882629108, 6.2248243559719, 5.02682926829268, 4.50728862973761, 3.61741424802111, 5.05479452054795, 3.68095238095238, 1.875, 5.25, 0) ks.test(a,b) data: a and b D = 0.58333, p-value = 0.0337 alternative hypothesis: two-sided Warning message: In ks.test(a, b) : impossible to calculate exact exact value with ex-aequos Does the p-value is correct ? Otherwise, how to solve this issue ? Thanks a lot. [[alternative HTML version deleted]]
Rui Barradas
2018-Dec-10 22:34 UTC
[R] ks.test ; impossible to calculate exact exact value with ex-aequos
Hello, That is a warning, not an error. And it documented. In ?ks.test, section Details, the relevant part is The presence of ties always generates a warning, since continuous distributions do not generate them. If the ties arose from rounding the tests may be approximately valid, but even modest amounts of rounding can have a significant effect on the calculated statistic. It then adds, three paragraphs down: Exact p-values are not available for the two-sample case if one-sided or in the presence of ties. You can use exact = FALSE but it will still issue a warning. ks.test(a, b, exact = FALSE) Two-sample Kolmogorov-Smirnov test data: a and b D = 0.58333, p-value = 0.0337 alternative hypothesis: two-sided Warning message: In ks.test(a, b, exact = FALSE) : p-value will be approximate in the presence of ties Hope this helps, Rui Barradas ?s 21:17 de 10/12/2018, Fatma Ell escreveu:> Dear all, > > I'm trying to use ks.test in order to compare two curve. I've 0 values i > think this is why I have the follonwing warnings :impossible to calculate > exact exact value with ex-aequos > > > a=c(3.02040816326531, 7.95918367346939, 10.6162790697674, 4.64150943396226, > 1.86538461538462, 1.125, 1.01020408163265, 1.2093023255814, > 0.292452830188679, > 0, 0, 0) > b=c(2.30769230769231, 4.19252873563218, 5.81924882629108, 6.2248243559719, > 5.02682926829268, 4.50728862973761, 3.61741424802111, 5.05479452054795, > 3.68095238095238, 1.875, 5.25, 0) > > ks.test(a,b) > > data: a and b > D = 0.58333, p-value = 0.0337 > alternative hypothesis: two-sided > > Warning message: > In ks.test(a, b) : > impossible to calculate exact exact value with ex-aequos > > Does the p-value is correct ? Otherwise, how to solve this issue ? > > Thanks a lot. > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >
Ted Harding
2018-Dec-10 22:44 UTC
[R] ks.test ; impossible to calculate exact exact value with ex-aequos
On Mon, 2018-12-10 at 22:17 +0100, Fatma Ell wrote:> Dear all, > I'm trying to use ks.test in order to compare two curve. I've 0 values i > think this is why I have the follonwing warnings :impossible to calculate > exact exact value with ex-aequos > > a=c(3.02040816326531, 7.95918367346939, 10.6162790697674, 4.64150943396226, > 1.86538461538462, 1.125, 1.01020408163265, 1.2093023255814, > 0.292452830188679, > 0, 0, 0) > b=c(2.30769230769231, 4.19252873563218, 5.81924882629108, 6.2248243559719, > 5.02682926829268, 4.50728862973761, 3.61741424802111, 5.05479452054795, > 3.68095238095238, 1.875, 5.25, 0) > > ks.test(a,b) > > data: a and b > D = 0.58333, p-value = 0.0337 > alternative hypothesis: two-sided > > Warning message: > In ks.test(a, b) : > impossible to calculate exact exact value with ex-aequos > > Does the p-value is correct ? Otherwise, how to solve this issue ? > Thanks a lot.The warning arises, not because you have "0" values as such, but because there are repeated values (which happen to be 0). The K-S test is designed for continuous random variables, for which the probability of repeated values is (theoretically) zero: theoretically, they can't happen.>From the help page ?ks.test :"The presence of ties always generates a warning, since continuous distributions do not generate them. If the ties arose from rounding the tests may be approximately valid, but even modest amounts of rounding can have a significant effect on the calculated statistic." in view of the fact that your sample 'a' has three zeros along with nine other vauwes which are all different from 0 (and all *very* different from 0 except for 0.292452830188679), along with the fact that your sample 'b' has 11 values all *very* different from 0. and pne finall value equal to 0; together also with the fact that in each sample the '0' values occur at the end, stringly suggests that the data source is not such that a K-D test is auitasble. The K-S test is a non-parametric test for whether a) a given sample comes from na given kind of distribiution; or v) two samples are drwn from the same distribition. In either case, it is assumed that the sample values are drawn independently of each other; if there is some reason why they may not be independent of each other, the test os not valid. You say "I'm trying to use ks.test in order to compare two curve". When I ezecute plot(a) plot(b) on your data, I see (approximately) in each case a rise from a medium vale (~2 or ~3) to a higher vale {~6 or ~10) followed by a decline down to an exact 0. This is not the sort of situation that the K-S test is for! Hoping this helps, Ted.
Fatma Ell
2018-Dec-10 23:36 UTC
[R] ks.test ; impossible to calculate exact exact value with ex-aequos
Thanks a lot for this reply 'a' is a simulated data while 'b' is empirical data. Other than correlation, how to check ressemblence between these two curve in terms of : Amplitude in each row 1...12 Evolution and variability from 1 to 12 Thanks ! Le lundi 10 d?cembre 2018, Ted Harding <ted.harding at wlandres.net> a ?crit :> On Mon, 2018-12-10 at 22:17 +0100, Fatma Ell wrote: > > Dear all, > > I'm trying to use ks.test in order to compare two curve. I've 0 values i > > think this is why I have the follonwing warnings :impossible to calculate > > exact exact value with ex-aequos > > > > a=c(3.02040816326531, 7.95918367346939, 10.6162790697674, > 4.64150943396226, > > 1.86538461538462, 1.125, 1.01020408163265, 1.2093023255814, > > 0.292452830188679, > > 0, 0, 0) > > b=c(2.30769230769231, 4.19252873563218, 5.81924882629108, > 6.2248243559719, > > 5.02682926829268, 4.50728862973761, 3.61741424802111, 5.05479452054795, > > 3.68095238095238, 1.875, 5.25, 0) > > > > ks.test(a,b) > > > > data: a and b > > D = 0.58333, p-value = 0.0337 > > alternative hypothesis: two-sided > > > > Warning message: > > In ks.test(a, b) : > > impossible to calculate exact exact value with ex-aequos > > > > Does the p-value is correct ? Otherwise, how to solve this issue ? > > Thanks a lot. > > The warning arises, not because you have "0" values as such, > but because there are repeated values (which happen to be 0). > > The K-S test is designed for continuous random variables, for > which the probability of repeated values is (theoretically) zero: > theoretically, they can't happen. > > >From the help page ?ks.test : > > "The presence of ties always generates a warning, since continuous > distributions do not generate them. If the ties arose from > rounding the tests may be approximately valid, but even modest > amounts of rounding can have a significant effect on the > calculated statistic." > > > > in view of the fact that your sample 'a' has three zeros along with > nine other vauwes which are all different from 0 (and all *very* > different from 0 except for 0.292452830188679), along with the fact > that your sample 'b' has 11 values all *very* different from 0. > and pne finall value equal to 0; together also with the fact that > in each sample the '0' values occur at the end, stringly suggests > that the data source is not such that a K-D test is auitasble. > > The K-S test is a non-parametric test for whether > a) a given sample comes from na given kind of distribiution; > or > v) two samples are drwn from the same distribition. > In either case, it is assumed that the sample values are drawn > independently of each other; if there is some reason why they > may not be independent of each other, the test os not valid. > > You say "I'm trying to use ks.test in order to compare two curve". > When I ezecute > plot(a) > plot(b) > on your data, I see (approximately) in each case a rise from a > medium vale (~2 or ~3) to a higher vale {~6 or ~10) followed > by a decline down to an exact 0. > > This is not the sort of situation that the K-S test is for! > Hoping this helps, > Ted. > >[[alternative HTML version deleted]]