原文链接:http://tecdat.cn/?p=24925
Kolmogorov-Smirnov是比较一个频率分布f(x)与理论分布g(x)或者两个观测值分布的检验方法。其原假设H0:两个数据分布一致或者数据符合理论分布。D=max| f(x)- g(x)|,当实际观测值D>D(n,α)则拒绝H0,否则则接受H0假设。 KS检验与t-检验之类的其他方法不同是KS检验不需要知道数据的分布情况,可以算是一种非参数检验方法。当然这样方便的代价就是当检验的数据分布符合特定的分布事,KS检验的灵敏度没有相应的检验来的高。在样本量比较小的时候,KS检验最为非参数检验在分析两组数据之间是否不同时相当常用。
Kolmogorov-Smirnov检验优点和缺点
两样本K-S检验由于对两样本的经验分布函数的位置和形状参数的差异都敏感而成为比较两样本的最有用且常规的非参数方法之一。
优点:该检验不依赖于要测试的累积分布函数,相比于卡方拟合检验(卡方检验需要50个以上的样本),不需要大量的样本。
缺点:只适用于连续分布;在分布中间敏感,在两端不够敏感;最大的局限在于整个分布需要完全确定,如果位置,形状等参数都是从数据中估计的,判定区间不再有效,因此这些参数一般只能通过模拟得到。
绘制Kolmogorov-Smirnov检验的ECDF曲线
绘制Kolmogorov-Smirnov检验的ECDF曲线以及分布之间的最大距离(D)的一个快速R例子。使用ggplot2和基础R绘图的例子
代码语言:javascript复制require(ggplot2)
代码语言:javascript复制# 模拟两个分布 - 您的数据放在这里!
norm(10000, 10, 5)
dat <- data.frame
# 创建数据的 ECDF
cdf1 <- ecdf
cdf2 <- ecdf
# 找到最小和最大统计数据以在距离最大的点之间画线
mnax <- seq
x0 <- minMax[which
你也可以嵌入绘图,例如。
代码语言:javascript复制ggplot
#geom_line
geom_segment
geom_point
geom_point
非 ggplot 绘图示例
代码语言:javascript复制######################### 非 ggplot 示例
##交替,使用ecdf的标准R图
#plot
#lines
代码语言:javascript复制## 替代,向下到 x 轴
#segments