开始使用免费开始使用

计算 K-S 统计量

请编写一个函数,从两个数据集 data1data2 计算 Kolmogorov–Smirnov 统计量,其中 data2 为与您的数据进行比较的理论分布所生成的样本。注意,这意味着我们使用 hacker stats 来计算"数据集 vs. 理论分布"的 K-S 统计量,而不是两个经验数据集之间的 K-S 统计量。方便的是,您刚刚选用来计算形式 ECDF 取值的函数是 dcst.ecdf_formal()

本练习是课程的一部分

统计思维案例研习

查看课程

练习说明

  • 使用 dcst.ecdf() 计算 data1 的形式 ECDF 的凸角取值。将结果存入变量 xy
  • 使用 dcst.ecdf_formal() 计算由 data2 确定的理论 CDF 在凸角 x 处的取值。将结果存入变量 cdf
  • 计算形式 ECDF 的凹角与理论 CDF 之间的距离。将结果存为 D_top
  • 计算形式 ECDF 的凸角与理论 CDF 之间的距离。注意,您需要从 y 中减去 1/len(data1) 才能得到凸角处的 y 值。将结果存为 D_bottom
  • 将 K-S 统计量作为 D_topD_bottom 所有条目的最大值返回。为此,您可以将 D_topD_bottom 以元组形式一起传给 np.max()

交互式实操练习

通过完成这段示例代码来试试这个练习。

def ks_stat(data1, data2):
    # Compute ECDF from data: x, y
    
    
    # Compute corresponding values of the target CDF
    cdf = ____

    # Compute distances between concave corners and CDF
    D_top = ____ - ____

    # Compute distance between convex corners and CDF
    D_bottom = ____ - ____ + ____/____

    return np.max((D_top, D_bottom))
编辑并运行代码