Python中的Kolmogorov-Smirnov拟合优度测试

问题描述

我正在尝试为我的数据获得最佳分布。配件如下图所示完成,但是我需要测量以选择最佳的型号。我将拟合优度与卡方值进行了比较,并使用Kolmogorov-Smirnov(KS)检验来检验观察分布与拟合分布之间的显着差异。我搜索了一些可能的解决方案123,但没有得到答案。从下图的结果中:

  1. 如果p-value高于k-statistic,是否意味着我们可以接受假设或数据与分布很吻合?

  2. 或者,可以将level of significance(a=0.005)p-value进行比较并确定接受还是拒绝假设?如果p-value低于a,则很可能两个分布是不同的。

  3. 对于Kolmogorov-Smirnov test,对数据(-1,1)进行标准化是否必不可少?

  4. 从KS统计量和P值来看,exponnorm最适合数据。正确吗?

enter image description here

我通过以下方式计算了P值:

for distribution in dist_names:
    # Set up distribution and get fitted distribution parameters
    dist = getattr(scipy.stats,distribution)
    param = dist.fit(y_std)   
    p = scipy.stats.kstest(y_std,distribution,args=param)[1]
    p = np.around(p,5)
    p_values.append(p) 

解决方法

  1. 否,您可以将K统计量与K检验临界值表中的临界值进行比较,也可以将p值与重要性水平进行比较(在您的情况下为0.005)。
  2. 对,在统计数据中,如果p值较小,我们将拒绝空值并接受替代值。
  3. 否,如果我们在进行KS-test之前标准化数据,则会丢失有关原始数据分布的信息。例如,如果数据来自几何分布,则归一化后,随着样本数量达到无穷大,数据将以正态(0,1)收敛。
  4. 是的,因为在这种情况下p值> a,我们无法拒绝空值并接受该值,因此输入数据的分布与exponnorm相同。
    顺便说一下,这个问题应该属于Cross Validated,因为它或多或少与统计知识有关。希望这个答案对您有帮助。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...