LOESS que permite descontinuidades

14
  • Existe uma técnica de modelagem como LOESS que permite zero, uma ou mais descontinuidades, em que o momento das descontinuidades não é conhecido a priori?
  • Se existe uma técnica, existe uma implementação existente no R?
Jeromy Anglim
fonte
1
descontinuidades em valores x conhecidos ou em valores x desconhecidos? (x conhecido é fácil)
Glen_b -Reinstar Monica
@glen Atualizei a pergunta: estou interessado em situações em que o momento das descontinuidades não é conhecido a priori.
Jeromy Anglim
Esta pode ser uma pergunta discutível / tola, mas você diz "tempo": isso é para uso com séries temporais? Acredito que a maioria das respostas abaixo assume isso ("ponto de mudança, etc"), embora o LOESS possa ser aplicado em situações que não sejam de séries temporais, com descontinuidades. Eu acho que.
Wayne

Respostas:

15

Parece que você deseja executar várias detecções de ponto de mudança, seguidas de suavização independente em cada segmento. (A detecção pode estar online ou não, mas é provável que seu aplicativo não esteja online.) Há muita literatura sobre isso; As pesquisas na Internet são frutíferas.

  • DA Stephens escreveu uma introdução útil à detecção bayesiana de pontos de mudança em 1994 (App. Stat. 43 # 1 pp 159-178: JSTOR ).
  • Mais recentemente, Paul Fearnhead tem feito um bom trabalho (por exemplo, inferência bayesiana exata e eficiente para vários problemas de ponto de mudança , Stat Comput (2006) 16: 203-213: PDF gratuito ).
  • Existe um algoritmo recursivo, baseado em uma bela análise de D Barry e JA Hartigan
    • Modelos de partição de produtos para modelos de ponto de mudança, Ann. Estado. 20: 260-279: JSTOR ;
    • Uma análise bayesiana para problemas de ponto de mudança, JASA 88: 309-319: JSTOR .
  • Uma implementação do algoritmo Barry & Hartigan está documentada em O. Seidou & TBMJ Ourda, Detecção de Múltiplos Pontos de Mudança com Base em Recursão em Regressão Linear Multivariada e Aplicação em Fluxos de Rio, Water Res. Res., 2006: PDF grátis .

Eu não procurei muito por nenhuma implementação de R (eu havia codificado uma no Mathematica há algum tempo), mas gostaria de uma referência se você a encontrar.

whuber
fonte
3
Eu encontrei o pacote bcp R jstatsoft.org/v23/i03/paper que implementa o algoritmo Barry & Hartigan
Jeromy Anglim
@ Jeromy: Obrigado pelo pacote R e por inserir os links para as referências.
whuber
7

faça isso com a regressão de linhas quebradas de koencker, consulte a página 18 desta vinheta

http://cran.r-project.org/web/packages/quantreg/vignettes/rq.pdf

Em resposta ao último comentário de Whuber:

Este estimador é definido assim.

xR , ,x(i)x(i1)i

ei:=yiβix(i)β0 ,

z+=max(z,0)z=max(z,0)

λ 0τ(0,1) ,λ0

min.βRn|τ,λi=1nτei++i=1n(1τ)ei+λi=2n|βiβi1|

τ fornece o quantil desejado (ou seja, no exemplo, ). direciona o número de pontos de interrupção: para grande esse estimador encolhe para nenhum ponto de interrupção (correspondente ao estimador de regressão linear quantil clássico).τ=0.9λλ

Splines de suavização de quantis Roger Koenker, Pin Ng, Stephen Portnoy Biometrika, vol. 81, n. 4 (dezembro de 1994), pp. 673-680

PS: existe um documento de trabalho de acesso aberto com o mesmo nome pelos mesmos, mas não é a mesma coisa.

user603
fonte
Essa é uma ideia interessante: obrigado pela referência. No entanto, os resíduos desse ajuste específico parecem muito ruins, o que me faz pensar em como ele identifica possíveis pontos de mudança.
whuber
whuber: eu não sei o quanto você está familiarizado com a teoria da regressão quantílica. Essas linhas têm uma grande vantagem sobre splines: elas não assumem nenhuma distribuição de erro (isto é, não assumem que os resíduos sejam gaussianos).
user603
@kwak Isso parece interessante. Não assumir que uma distribuição de erro normal seria útil para um dos meus aplicativos.
precisa saber é o seguinte
De fato, o que você obtém dessa estimativa são quantis condicionais reais: em poucas palavras, são para splines / LOESS-regressions o que os boxplots são para o casal (média, sd): uma visão muito mais rica dos seus dados. Eles também mantêm a validade no contexto não gaussiano (como erros assimétricos, ...).
user603
@kwak: Os resíduos estão fortemente correlacionados com a coordenada x. Por exemplo, há longas execuções de resíduos positivos negativos ou pequenos. Se eles têm uma distribuição gaussiana ou não, então, é imaterial (e também irrelevante em qualquer análise exploratória): essa correlação mostra que o ajuste é fraco.
whuber
6

Aqui estão alguns métodos e pacotes R associados para resolver esse problema

A estimativa de throld da wavelet em regressão permite descontentuidades. Você pode usar o pacote wavethresh em R.

Muitos métodos baseados em árvore (não muito longe da idéia de wavelet) são úteis quando você tem discrepâncias. Daí o pacote treethresh, árvore de pacotes!

Na família dos métodos de " máxima verossimilhança local " ... entre outros: Obra de Pozhel e Spokoiny: pesos adaptativos Suavização (aws do pacote) Obra de Catherine Loader: package locfit

Eu acho que qualquer kernel mais suave com largura de banda variando localmente faz sentido, mas eu não conheço o pacote R para isso.

nota: eu realmente não entendo qual é a diferença entre LOESS e regressão ... é a ideia de que os algoritmos do LOESS devem estar "on line"?

Robin Girard
fonte
1
Re LOESS: Talvez minha terminologia não esteja certa. Por LOESS, estou me referindo a modelos que prevêem Y de X usando alguma forma de ajuste de curva localizada. por exemplo, como visto na maioria destes gráficos: google.com/…
Jeromy Anglim
2

Deve ser possível codificar uma solução em R usando a função de regressão não linear nls, b splines (a função bs no pacote spline, por exemplo) e a função ifelse.

Andrew Robinson
fonte