如何在R中写出Kolmogorov-Smirnov

时间:2015-01-26 00:44:30

标签: r statistics statistical-test

长话短说,我想手动编写Kolmogorov-Smirnov单样本统计的代码,而不是在R中使用ks.test()。根据我的理解,KS测试基本上是分子和分母。我有兴趣写出分子,据我所知,这是观察样本与理论假设之间的最大绝对差异。我们以下面的案例为例:

         Data    Expected
1  0.01052632 0.008864266
2  0.02105263 0.010969529
13 0.05263158 0.018282548
20 0.06315789 0.031689751
22 0.09473684 0.046315789
24 0.26315789 0.210526316
26 0.27368421 0.220387812
27 0.29473684 0.236232687
28 0.30526316 0.252520776
3  0.42105263 0.365650970
4  0.42105263 0.372299169
5  0.45263158 0.398781163
6  0.49473684 0.452853186
7  0.50526316 0.460277008
8  0.73684211 0.656842105
9  0.74736842 0.665484765
10 0.75789474 0.691523546
11 0.77894737 0.718005540
12 0.80000000 0.735955679
14 0.84210526 0.791135734
15 0.86315789 0.809972299
16 0.88421053 0.838559557
17 0.89473684 0.857950139
18 0.96842105 0.958337950
19 0.97894737 0.968642659
21 0.97894737 0.979058172
23 0.98947368 0.989473684
25 1.00000000 1.000000000

在这里,我想获得最大绝对差值(数据 - 预期)。

有人有想法吗?如有必要,我可以重新解释这个问题。谢谢!

1 个答案:

答案 0 :(得分:1)

我利用以下功能获得答案:

> A <- with(df, max(abs(Data-Expected)))
> A
0.082

基本上,这个函数计算两列之间的差异为一个新的向量,其值被转换为绝对值,并从绝对值中获得最大值。

归功于Josh O'Brien。