Eu tenho tentado resolver este problema por mais de um ano sem muito progresso. É parte de um projeto de pesquisa que estou realizando, mas ilustrarei com um exemplo de história que criei, porque o domínio real do problema é um pouco confuso (rastreamento ocular).
Você é um avião que rastreia um navio inimigo que viaja pelo oceano e, assim, colecionou uma série de (x, y, tempo) coordenadas do navio. Você sabe que um submarino escondido viaja com o navio para protegê-lo, mas, embora exista uma correlação entre suas posições, o submarino freqüentemente se afasta do navio; portanto, embora esteja próximo, ele também pode estar do outro lado do navio. mundo ocasionalmente. Você deseja prever o caminho do submarino, mas infelizmente ele está oculto.
Porém, um mês em abril, você percebe que o submarino esquece de se esconder, de modo que você tem uma série de coordenadas para o submarino e o navio ao longo de 1.000 viagens. Usando esses dados, você gostaria de construir um modelo para prever o caminho do submarino oculto, considerando apenas os movimentos da nave. A linha de base ingênua seria dizer "posição do submarino palpite =" posição atual do navio ", mas a partir dos dados de abril em que o submarino estava visível, você observa que há uma tendência do submarino estar um pouco à frente do navio, então" posição do submarino palpite = posição do navio em 1 minuto "é uma estimativa ainda melhor. Além disso, os dados de abril mostram que quando o navio faz uma pausa na água por um período prolongado, é provável que o submarino esteja longe patrulhando as águas costeiras. Existem outros padrões claro.
Como você construiu esse modelo, dados os dados de abril como dados de treinamento, para prever o caminho do submarino? Minha solução atual é uma regressão linear ad-hoc, na qual os fatores são "tempo de viagem", "coordenada x do navio", "o navio ficou inativo por 1 dia" etc. etc. e depois R determinou os pesos e fez uma validação cruzada . Mas eu realmente adoraria uma maneira de gerar esses fatores automaticamente a partir dos dados de abril. Além disso, um modelo que usa seqüência ou tempo seria bom, já que a regressão linear não faz e acho relevante.
Obrigado por ler tudo isso e eu ficaria feliz em esclarecer qualquer coisa.
fonte
Respostas:
Aqui está uma abordagem que não usa nenhuma informação "contextual", isto é, não leva em conta o fato de "um submarino está seguindo um navio". Por outro lado, é fácil começar com:
Denotar por
Minha sugestão é que você preveja cada uma delas separadamente (você pode amarrá-las mais tarde).
Então
Outra estratégia empregada pelas pessoas (que acho que funcionará para você) é que elas dividam suas séries em
No caso de um submarino e um navio, a parte polinomial provavelmente seria constante e a parte cíclica uma soma de senos e cossenos (das ondas do oceano ...). Pode não ser o caso do rastreamento ocular.
Existem ferramentas que podem descobrir isso para você. Aqui estão dois que eu conheço:
Aqui está uma captura de tela da ferramenta SQL Server (a parte pontilhada é a previsão):
Um algoritmo que eles usam é chamado ARIMA. Querendo aprender como funciona, eu pesquisei no Google e encontrei este livro: Primeiro curso sobre séries temporais (e não se preocupe, você não precisa ter o SAS para acompanhar. Não.). É muito legível.
Você não precisa saber como o ARIMA funciona para usar essas ferramentas, mas acho que é sempre mais fácil se você tiver contexto, pois existem "parâmetros de modelo" a serem definidos etc.
fonte