ComenzarEmpieza gratis

Manejo de valores atípicos

En este ejercicio, tratarás los valores atípicos: puntos de datos que son tan diferentes del resto de tus datos, que los tratas diferentemente de otros puntos de datos de aspecto "normal". Utilizarás el resultado del ejercicio anterior (porcentaje de cambio a lo largo del tiempo) para detectar los valores atípicos. Primero escribirás una función que sustituya los puntos de datos atípicos por el valor mediano de toda la serie temporal.

Este ejercicio forma parte del curso

Machine learning para datos de series temporales en Python

Ver curso

Instrucciones de ejercicio

  • Define una función que tome una serie de entrada y haga lo siguiente:
    • Calcula el valor absoluto de la distancia de cada punto de datos respecto a la media de la serie y, a continuación, crea una máscara booleana para los puntos de datos que estén a tres veces la desviación típica de la media.
    • Utiliza esta máscara booleana para sustituir los valores atípicos por la mediana de toda la serie.
  • Aplica esta función a tus datos y visualiza los resultados utilizando el código dado.

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

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()
Editar y ejecutar código