我尝试使用Kolmogorov-Smirnov检验来检验样本的正态性。这是我所做的一个简单例子:
x <- rnorm(1e5, 1, 2)
ks.test(x, "pnorm")
以下是R给我的结果:
One-sample Kolmogorov-Smirnov test
data: x
D = 0.3427, p-value < 2.2e-16
alternative hypothesis: two-sided
p值非常低,而测试应该接受零假设。
我不明白为什么它不起作用。
答案 0 :(得分:22)
正如ks.test
help所指出的那样,您必须向ks.test
函数提供pnorm
的参数。如果您没有精确的平均值和标准偏差,则测试是在标准高斯分布上完成的。
在这里你应该写:
ks.test(x, "pnorm", 1, 2) #or ks.test(x, "pnorm", mean=1, sd=2)
答案 1 :(得分:1)
我认为最好像这样使用mean=mean(x)
和sd=sd(x)
ks.test(x, "pnorm", mean=mean(x), sd=sd(x))