Gérer les valeurs aberrantes
Dans cet exercice, vous allez traiter les valeurs aberrantes : des points de données si différents du reste que vous les gérez autrement que les points « normaux ». Vous utiliserez le résultat de l’exercice précédent (variation en pourcentage dans le temps) pour détecter ces valeurs aberrantes. Vous commencerez par écrire une fonction qui remplace les points aberrants par la médiane de l’ensemble de la série temporelle.
Cet exercice fait partie du cours
Machine Learning for Time Series Data in Python
Instructions
- Définissez une fonction qui prend en entrée une série et réalise les opérations suivantes :
- Calcule la valeur absolue de la distance de chaque point à la moyenne de la série, puis crée un masque booléen pour les points situés à trois fois l’écart type de la moyenne.
- Utilisez ce masque booléen pour remplacer les valeurs aberrantes par la médiane de l’ensemble de la série.
- Appliquez cette fonction à vos données et visualisez les résultats à l’aide du code fourni.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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()