等效于整数数据的 Kolmogorov-Smirnov 检验?

机器算法验证 分布 拟合优度 kolmogorov-smirnov 测试
2022-03-21 11:45:11

是否有等效于整数数据的两样本 Kolmogorov-Smirnov 检验(不是计数数据,因为它可以包括负整数)?

Kolmogorov-Smirnov 检验在存在大量关系的情况下表现不佳,这显然在整数中很常见。

2个回答

置换测试也可以应用在这里思路如下。

是两个独立样本,并考虑检验假设为此,请按如下方式标记您的数据X1,...,XmFY1,...,YnGH0:F=GH1:FG

1X11X21Xm2Y12Y22Yn

现在,让是样本和标签TS={X1,...,Xm,Y1,...,Yn}L={1,1,...,2,2,...,2}

如果为真,则标记是多余的。H0

现在,排列组标签并多次重新计算测试统计量,例如B

该检验的单侧 p 值计算为均值差异大于或等于的采样排列的比例。检验的两侧 p 值计算为绝对差大于或等于的采样排列的比例。T(S,L)abs(T(S,L))

一个玩具例子

, ,考虑统计使用该统计量的排列方法在下面实现。XiPoisson(10)i=1,...,m=100YjPoisson(11)j=1,...,n=100T=mean of Group 1mean of Group 2

rm(list=ls)
set.seed(1)
# Sample size
ns=100
#Simulated data
x = rpois(ns,11)
y = rpois(ns,10)

# Observed statistic    
T.obs = mean(x) - mean(y)

# Pooled data
SL = rbind(cbind(rep(1,ns),x),cbind(rep(2,ns),y))

# Resampling
B=10000
T = rep(0,B)

for(i in 1:B){
samp = sample(SL[,1])
ind1 = which(samp==1)
ind2 = which(samp==2)
T[i] = mean( SL[ind1,2] )- mean( SL[ind2,2] )
}

# p-value
p.value = length(which(abs(T)>abs(T.obs)))/B

我不知道这种方法有多健壮,但经过一些实验后,它似乎表现不错请注意,统计的选择是开放的,因此必须小心根据您的问题做出有意义的选择,因为性能取决于统计量和样本量。T

我希望这有帮助。

我建议您进行两个样本卡方检验,您可以在其中对数据进行分类,并将分类总数与基于合并样本的分类中的“预期数字”进行比较。这可以概括为 k 大于 2。我假设您不需要对经验 cdf 形式进行另一次测试。我认为当有很多关系时,整个测试班可能会遇到一些麻烦。

是一个参考,它准确地向您展示了如何计算两样本卡方检验统计量以及渐近卡方分布的自由度。