Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python比较分布:SciPy ks_2samp p值始终为0.0_Python 3.x_Numpy_Scipy_Statistics_Kolmogorov Smirnov - Fatal编程技术网

Python 3.x Python比较分布:SciPy ks_2samp p值始终为0.0

Python 3.x Python比较分布:SciPy ks_2samp p值始终为0.0,python-3.x,numpy,scipy,statistics,kolmogorov-smirnov,Python 3.x,Numpy,Scipy,Statistics,Kolmogorov Smirnov,我试图比较两种分布,看看它们是相似的还是不同的。我尝试使用pythonscipy包中的ks_2samp。这是我的密码 from scipy.stats import truncnorm import matplotlib.pyplot as plt from scipy import stats def get_truncated_normal(mean=0, sd=1, low=0, upp=10): return truncnorm(low - mean) / sd, (upp -

我试图比较两种分布,看看它们是相似的还是不同的。我尝试使用pythonscipy包中的ks_2samp。这是我的密码

from scipy.stats import truncnorm
import matplotlib.pyplot as plt
from scipy import stats

def get_truncated_normal(mean=0, sd=1, low=0, upp=10):
    return truncnorm(low - mean) / sd, (upp - mean) / sd, loc=mean, scale=sd)

x1 = get_truncated_normal(mean=183, sd=50, low=1, upp=365).rvs(5722176)
x2 = get_truncated_normal(mean=175, sd=50, low=1, upp=365).rvs(5722176)
plt.hist(x1)
plt.hist(x2)
plt.show()
print(stats.ks_2samp(x1, x2))

Output:
Ks_2sampResult(statistic=0.06409554686888352, pvalue=0.0)

为什么我的输出
p值
总是
0.0
?非常感谢您的帮助。谢谢

检查这篇文章。

这表明Kolmogorov-Smirnov试验

您可以使用scipy执行KS测试


谢谢你的提示。在我的例子中,我相信是
scipy.stats.ks2samp
。但是,当我使用此选项时,我总是将p值设置为0.0。您可能使用了来自
ks_samp
的错误返回值。第一个返回值是KS检验统计量,它是累积分布函数之间距离的度量,如此之小意味着它们紧密相连,第二个返回值是p值。因此,您的代码看起来像是
ksTestStatistic,pValue=scipy.stats.ks_2samp(x1,x2)
,如果我在您的示例中运行这个,我会得到一个ks-test统计值
0.0097
和一个p值
0.73
,这无法拒绝它们来自同一分布(如预期)的无效假设。@alexpiers,谢谢是的,对于上面的例子,我得到了正确的KS统计和p值。我在不同的较大数据集(每个数组中约5754105个数据点)上测试了这种方法,该数据集经过多个掩码(我确保没有nan或inf值),但p值始终为0.0。有什么想法吗?谢谢您的帮助。@pyPN,如果没有看到您正在比较的数据集,很难说。此案例的KS测试统计数据是什么?@alexpiers..
KS_2sampleresult(统计数据=0.0824579016707816,pvalue=0.0)