1. 学ぶ
  2. /
  3. コース
  4. /
  5. 統計的思考 ケーススタディ

Connected

演習

正式なECDFの値を計算する

コルモゴロフ-スミルノフ検定を行うには、任意の点における正式なECDFの値を計算する必要があります。つまり、データセット data から導出した正式なECDFの値を、配列 x の各値に対して返す関数 ecdf_formal(x, data) が必要です。以下の3つの関数のうち、正しく計算できるものが2つ、できないものが1つあります。また、正しい2つのうち、一方はもう一方より高速です。それぞれにラベルを付けましょう。

参考として、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)

指示

50 XP

選択肢