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í
Interaktivní praktické cvičení
Proměňte teorii v praxi s jedním z našich interaktivních cvičení
Začít cvičení