Python 比较分布:SciPy ks_2samp p 值始终为 0.0
Python Compare distribution: SciPy ks_2samp p-value always 0.0
我正在尝试比较两个分布,看看它们是否相似或不同。我尝试使用 python scipy 包中的 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-value
总是 0.0
?非常感谢您的帮助。谢谢!
检查这个统计计算器 post。
https://stats.stackexchange.com/questions/18408/two-samples-of-the-same-distribution
这表明 Kolmogorov-Smirnov 检验。
并且您可以使用scipy进行KS测试。
https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.stats.kstest.html
我正在尝试比较两个分布,看看它们是否相似或不同。我尝试使用 python scipy 包中的 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-value
总是 0.0
?非常感谢您的帮助。谢谢!
检查这个统计计算器 post。 https://stats.stackexchange.com/questions/18408/two-samples-of-the-same-distribution
这表明 Kolmogorov-Smirnov 检验。
并且您可以使用scipy进行KS测试。
https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.stats.kstest.html