Quão preciso é o IQR para detectar valores extremos

11

Estou escrevendo um script que analisa os tempos de execução dos processos. Não tenho certeza de sua distribuição, mas quero saber se um processo é executado "muito longo". Até agora, eu tenho usado três desvios padrão dos últimos tempos de execução (n> 30), mas me disseram que isso não fornece nada de útil se os dados não forem normais (o que parece não ser). Encontrei outro teste outlier que afirma:

Encontre o intervalo interquartil, que é IQR = Q3 - Q1, onde Q3 é o terceiro quartil e Q1 é o primeiro quartil. Em seguida, encontre estes dois números:

a) Q1 - 1,5 * IQR b) Q3 + 1,5 * IQR

O ponto é um outlier se <a ou> b

Meus dados tendem a ser 2seg, 3seg, 2seg, 5seg, 300seg, 4seg, .... onde 300seg é obviamente um erro.

Qual método é melhor? O método IQR ou o método de desvio padrão?

chris bedd
fonte
4
Convém verificar a resposta do @ user603 aqui: existe uma variante boxplot para dados distribuídos por poisson para obter informações sobre como ajustar essa regra para dados assimétricos.
gung - Restabelece Monica
3
Este método "IQR" nunca foi destinado a ser aplicado às cegas. Faz parte de um processo de análise exploratória de dados (conforme descrito por Nick Cox em sua resposta) durante o qual você primeiro encontraria uma maneira de reexpressar os dados para torná-los aproximadamente simetricamente distribuídos.
whuber
2
Com base nos seus comentários às respostas, a resposta correta é "nenhum", porque sua preocupação subjacente não é sobre discrepâncias, é sobre o processo.
whuber
Relacionados: discrepantes Detecção usando desvios-padrão é o outro lado da questão
user56reinstatemonica8
Os números são demorados e, portanto, nunca serão simétricos, a menos que você os redimensione de alguma forma.
JP Bennett

Respostas:

14

Realmente existem livros inteiros sobre discrepâncias.

A resposta específica usual é que o desvio padrão é puxado pelos valores discrepantes, portanto, qualquer regra baseada no SD pode ter um desempenho ruim.

As regras de Tukey sobre quartis +/- 1,5 IQR que você cita surgiram do trabalho manual com conjuntos de dados pequenos e de tamanho moderado na década de 1970 e foram projetados para indicar valores nos quais você pode pensar individualmente. Não está claro se eles são transferidos para conjuntos de dados muito maiores, nem se aplicam quando você espera uma distorção considerável.

Uma resposta mais geral é que uma regra outlier é boa se ela sempre toma as decisões corretas, mas como você pode saber?

Este é um território contencioso, mas eu esperaria que um outlier se destacasse em um gráfico como sendo muito diferente dos outros. Mas muitas vezes é (geralmente?) Uma decisão difícil de dizer a diferença entre o que você espera de uma distribuição de cauda pesada e o que é muito selvagem para ser considerado algo que não seja estranho. Às vezes, a transformação faz um estranho parecer muito mais comum.

Além disso, se você usar métodos robustos, poderá se preocupar um pouco menos com precisamente quais valores merecem ser chamados de outliers, mas se preocupar com os outliers em geral.

Nick Cox
fonte
1

Você diz que não tem certeza da distribuição, mas os processos em andamento são fáceis de coletar e avaliar para distribuição. Apenas salve várias vezes e analise-as. Dado o tempo que você postou, você poderá obter muitos em poucas horas.

Sua busca por uma regra para um outlier não precisa ser tão geral. Pode ser específico para sua tarefa. Você é capaz de coletar muitos dados. Colete, examine e decida quando um processo é muito longo. Talvez uma abordagem baseada em IQR funcione, mas você pode usar seu conjunto de dados, ou um ajuste paramétrico, para fazer simulações e verificar se funciona bem. O mesmo vale para SD. Pode ser que os anos 50 sejam muito longos e é tudo o que você precisa.

John
fonte
Estou coletando dados em vários processos. Cada um pode ter distribuições diferentes. Eu só preciso de uma maneira simples de dizer "tempo de execução muito alto" para alertar os técnicos para que analisem melhor as coisas. Pode ser geral, desde que sinalize coisas que devem ser sinalizadas. Se alguns falsos positivos aparecerem, que assim seja. No entanto, os falsos positivos devem ser mantidos no mínimo, pois, se houver muitos, ele derrota o objetivo do script, e eu devo apenas despejar todos os resultados e deixar que os técnicos o façam. O objetivo do script é "coisas estreitas para baixo"
chris Bedd
Você pode avaliar se os processos são iguais ou diferentes. Se eles são realmente muito diferentes, algumas regras gerais tendem a causar um processo específico para acionar o aviso com mais frequência do que o necessário. Esta informação deve realmente estar na sua pergunta.
31513 John
3
Caracterizar esse problema como uma busca de outliers, chris, faz injustiça: você está realmente enfrentando um problema de controle de qualidade . As principais distinções são: (1) você tem um fluxo contínuo de dados em vez de um conjunto de dados estático para analisar e (2) pretende especificar ações periódicas a serem executadas como resultado de cada análise: ou seja, se deve intervir (e tentar melhorar o processo) ou não (e deixar o processo funcionar como está). Entender que essa é a natureza do seu problema mostra que a enorme literatura sobre controle de qualidade é relevante, fornecendo uma rica variedade de soluções.
whuber
+1 em @whuber. Outliers não são relevantes aqui. Nem o tempo médio de execução, nem qualquer percentual dele, está relacionado ao que é "muito longo". A maneira de descobrir o que é "muito longo" pode ser uma pesquisa com usuários, ou uma verificação com os engenheiros, ou apenas um palpite sobre as calças, ou qualquer outra coisa, mas não é uma questão estatística.
Peter Flom - Restabelece Monica