Kolmogorov-Smirnov 检验给出的结果不同于 max(abs(difference(x, y)))
Kolmogorov-Smirnov Test gives result different from max(abs(difference(x, y)))
我在 r 中使用 ks.test
函数来执行 Kolmogorov-Smirnov 检验。我发现 Kolmogorov-Smirnov 检验给出的结果不同于
max(abs(difference(x, y)))
根据Wikipedia中Kolmogorov-Smirnov检验的定义,结果应该是等价的。
有人知道为什么吗?
KS 统计数据不应等于 max(|x-y|)
。
它应用于累积分布函数 (CDF)。因此,它代表了样本和参考分布之间不同观察值的比例。
参见下面在 MATLAB (although I expect the results to be identical in 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)
因此,虽然(2)中x
和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
我在 r 中使用 ks.test
函数来执行 Kolmogorov-Smirnov 检验。我发现 Kolmogorov-Smirnov 检验给出的结果不同于
max(abs(difference(x, y)))
根据Wikipedia中Kolmogorov-Smirnov检验的定义,结果应该是等价的。
有人知道为什么吗?
KS 统计数据不应等于 max(|x-y|)
。
它应用于累积分布函数 (CDF)。因此,它代表了样本和参考分布之间不同观察值的比例。
参见下面在 MATLAB (although I expect the results to be identical in 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)
因此,虽然(2)中x
和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