Método outliers()
Identifica valores discrepantes estatísticos em uma coluna numérica. Os valores discrepantes podem ser identificados para a coluna como um todo ou para grupos separados baseados em valores idênticos em uma ou mais colunas-chave.
Sintaxe
nome_dataframe.outliers(keys = ["coluna_chave", "...n"]|None, on = "coluna_numérica", distance = número_desvios_padrão, method = mean|median)
Parâmetros
Nome | Descrição |
---|---|
keys = ["coluna_chave", "...n"] | None |
|
on = "coluna_numérica" |
A coluna numérica onde serão procurados valores discrepantes. Você pode examinar apenas uma coluna por vez. Os valores discrepantes são os que ficam fora dos limites superior e inferior estabelecidos pelo desvio padrão do grupo ou da coluna, ou por um múltiplo de desvio padrão especificado. |
distance = número_desvios_padrão |
Em coluna_numérica, o número de desvios padrão da média ou da mediana para os limites superior e inferior de valores discrepantes. Você pode especificar qualquer número inteiro ou decimal (0,5, 1, 1,5, 2... ) A fórmula para criar limites de valores discrepantes é: média/mediana ± (número_desvios_padrão * desvio padrão) Observação O desvio padrão é uma medida da dispersão de um conjunto de dados. Ou seja, o quanto os valores estão dispersos. O cálculo de valores discrepantes usa desvio padrão da população. Exemplo de limites de valores discrepantesdistance = 2 estabelece, para coluna_numérica como um todo, ou para cada grupo de colunas-chave:
Qualquer valor acima do limite superior ou abaixo do limite inferior será incluído como valor discrepante nos resultados de saída. Observação Para o mesmo conjunto de dados, à medida que o valor de número_desvios_padrão é aumentado, diminui potencialmente o número de valores discrepantes retornados. |
method = mean | median opcional |
O método para calcular o ponto central dos valores em coluna_numérica (a coluna de valores discrepantes).
O ponto central é calculado para:
O ponto central é usado posteriormente para calcular o desvio padrão de cada grupo ou da coluna numérica como um todo. Se method for omitido, o valor padrão de média será usado. Dica Se os dados onde você está procurando valores discrepantes estiverem consideravelmente distorcidos, o uso da mediana poderá gerar resultados mais representativos da maior parte dos dados. |
Retorna
Dataframe do HCL.
Exemplos
Identificar valores de transação anormais
Você quer identificar valores de transação anormais em todo o dataframe de contas a receber.
Você decide definir os limites de valores discrepantes como 3 vezes o desvio padrão da coluna Amount. O teste retorna 16 valores discrepantes no dataframe de 772 linhas.
outliers_ar = accounts_receivable.outliers(keys = None, on = "Amount", distance = 3, method = "mean")
Você repete o teste, mas aumenta o múltiplo de desvio padrão para 3,5. Agora, o teste retorna apenas 6 valores discrepantes porque os limites dos valores discrepantes estão mais afastados do ponto central dos valores na coluna Amount.
outliers_ar = accounts_receivable.outliers(keys = None, on = "Amount", distance = 3.5, method = "mean")
Identificar valores de transação anormais para cada cliente
Para cada cliente em um dataframe de contas a receber, você quer identificar todos os valores de transação anormais.
Você decide definir os limites de valores discrepantes como 3 vezes o desvio padrão do grupo de transações de cada cliente.
outliers_customer_ar = accounts_receivable.outliers(keys = ["CustNum"], on = "Amount", distance = 3, method = "mean")
O teste retorna 7 valores discrepantes. A média e o desvio padrão de cada grupo de transações de clientes são relatados:
group no | CustNum | Valor | mean | stdev | distance |
---|---|---|---|---|---|
0 | 65003 | 4.954,64 | 833,83 | 1015,58 | 3 |
1 | 262001 | 3.567,34 | 438,81 | 772,44 | 3 |
1 | 262001 | (2.044,82) | 438,81 | 772,44 | 3 |
2 | 376005 | (931,55) | 484,57 | 411,18 | 3 |
3 | 501657 | 5.549,19 | 441,14 | 1332,80 | 3 |
4 | 811002 | 3.409,82 | 672,10 | 634,20 | 3 |
5 | 925007 | 3.393,87 | 906,16 | 736,48 | 3 |
Como os valores discrepantes são identificados para o cliente 262001
O cliente 262001 tem 101 transações no dataframe de contas a receber, das quais duas são relatadas como valores discrepantes porque excedem os limites de valores discrepantes desse cliente:
Valor discrepante | Limite inferior | Limite superior | Valor discrepante |
---|---|---|---|
(2.044,82) | (1.878,51) | 2.756,13 | 3.567,34 |
Como os limites de valores discrepantes são calculados para o cliente 262001
Os limites de valores discrepantes são a média de todas as transações 262001 do cliente, mais ou menos o múltiplo de desvio padrão das transações especificado:
média de todas as transações do cliente 262001 | 438,81 |
O múltiplo de desvio padrão especificado | 3 |
O desvio padrão das transações | 772,44 |
438,81 ± (3 * 772,44) = 438,81 ± 2.317,32 = (1.878,51) (limite inferior) = 2.756,13 (limite superior) |
Usar mediana para identificar valores de transação anormais para cada cliente
Use mediana, em vez de média, para executar o mesmo teste de valor discrepante do exemplo acima.
outliers_customer_ar_median = accounts_receivable.outliers(keys = ["CustNum"], on = "Amount", distance = 3, method = "median")
O teste retorna 10 valores discrepantes, em vez dos 7 retornados no teste anterior. Dependendo da natureza dos dados, mediana e média podem retornar resultados diferentes:
group no | CustNum | Valor | mediana | stdev | distance |
---|---|---|---|---|---|
0 | 65003 | 4.954,64 | 663,68 | 1015,58 | 3 |
1 | 262001 | 3.567,34 | 450,67 | 772,44 | 3 |
1 | 262001 | (2.044,82) | 450,67 | 772,44 | 3 |
2 | 376005 | (931,55) | 517,16 | 411,18 | 3 |
3 | 501657 | 4.426,14 | 146,80 | 1332,80 | 3 |
3 | 501657 | 5.549,19 | 146,80 | 1332,80 | 3 |
4 | 811002 | 3.409,82 | 624,53 | 634,20 | 3 |
5 | 925007 | 2.972,78 | 717,88 | 736,48 | 3 |
5 | 925007 | 3.030,71 | 717,88 | 736,48 | 3 |
5 | 925007 | 3.393,87 | 717,88 | 736,48 | 3 |
Como os limites de valores discrepantes são calculados para cada cliente
Os limites de valores discrepantes são a mediana das transações de cada cliente, mais ou menos o múltiplo de desvio padrão das transações especificado.
Por exemplo, para o cliente 262001: 450,67 ± (3 * 772,44)
Observações
Todas as colunas do dataframe de entrada são incluídas automaticamente no dataframe de saída. As colunas não envolvidas diretamente no cálculo de valores discrepantes são posicionadas mais à direita no dataframe de saída.