開始使用免費開始

計算形式 ECDF 的值

為了進行 Kolmogorov–Smirnov 檢定,我們需要在任意點上計算形式 ECDF 的值。換句話說,我們需要一個函式 ecdf_formal(x, data),對陣列 x 中的每個值,回傳由資料集 data 推導出的形式 ECDF 值。有兩個函式能做到這件事,另一個不行。在能正確計算的兩個當中,有一個更快。請為每個函式加上標籤。

提醒一下,ECDF 的正式定義是 ECDF(×) =(樣本數量 ≤ ×)/(樣本總數)。你也可以查看 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)

本練習屬於課程

統計思維個案研究

檢視課程

動手互動練習

將理論付諸實踐,立即體驗我們的互動練習

開始練習