Kolmogorov-Smirnov是比较一个频率分布f(x)与理论分布g(x)或者两个观测值分布的检验方法。
其原假设H0:两个数据分布一致或者数据符合理论分布。D=max| f(x)- g(x)|,当实际观测值D>D(n,α)则拒绝H0,否则则接受H0假设。
可下载资源
KS检验与t-检验之类的其他方法不同是KS检验不需要知道数据的分布情况,可以算是一种非参数检验方法。
-
经常使用的拟合优度检验和Kolmogorov-Smirnov检验的检验功效较低,在许多计算机软件的Kolmogorov-Smirnov检验无论是大小样本都用大样本近似的公式,很不精准,一般使用Shapiro-Wilk检验和Lilliefor检验。
-
Kolmogorov-Smirnov检验只能检验是否一个样本来自于一个已知样本,而Lilliefor检验可以检验是否来自未知总体。
-
Shapiro-Wilk检验和Lilliefor检验都是进行大小排序后得到的,所以易受异常值的影响。
-
Shapiro-Wilk检验只适用于小样本场合(3≤n≤50),其他方法的检验功效一般随样本容量的增大而增大。
-
拟合优度检验和Kolmogorov-Smirnov检验都采用实际频数和期望频数进行检验,前者既可用于连续总体,又可用于离散总体,而Kolmogorov-Smirnov检验只适用于连续和定量数据。
-
拟合优度检验的检验结果依赖于分组,而其他方法的检验结果与区间划分无关。
当然这样方便的代价就是当检验的数据分布符合特定的分布事,KS检验的灵敏度没有相应的检验来的高。
在样本量比较小的时候,KS检验最为非参数检验在分析两组数据之间是否不同时相当常用。
Kolmogorov-Smirnov检验优点和缺点
两样本K-S检验由于对两样本的经验分布函数的位置和形状参数的差异都敏感而成为比较两样本的最有用且常规的非参数方法之一。
优点:该检验不依赖于要测试的累积分布函数,相比于卡方拟合检验(卡方检验需要50个以上的样本),不需要大量的样本。
缺点:只适用于连续分布;在分布中间敏感,在两端不够敏感;最大的局限在于整个分布需要完全确定,如果位置,形状等参数都是从数据中估计的,判定区间不再有效,因此这些参数一般只能通过模拟得到。
绘制Kolmogorov-Smirnov检验的ECDF曲线
绘制Kolmogorov-Smirnov检验的ECDF曲线以及分布之间的最大距离(D)的一个快速R例子。使用ggplot2和基础R绘图的例子
require(ggplot2)
# 模拟两个分布 - 您的数据放在这里! norm(10000, 10, 5) dat <- data.frame # 创建数据的 ECDF cdf1 <- ecdf cdf2 <- ecdf # 找到最小和最大统计数据以在距离最大的点之间画线 mnax <- seq x0 <- minMax\[which
你也可以嵌入绘图,例如。
ggplot + #geom_line geom_segment + geom_point+ geom_point+
非 ggplot 绘图示例
######################### 非 ggplot 示例 ##交替,使用ecdf的标准R图 #plot #lines
随时关注您喜欢的主题
plot( plot #plot #lines ## 替代,向下到 x 轴 points segments
可下载资源
关于作者
Kaizong Ye是拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。
本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。
非常感谢您阅读本文,如需帮助请联系我们!