我已经阅读了有关此模块(和 Scipy 文档)的现有帖子,但是当您拥有数据集和可调用函数时,我仍然不清楚如何使用 Scipy 的 kstest 模块进行拟合优度测试。
我要测试我的数据的 PDF 不是标准的 scipy.stats 分布之一,所以我不能只使用类似的东西来调用它:
kstest(mydata,'norm')
其中 mydata 是一个 Numpy 数组。相反,我想做类似的事情:
kstest(mydata,myfunc)
其中 'myfunc' 是可调用函数。这不起作用——这并不奇怪,因为 kstest 无法知道“mydata”数组的横坐标是什么,以便使用“myfunc”生成相应的理论频率。假设'mydata'中的频率对应于随机变量的值是数组'abscissa'。然后我想也许我可以使用 stats.ks_2samp:
ks_2samp(mydata,myfunc(abscissa))
但我不知道这在统计上是否有效。(旁注:kstest 和 ks_2samp 是否期望频率数组被归一化,或者他们想要绝对频率?)
无论如何,由于单样本 KS 测试应该用于拟合优度测试,我不得不假设有一些方法可以直接使用 kstest 进行测试。你怎么做到这一点?