ComeçarComece de graça

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

Ver curso

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()
Editar e executar o código