初学者问题:
我想测试两个离散数据集是否来自同一分布。有人建议我进行 Kolmogorov-Smirnov 测试。
Conover ( Practical Nonparametric Statistics , 3d) 似乎说 Kolmogorov-Smirnov 检验可用于此目的,但它的行为对于离散分布是“保守的”,我不确定这意味着什么。
DavidR对另一个问题的评论说:“......您仍然可以根据 KS 统计量进行 α 级测试,但您必须找到其他方法来获得临界值,例如通过模拟。”
dgof R 包(article、cran)中的 ks.test() 版本添加了一些在 stats 包中的默认版本 ks.test() 中不存在的功能。除其他外, dgof::ks.test 包括此参数:
模拟 p 值:一个逻辑指示是否通过蒙特卡罗模拟计算 p 值,仅用于离散拟合优度测试。
模拟.p.value=T 的目的是为了完成 DavidR 的建议吗?
即使是这样,我也不确定我是否真的可以使用 dgof::ks.test 进行两个样本测试。看起来它只为连续分布提供了两个样本测试:
如果 y 是数字,则对 x 和 y 来自同一连续分布的原假设执行两样本检验。
或者,y 可以是一个字符串,命名一个连续(累积)分布函数(或这样的函数),或一个给出离散分布的 ecdf 函数(或类 stepfun 的对象)。在这些情况下,对生成 x 的分布函数是分布 y ....
(背景细节:严格来说,我的基本分布是连续的,但数据往往非常靠近少数几个点。每个点都是模拟的结果,是 -1 和之间 10 或 20 个实数的平均值1. 到模拟结束时,这些数字几乎总是非常接近 0.9 或 -.9。因此,平均值围绕着几个值聚集,我将它们视为离散的。模拟很复杂,我没有有理由认为数据遵循众所周知的分布。)
建议?