Elipse Knowledgebase



Removendo dados discrepantes (outliers) com a linguagem Python.

Python é a linguagem de scripts utilizada pelo EPM. Para maiores informações, clique aqui.

Muitas vezes, uma análise estatística não pode ser validada devido à existência de outliers, ou seja, valores inconsistentes com os demais do conjunto. Neste estudo de caso, vamos considerar que houve problemas em um sensor de temperatura ambiente, o que causou leituras erradas. Observe o conjunto de dados:

Temperaturas = [ 25, 26, 225, 24, 23, 24, 25, 325, 28, 27]

Fica claro que existem valores incompatíveis. Veja o que acontece se calcularmos a média entre estes valores:

Média = (25+26+225+24+23+24+25+325+28+27) / 10, ou seja = 75.2

Obviamente a média está fora da normalidade, e isso causaria erros na interpretação dos dados. Observe agora a média sem os outliers.

Média = (25+26+24+23+24+25+28+27)/8, ou seja = 25.25

A função removeoutlier  utiliza o método IQR (Filtro de Tukey).

Considere:

q1 como primeiro quartil do conjunto de valores.

q3 como terceiro quartil do conjunto de valores.

Os outliers serão os valores do conjunto que estão abaixo de q1 - 1.5(q3-q1) e acima de q3 + 1.5(q3-q1).

import numpy as np

def removeoutlier(values):

    fator = 1.5

    q3, q1 = np.percentile(values, [75, 25])

    iqr = q3 q1

    lowpass = q1 - (iqr * fator)

    highpass = q3 + (iqr * fator)

    return [v for v in values if v > lowpass and v < highpass]

 

Anexo a este artigo está uma versão comentada desse script.

NOTA: Nem sempre outliers representam erros de leitura. Por exemplo, uma temperatura extrema poderia ser causada por condições climáticas adversas. É necessário avaliar o conjunto de dados, o contexto em que foram gerados e quais informações se deseja extrair deles, para saber qual a melhor técnica para remoção de outliers.



Related Articles

No related articles were found.

Attachments

Visitor Comments

No visitor comments posted. Post a comment

Post Comment for "Removendo dados discrepantes (outliers) com a linguagem Python."

To post a comment for this article, simply complete the form below. Fields marked with an asterisk are required.

   Name:
   Email:
* Comment:
* Enter the code below:

 

Article Details

Last Updated
24th of July, 2017

Autor
Lucas Kotres

Would you like to...

Print this page  Print this page

Email this page  Email this page

Post a comment  Post a comment

 Subscribe me

Subscribe me  Add to favorites

Remove Highlighting Remove Highlighting

Edit this Article

Quick Edit


User Opinions

100% thumbs up 0% thumbs down (3 votes)

How would you rate this answer?




Thank you for rating this answer.

Continue