ComenzarEmpieza gratis

Cómo manejar valores atípicos

En este ejercicio, vas a manejar valores atípicos: puntos de datos tan distintos del resto que conviene tratarlos de forma diferente a los datos con aspecto "normal". Usarás el resultado del ejercicio anterior (el porcentaje de cambio a lo largo del tiempo) para detectar los valores atípicos. Primero escribirás una función que reemplace los valores atípicos por la mediana de toda la serie temporal.

Este ejercicio forma parte del curso

Machine Learning para datos de series temporales en Python

Ver curso

Instrucciones del ejercicio

  • Define una función que reciba una serie de entrada y haga lo siguiente:
    • Calcula el valor absoluto de la distancia de cada punto de datos a la media de la serie y crea una máscara booleana para los puntos que estén a tres veces la desviación estándar de la media.
    • Usa esta máscara booleana para reemplazar los valores atípicos por la mediana de toda la serie.
  • Aplica esta función a tus datos y visualiza los resultados usando el código proporcionado.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el 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