Estou lidando com dados lineares com valores discrepantes, alguns dos quais estão a mais de 5 desvios-padrão da linha de regressão estimada. Estou procurando uma técnica de regressão linear que reduz a influência desses pontos.
Até agora, o que fiz foi estimar a linha de regressão com todos os dados, depois descartar o ponto de dados com resíduos quadrados muito grandes (digamos os 10% superiores) e repetir a regressão sem esses pontos.
Na literatura, existem muitas abordagens possíveis: mínimos quadrados aparados, regressão quantílica, estimadores-m etc. Eu realmente não sei qual abordagem devo tentar, por isso estou procurando sugestões. O importante para mim é que o método escolhido seja rápido, porque a regressão robusta será calculada em cada etapa de uma rotina de otimização. Muito obrigado!
fonte
Respostas:
Se seus dados contiverem um único outlier, eles poderão ser encontrados de maneira confiável, usando a abordagem sugerida (sem as iterações). Uma abordagem formal para isso é
Para encontrar mais de um outlier, por muitos anos, o método principal foi a chamada família de abordagem de estimativa - . Esta é uma família bastante ampla de estimadores que inclui o estimador de Huber , a regressão L1 de Koenker, bem como a abordagem proposta pelo Procastinator em seu comentário à sua pergunta. Os estimadores com convexas funções têm a vantagem de que eles têm sobre a mesma complexidade numérica como uma estimativa de regressão regular. A grande desvantagem é que eles só podem encontrar os valores discrepantes com confiabilidade se:M M ρM M M ρ
Você pode encontrar uma boa implementação das estimativas de regressão ( ) no pacote ( ) . l 1M l1
robustbase
quantreg
R
Se seus dados contiverem mais do que outlier potencialmente também fora do espaço de design, encontrá-los equivale a resolver um problema combinatório (equivalentemente a solução para um estimador com decending / não-convexa função). Mρ⌊np+1⌋ M ρ
Nos últimos 20 anos (e especialmente nos últimos 10), um grande corpo de algoritmos de detecção de outlier rápidos e confiáveis foi projetado para resolver aproximadamente esse problema combinatório. Agora eles são amplamente implementados nos pacotes estatísticos mais populares (R, Matlab, SAS, STATA, ...).
No entanto, a complexidade numérica de encontrar discrepantes com essas abordagens é tipicamente da ordem . A maioria dos algoritmos pode ser usada na prática para valores de no meio da adolescência. Normalmente, esses algoritmos são lineares em (o número de observações); portanto, o número de observações não é um problema. Uma grande vantagem é que a maioria desses algoritmos é embaraçosamente paralela. Mais recentemente, muitas abordagens projetadas especificamente para dados de dimensões mais altas foram propostas.p nO(2p) p n
Como você não especificou na sua pergunta, listarei algumas referências para o caso . Aqui estão alguns artigos que explicam isso em mais detalhes nesta série de artigos de revisão:p < 20p p<20
Um livro de referência recente sobre o problema da identificação discrepante é:
Estes (e muitas outras variações destes) métodos são implementados (entre outros) no pacote.
robustbase
R
fonte
Para regressão simples (x simples), há algo a ser dito para a linha de Theil-Sen em termos de robustez para valores extremos y e pontos influentes, bem como geralmente boa eficiência (no normal) em comparação com LS para a inclinação. O ponto de ruptura da inclinação é de quase 30%; contanto que a interceptação (existe uma variedade de possíveis interceptações que as pessoas usaram) não tenha uma quebra menor, todo o procedimento lida com uma fração considerável de contaminação muito bem.
Sua velocidade pode parecer ruim - a mediana das pistas parece ser mesmo com uma mediana -, mas me lembro que isso pode ser feito mais rapidamente se a velocidade é realmente um problema ( , acredito)(n2) O(n2) O(n) O(nlogn)
Edit: user603 pediu uma vantagem da regressão Theil sobre a regressão L1. A resposta é a outra coisa que mencionei - pontos influentes:
A linha vermelha é o ajuste (da função na embalagem). O verde é um ajuste com uma inclinação de Theil. Basta um único erro de digitação no valor x - como digitar 533 em vez de 53 - e esse tipo de coisa pode acontecer. Portanto, o ajuste não é robusto para um único erro de digitação no espaço x.L1 L1
rq
quantreg
fonte
Você já viu o RANSAC (Wikipedia) ?
Isso deve ser bom para computar um modelo linear razoável, mesmo quando há muitos valores discrepantes e ruídos, pois é construído com base no pressuposto de que apenas parte dos dados realmente pertencerá ao mecanismo.
fonte
Eu achei a regressão de erro penalizado melhor. Você também pode usá-lo iterativamente e reponderar amostras, que não são muito consistentes com a solução. A idéia básica é aumentar seu modelo com erros: onde é o vetor de erro desconhecido. Agora você executa a regressão em . Curiosamente, é claro que você pode usar "laço fundido" para isso quando puder estimar previamente a certeza de suas medições e colocar isso como ponderação em e resolver a nova tarefa ligeiramente diferentel1
Mais informações podem ser encontradas aqui: http://statweb.stanford.edu/~candes/papers/GrossErrorsSmallErrors.pdf
fonte