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ă
Exercițiu interactiv practic
Transformă teoria în practică cu unul dintre exercițiile noastre interactive
Începe exercițiul