【发布时间】:2021-06-18 03:19:43
【问题描述】:
有人能解释一下为什么,如果我手动计算 KS 检验统计量,结果与我使用 scipy.stats.kstest 时的结果不同吗?
>>> sample = np.array([1000,2000,2500,3000,5000])
>>> ecdf = np.array([0.2, 0.4, 0.6, 0.8, 1. ])
>>> cdf = stats.weibull_min(0.3, 100, 4000).cdf(sample)
>>> abs(ecdf - cdf).max()
0.3454961536273503
>>> stats.kstest(rvs=sample, cdf=stats.weibull_min(0.3, 100, 4000).cdf)
KstestResult(statistic=0.4722995454382698, pvalue=0.1534647709785294)
【问题讨论】:
-
对此进行调查的一种方法是将 Weibull cdf 绘制为平滑线,将经验 cdf 绘制为阶梯式,看看最大的区别是什么。也许为了更容易思考,尝试使用均值 0 和方差 1 的高斯 cdf,然后尝试不同的均值和方差,然后尝试 Weibull。重点是从非常简单的事情开始,然后逐步增加复杂性。
标签: scipy statistics