向某人解释 Kolmogorov Smirnov 测试概念的最简洁、最简单的方法是什么?直观上是什么意思?
这是一个我难以表达的概念——尤其是在向某人解释时。
有人可以用图表和/或使用简单的例子来解释它吗?
向某人解释 Kolmogorov Smirnov 测试概念的最简洁、最简单的方法是什么?直观上是什么意思?
这是一个我难以表达的概念——尤其是在向某人解释时。
有人可以用图表和/或使用简单的例子来解释它吗?
Kolmogorov-Smirnov 检验评估随机样本(数值数据)来自连续分布的假设,该连续分布完全指定而无需参考数据。
这是这种分布的累积分布函数 (CDF) 的图表。
样本可以通过其经验(累积)分布函数或 ECDF 来完全描述。它绘制小于或等于水平值的数据分数。值的随机样本,当我们从左到右扫描时,每次跨越一个数据值时
下图显示了取自该分布点符号定位数据。绘制线条以提供点之间的视觉连接,类似于连续 CDF 的图形。
KS 测试使用它们的图表之间的最大垂直差异来比较 CDF 和 ECDF。金额(正数)是Kolmogorov-Smirnov 检验统计量。
我们可以通过定位位于 CDF 上方或下方最远的数据点来可视化 KS 检验统计量。 此处以红色突出显示。检验统计量是极值点与参考 CDF 值之间的垂直距离。绘制了两条位于 CDF 上方和下方此距离的限制曲线以供参考。因此,ECDF 位于这些曲线之间,并且至少与其中一条曲线相接触。
为了评估 KS 检验统计量的重要性,我们像往常一样将其与 KS 检验统计量进行比较,KS 检验统计量往往会出现在假设分布的完全随机样本中。 可视化它们的一种方法是绘制许多此类(独立)样本的 ECDF,以表明它们的KS 统计数据是什么。这形成了 KS 统计量的“零分布”。
样本中的每一个的 ECDF与一个红色标记一起显示,该标记位于它与假设的 CDF 的最大偏离位置。在这种情况下,与大多数随机样本相比,原始样本(蓝色)与 CDF 的偏差明显较小。(73% 的随机样本比蓝色样本更远离 CDF。从视觉上看,这意味着 73% 的红点落在由两条红色曲线分隔的区域之外。)因此,我们(在此基础上)没有结论我们的(蓝色)样本的证据不是由该 CDF 生成的。也就是说,差异“在统计上不显着”。
更抽象地说,我们可以在这组大的随机样本中绘制 KS 统计量的分布。 这称为检验统计量的零分布。这里是:
垂直蓝线定位原始样本的 KS 检验统计量。27% 的随机 KS 测试统计量较小,73% 的随机统计量较大。扫一扫,看起来数据集(这个大小,对于这个假设的 CDF)的 KS 统计量必须超过 0.4 左右才能得出结论它非常大(因此构成假设的 CDF 不正确的重要证据) .
尽管可以说更多——特别是关于为什么 KS 测试以相同的方式工作并产生相同的零分布,对于任何连续 CDF——这足以理解测试并将其与概率图一起使用来评估数据分布。
应要求,这是R
我用于计算和绘图的基本代码。它使用标准正态分布 ( pnorm
) 作为参考。注释掉的行表明我的计算与内置ks.test
函数的计算一致。我不得不修改它的代码以提取有助于 KS 统计的特定数据点。
ecdf.ks <- function(x, f=pnorm, col2="#00000010", accent="#d02020", cex=0.6,
limits=FALSE, ...) {
obj <- ecdf(x)
x <- sort(x)
n <- length(x)
y <- f(x) - (0:(n - 1))/n
p <- pmax(y, 1/n - y)
dp <- max(p)
i <- which(p >= dp)[1]
q <- ifelse(f(x[i]) > (i-1)/n, (i-1)/n, i/n)
# if (dp != ks.test(x, f)$statistic) stop("Incorrect.")
plot(obj, col=col2, cex=cex, ...)
points(x[i], q, col=accent, pch=19, cex=cex)
if (limits) {
curve(pmin(1, f(x)+dp), add=TRUE, col=accent)
curve(pmax(0, f(x)-dp), add=TRUE, col=accent)
}
c(i, dp)
}
单样本 Kolmogorov-Smirnov 检验发现完全指定的连续假设 cdf 和经验 cdf 之间的最大垂直距离。
双样本 Kolmogorov-Smirnov 检验发现两个样本的经验 cdf 之间的最大垂直距离。
异常大的距离表明样本与假设分布不一致(或两个样本与来自同一分布的情况不一致)。
这些检验是非参数的,因为在零下检验统计量的分布不取决于在零下指定的特定分布(或两个样本来自哪个共同分布)。
这些测试有“单面”(在特定意义上)版本,但这些测试相对很少使用。
您可以使用离散分布进行 Kolmogorov-Smirnov 检验,但通常的检验版本(即使用通常的零分布)是保守的,有时非常保守。您可以(但是)为完全指定的离散分布获得新的临界值。
当在位置尺度族*(或位置和尺度的子集)中估计参数时,有一个相关的测试,正确地称为 Lilliefors 测试(Lilliefors 对正常情况进行了三个测试,对指数情况进行了测试)。这不是免分发的。
* 最多单调变换
我发现将两个 CDF(无论是经验人口)视为彼此跳舞但保持接近是有帮助的。舞伴可以互相旋转,但彼此保持两臂的距离,对吧?当两个人相距更远时,他们可能不会互相跳舞。
一个样本
在单样本(拟合优度)检验中,我们假设数据来自具有特定 CDF 的某个分布。数据还具有经验 CDF。如果我们是对的,那么数据的 CDF 应该围绕假设分布的 CDF 跳舞,但要保持接近。如果舞伴之间的距离太远(垂直距离),那么我们会将其视为反对我们假设的证据。
两个样本
在双样本测试中,我们假设两个数据集来自同一分布。如果是这种情况,那么这两个经验 CDF 应该互相跳舞,但保持相当接近。如果舞伴之间的距离太远(同样是垂直距离),那么我们会将其视为反对我们假设的证据。