如何使用scipy.stats.kstest?

2024-06-09 02:31:17 发布

您现在位置:Python中文网/ 问答频道 /正文

从scipy文档中scipy.stats.kstest,似乎该函数只允许在样本和预定义的概率分布之间进行比较。它能比较一个样本和一个自定义的概率分布吗?在

我可以用两个样本的科尔莫戈洛夫-斯米尔诺夫测试,scipy.stats.ks_2samp从实际生成的样本与理论样本进行比较。在

我尝试了以下代码:

from scipy.stats import kstest
sample = [1 for i in range(10)]
ks_stat, p_value = kstest(sample, lambda x: 1)
print ks_stat, p_value
>> 1.0, 0.0

上面的p_值应为1,因为样本与分布完全匹配。在

方便的链接

一个样本KS测试:https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.stats.kstest.html

两个样本KS测试:https://docs.scipy.org/doc/scipy-0.15.1/reference/generated/scipy.stats.ks_2samp.html


Tags: samplehttpsorgdocsdocvaluestatsscipy
1条回答
网友
1楼 · 发布于 2024-06-09 02:31:17

KS检验仅适用于连续分布。连续分布的一个特性是样本不能有重复。在

通过一个更合理的例子,测试按预期工作:

import numpy as np
from scipy.stats import kstest
sample = [i for i in range(10)]
ks_stat, p_value = kstest(sample, lambda x: np.clip(0.1*(x+0.5),0,1))
print ks_stat, p_value

印刷品:

^{pr2}$

哎呀,@Niklas抱歉,只是刚刚正确地阅读了你的评论。在

相关问题 更多 >