我ks.test
在 r 中使用函数来执行 Kolmogorov-Smirnov 测试。我发现 Kolmogorov-Smirnov 测试给出的结果不同于
max(abs(difference(x, y)))
根据Wikipedia中 Kolmogorov-Smirnov Test 的定义,结果应该是等价的。
有谁知道为什么?
我ks.test
在 r 中使用函数来执行 Kolmogorov-Smirnov 测试。我发现 Kolmogorov-Smirnov 测试给出的结果不同于
max(abs(difference(x, y)))
根据Wikipedia中 Kolmogorov-Smirnov Test 的定义,结果应该是等价的。
有谁知道为什么?
KS 统计量不应等于max(|x-y|)
。它应用于累积分布函数 (CDF)。因此,它代表了样本和参考分布之间不同的观察值的比例。
请参阅下面在MATLAB中执行的两个示例(尽管我希望R中的结果相同):
x = [1 2 3 4 5 6 7 8 9 10];
y = [1 2 3 4 5 6 7 8 9 11];
[~, ~, ks2s] = kstest2(x,y)
ks2s =
0.1000 (1)
x = [1 2 3 4 5 6 7 8 9 10];
y = [1 2 3 4 5 6 7 8 9 12];
[~, ~, ks2s] = kstest2(x,y)
ks2s =
0.1000 (2)
x
因此,虽然 (2) 中和之间的最大绝对幅度差y
较大,但 KS 统计量是相同的,因为不同样本的比例相同。
例如,如果y
有一个额外的样本,结果会发生变化:
x = [1 2 3 4 5 6 7 8 9 10];
y = [1 2 3 4 5 6 7 8 9 10 11];
[h, p, ks2s] = kstest2(x,y)
ks2s =
0.0909