我正在尝试比较两个分布,看看它们是相似还是不同。我尝试使用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
?任何帮助都将不胜感激。谢谢
查看stackoverflow帖子的统计信息。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