Inizia subitoInizia gratis

Gestire gli outlier

In questo esercizio gestirai gli outlier: punti dati talmente diversi dal resto dei tuoi dati che vanno trattati in modo diverso rispetto ai punti dati "normali". Userai l'output dell'esercizio precedente (la variazione percentuale nel tempo) per individuare gli outlier. Per prima cosa scriverai una funzione che sostituisce i punti dati outlier con il valore mediano dell'intera serie temporale.

Questo esercizio fa parte del corso

Machine Learning per dati di serie temporali in Python

Visualizza corso

Istruzioni dell'esercizio

  • Definisci una funzione che prenda in input una serie e faccia quanto segue:
    • Calcola il valore assoluto della distanza di ciascun punto dalla media della serie, quindi crea una maschera booleana per i punti a tre volte la deviazione standard dalla media.
    • Usa questa maschera booleana per sostituire gli outlier con la mediana dell'intera serie.
  • Applica questa funzione ai tuoi dati e visualizza i risultati usando il codice fornito.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

def replace_outliers(series):
    # Calculate the absolute difference of each timepoint from the series mean
    absolute_differences_from_mean = np.abs(series - np.mean(series))
    
    # Calculate a mask for the differences that are > 3 standard deviations from zero
    this_mask = absolute_differences_from_mean > (np.____(series) * ____)
    
    # Replace these values with the median accross the data
    series[this_mask] = np.____(series)
    return series

# Apply your preprocessing function to the timeseries and plot the results
prices_perc = prices_perc.____
prices_perc.loc["2014":"2015"].plot()
plt.show()
Modifica ed esegui il codice