开始使用免费开始使用

计算形式 ECDF 的值

为进行 Kolmogorov–Smirnov 检验,我们需要在任意点计算形式 ECDF 的值。换句话说,需要一个函数 ecdf_formal(x, data),对数组 x 中的每个值,返回由数据集 data 导出的形式 ECDF 值。其中有两个函数能实现该计算,另一个不能。在能正确计算的两个函数中,有一个更快。请分别标注。

提醒一下,ECDF 的形式定义为 ECDF(x) = (样本数 ≤ x)/(样本总数)。您也可以查看 np.searchsorted() 的文档字符串。

a)

def ecdf_formal(x, data):
    return np.searchsorted(np.sort(data), x) / len(data)

b)

def ecdf_formal(x, data):
    return np.searchsorted(np.sort(data), x, side='right') / len(data)

c)

def ecdf_formal(x, data):
    output = np.empty(len(x))

    data = np.sort(data)

    for i, x_val in x:
        j = 0
        while j < len(data) and x_val >= data[j]:
            j += 1

        output[i] = j

    return output / len(data)

本练习是课程的一部分

统计思维案例研习

查看课程

动手互动练习

通过我们的互动练习之一,将理论转化为实践

开始练习