ks.test报错

作者在利用R中的ks.test函数进行Kolmogorov-Smirnov检验,验证x是否服从均匀分布时,发现编译器报错

ks.test(x,"punif")
Warning message:
In ks.test(x, "punif") :
ties should not be present for the Kolmogorov-Smirnov test

出现这样的错误是因为我们输入的向量中有重复值。如上图,我们检验x是否服从均匀分布。因而x首先必须是连续分布。而对于连续分布来说,出现两个相同的值的概率为0,所以会报错。

如果从代码层面来看,ks.test函数在实现的时候就考虑了这种情况

if (length(unique(x)) < n) {
    warning("ties should not be present for the Kolmogorov-Smirnov test")
    TIES <- TRUE
}

如果我们通过help(ks.test)查看官方文档,发现官方文档对这类错误的介绍如下:
The presence of ties always generates a warning, since continuous distributions do not generate them. If the ties arose from rounding the tests may be approximately valid, but even modest amounts of rounding can have a significant effect on the calculated statistic.
具体内容和我们上文所说的大致相同。

出现这种问题的解决办法:
1、更换检验方法
2、给x增加一些小的扰动,读者也可根据自己的需要,自行更改amount参数的值

jitter(x,0.000001)
output.png

Reference:
R document

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,877评论 0 13
  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,811评论 0 10
  • 读书笔记(R语言) 作者:曾健明公众号: 生信技能树整理原因:在公众号这篇文章中看到如下一段话,自己最近又在练习用...
    6102阅读 1,772评论 0 5
  • Lesson 1 A private conversation 私人谈话Last week I went to t...
    造物家英语阅读 141,832评论 2 57
  • 硒元素被誉为“肝脏的守护神”,能杀死90%的肝炎病毒。1957年法国科学家施瓦茨在研究肝坏死的病因时,发现硒是一种...
    d9c9137a8190阅读 1,105评论 0 0

友情链接更多精彩内容