gagaouthu
gagaouthu

Reputation: 329

Kolmogorov-Smirnov test in R

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

Answers (2)

UseR10085
UseR10085

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

Pop
Pop

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

Related Questions