1. Uczyć się
  2. /
  3. Courses
  4. /
  5. Studia przypadków w myśleniu statystycznym

Connected

Exercise

Obliczanie wartości formalnej ECDF

Aby przeprowadzić test Kołmogorowa-Smirnowa, musimy umieć obliczyć wartość formalnej ECDF w dowolnych punktach. Innymi słowy, potrzebujemy funkcji ecdf_formal(x, data), która zwraca wartość formalnej ECDF wyznaczonej na podstawie zbioru danych data dla każdej wartości w tablicy x. Dwie spośród poniższych funkcji realizują to poprawnie, jedna – nie. Z tych dwóch poprawnych jedna jest szybsza. Przypisz każdej funkcji odpowiednią etykietę.

Dla przypomnienia: ECDF jest formalnie zdefiniowana jako ECDF(x) = (liczba próbek ≤ x) / (całkowita liczba próbek). Warto też zajrzeć do dokumentacji funkcji 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)

Instrukcje

50 XP

Możliwe odpowiedzi