Inizia subitoInizia gratis

Calcolare il valore di una ECDF formale

Per poter eseguire il test di Kolmogorov–Smirnov, dobbiamo calcolare il valore di una ECDF formale in punti arbitrari. In altre parole, ci serve una funzione, ecdf_formal(x, data), che restituisca il valore della ECDF formale ricavata dall'insieme di dati data per ciascun valore nell'array x. Due delle funzioni lo fanno correttamente. Una no. Delle due corrette, una è più veloce. Etichettale.

Come promemoria, la ECDF è definita formalmente come ECDF(x) = (numero di campioni ≤ x) / (numero totale di campioni). Potresti anche voler controllare la docstring di 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)

Questo esercizio fa parte del corso

Casi di studio nel pensiero statistico

Visualizza corso

esercizio interattivo pratico

Trasforma la teoria in pratica con uno dei nostri esercizi interattivi

Inizia esercizio