Tratando outliers
Neste exercício, você vai tratar outliers — pontos de dados tão diferentes do restante que precisam ser tratados de forma diferente dos pontos de dados "normais". Você usará a saída do exercício anterior (variação percentual ao longo do tempo) para detectar os outliers. Primeiro, você vai escrever uma função que substitui os pontos de dados outliers pelo valor da mediana de toda a série temporal.
Este exercício faz parte do curso
Machine Learning para dados de séries temporais em Python
Instruções do exercício
- Defina uma função que recebe uma série de entrada e faça o seguinte:
- Calcule o valor absoluto da distância de cada ponto de dados à média da série e, em seguida, crie uma máscara booleana para pontos que estejam a três vezes o desvio padrão da média.
- Use essa máscara booleana para substituir os outliers pela mediana de toda a série.
- Aplique essa função aos seus dados e visualize os resultados usando o código fornecido.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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()