Reputation: 329
I tried to use the Kolmogorov-Smirnov test to test normality of a sample. This is a small simple example of what I do:
x <- rnorm(1e5, 1, 2)
ks.test(x, "pnorm")
Here is the result R gives me:
One-sample Kolmogorov-Smirnov test
data: x
D = 0.3427, p-value < 2.2e-16
alternative hypothesis: two-sided
The p-value is very low whereas the test should accept the null-hypothesis.
I do not understand why it does not work.
Upvotes: 28
Views: 74295
Reputation: 8188
I think it would be better to use mean=mean(x)
and sd=sd(x)
like
ks.test(x, "pnorm", mean=mean(x), sd=sd(x))
Upvotes: 15
Reputation: 12411
As pointed out in the ks.test
help, you have to give to the ks.test
function the arguments of pnorm
. If you do not precise mean and standard variation, the test is done on a standard gaussian distribution.
Here you should write:
ks.test(x, "pnorm", 1, 2) #or ks.test(x, "pnorm", mean=1, sd=2)
Upvotes: 34