ÎncepețiÎncepe gratuit

Calcularea valorii unui ECDF formal

Pentru a putea efectua testul Kolmogorov-Smirnov, trebuie să calculăm valoarea unui ECDF formal în puncte arbitrare. Cu alte cuvinte, avem nevoie de o funcție, ecdf_formal(x, data), care returnează valoarea ECDF-ului formal derivat din setul de date data pentru fiecare valoare din tabloul x. Două dintre funcțiile de mai jos realizează acest lucru. Una nu o face. Dintre cele două care efectuează calculul corect, una este mai rapidă. Etichetează fiecare funcție corespunzător.

Ca memento, ECDF-ul este definit formal ca ECDF(x) = (numărul eșantioanelor ≤ x) / (numărul total de eșantioane). Îți recomandăm să consulți și documentația funcției 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)

Acest exercițiu face parte din cursul

Studii de caz în gândirea statistică

Vezi cursul

Exercițiu interactiv practic

Transformă teoria în practică cu unul dintre exercițiile noastre interactive

Începe exercițiul