Začněte nyníZačněte zdarma

Výpočet hodnoty formální ECDF

Aby bylo možné provést Kolmogorovův-Smirnovův test, potřebujeme umět vypočítat hodnotu formální ECDF v libovolných bodech. Jinými slovy, potřebujeme funkci ecdf_formal(x, data), která pro každou hodnotu v poli x vrátí hodnotu formální ECDF odvozené z datové sady data. Dvě z níže uvedených funkcí to zvládají správně, jedna ne. Z těch dvou správných je navíc jedna rychlejší než druhá. Každou z funkcí označ příslušným popiskem.

Pro připomenutí: ECDF je formálně definována jako ECDF(x) = (počet vzorků ≤ x) / (celkový počet vzorků). Může se ti také hodit podívat se na dokumentaci funkce 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)

Toto cvičení je součástí kurzu

Případové studie ve statistickém myšlení

Zobrazit kurz

Interaktivní praktické cvičení

Proměňte teorii v praxi s jedním z našich interaktivních cvičení

Začít cvičení