Estratégias de aumento de dados para previsão de séries temporais

13

Estou pensando em duas estratégias para fazer "aumento de dados" na previsão de séries temporais.

Primeiro, um pouco de fundo. Um preditor para prever o próximo passo de uma série temporal é uma função que normalmente depende de duas coisas, os estados passados ​​da série temporal, mas também os estados passados ​​do preditor:P{Ai}

P({Ait1},PSt1)

Se quisermos ajustar / treinar nosso sistema para obter um bom , precisaremos de dados suficientes. Às vezes, os dados disponíveis não são suficientes, por isso consideramos fazer o aumento de dados.P

Primeira abordagem

Suponha que tenhamos a série temporal , com . E suponha também que tenhamos que atenda à seguinte condição: .{Ai}1inϵ0<ϵ<|Ai+1Ai|i{1,,n}

Podemos construir uma nova série temporal , em que é uma realização da distribuição .{Bi=Ai+ri}riN(0,ϵ2)

Então, em vez de minimizar a função de perda apenas sobre , fazemos isso também sobre . Portanto, se o processo de otimização executar etapas, precisamos "inicializar" o preditor vezes e calcularemos aproximadamente estados internos do preditor.{Ai}{Bi}m2m2m(n1)

Segunda abordagem

Calculamos como antes, mas não atualizar o estado interno do preditor usando , mas . Como usamos as duas séries apenas no momento do cálculo da função de perda, calcularemos aproximadamente estados internos do preditor.{Bi}{Bi}{Ai}m(n1)

Obviamente, há menos trabalho computacional aqui (embora o algoritmo seja um pouco mais feio), mas isso não importa por enquanto.

A duvida

O problema é: do ponto de vista estatístico, qual é a "melhor" opção? E porque?

Minha intuição me diz que a primeira é melhor, porque ajuda a "regularizar" os pesos relacionados ao estado interno, enquanto a segunda ajuda apenas a regularizar os pesos relacionados ao passado da série temporal observada.


Extra:

  • Alguma outra idéia para aumentar os dados para a previsão de séries temporais?
  • Como ponderar os dados sintéticos no conjunto de treinamento?
castarco
fonte

Respostas:

6

Alguma outra idéia para aumentar os dados para a previsão de séries temporais?

Atualmente, estou pensando no mesmo problema. Encontrei o artigo "Aumento de dados para classificação de séries temporais usando redes neurais convolucionais", de Le Guennec et al. que não cobre as previsões no entanto. Ainda os métodos de aumento mencionados lá parecem promissores. Os autores comunicam 2 métodos:

Corte de janela (WS)

Um primeiro método inspirado na comunidade de visão computacional [8,10] consiste em extrair fatias de séries temporais e realizar classificação no nível de fatia. Este método foi introduzido para séries temporais em [6]. No treinamento, cada fatia extraída de uma série temporal da classe y recebe a mesma classe e um classificador é aprendido usando as fatias. O tamanho da fatia é um parâmetro desse método. No tempo do teste, cada fatia de uma série temporal do teste é classificada usando o classificador aprendido e uma votação majoritária é realizada para decidir um rótulo previsto. Este método é chamado de janela cortada (WS) a seguir.

Entortamento de janela (WW)

A última técnica de aumento de dados que usamos é mais específica para séries temporais. Consiste em distorcer uma fatia selecionada aleatoriamente de uma série temporal, acelerando-a para cima ou para baixo, conforme mostrado na Fig. 2. O tamanho da fatia original é um parâmetro desse método. A Fig. 2 mostra uma série temporal do conjunto de dados "ECG200" e os dados transformados correspondentes. Observe que esse método gera séries temporais de entrada de diferentes comprimentos. Para lidar com esse problema, executamos o corte de janelas em séries temporais transformadas para que todos tenham o mesmo comprimento. Neste artigo, consideramos apenas proporções de distorção iguais a 0.5ou 2, mas outras proporções podem ser usadas e a proporção ideal pode até ser ajustada através da validação cruzada no conjunto de treinamento. A seguir, esse método será chamado de distorção de janela (WW).

Fig. 2 do papel

Os autores mantiveram 90% da série inalterada (ou seja, o WS foi definido como uma fatia de 90% e para WW 10% da série foi distorcida). Os métodos são relatados para reduzir o erro de classificação em vários tipos de dados de séries (temporais), exceto nas representações 1D dos contornos da imagem. Os autores retiraram seus dados daqui: http://timeseriesclassification.com

Como ponderar os dados sintéticos no conjunto de treinamento?

No aumento da imagem, como não se espera que o aumento mude a classe de uma imagem, é muito comum ponderá-la como qualquer dado real. A previsão de séries temporais (e até a classificação de séries temporais) pode ser diferente:

  1. Uma série temporal não é facilmente percebida como um objeto contíguo para os seres humanos; portanto, dependendo de quanto você a adultera, ainda é da mesma classe? Se você apenas fatiar e distorcer um pouco e as classes forem visualmente distintas, isso poderá não representar um problema para as tarefas de classificação
  2. Para prever, eu argumentaria que

    2.1 O WS ainda é um bom método. Não importa em que parte de 90% da série você olha, você ainda esperaria uma previsão com base nas mesmas regras => peso total.

    2.2 WW: Quanto mais próximo isso acontecer do final da série, mais cauteloso eu seria. Intuitivamente, eu criaria um fator de peso deslizando entre 0 (distorção no final) e 1 (distorção no início), assumindo que as características mais recentes da curva são as mais relevantes.

ascripter
fonte
6

Alguma outra idéia para aumentar os dados para a previsão de séries temporais?

Outra resposta com uma abordagem diferente, baseada em "Aumento de conjunto de dados no espaço de recursos" de DeVries e Taylor.

Neste trabalho, demonstramos que a extrapolação entre amostras no espaço de recursos pode ser usada para aumentar os conjuntos de dados e melhorar o desempenho dos algoritmos de aprendizado supervisionado. O principal benefício de nossa abordagem é que ela é independente de domínio , não requer conhecimento especializado e, portanto, pode ser aplicada a muitos tipos diferentes de problemas.

Parece promissor para mim. Em princípio, você pode usar qualquer codificador automático para criar representações no espaço de recursos. Esses recursos podem ser interpolados ou extrapolados.

A figura abaixo mostra como exemplo de interpolação de dois vetores espaciais de recurso e (esteja ciente de que resultados mais positivos são relatados para a extrapolação de dois vetores, consulte o documento para obter detalhes). O vetor aumentado resultante é então decodificado de volta ao espaço de entrada e alimentado na rede para treinamento.CjCkC

O artigo aborda novamente apenas a classificação de sequência. Mas, novamente, na IMO, os princípios são os mesmos para a análise de regressão. Você obtém novos dados presumivelmente da mesma distribuição que seus dados reais, é isso que você deseja.

arquitetura de aumento de AE

Se elaborarmos esse princípio de geração de dados por uma rede neural, acabaremos com as Redes Adversárias Generativas (GAN) . Eles poderiam ser usados ​​de maneira semelhante para gerar dados aumentados, que provavelmente serão a maneira mais sofisticada e avançada de fazer isso.

ascripter
fonte
4

Eu recentemente implementei outra abordagem inspirada neste artigo de Bergmeir, Hyndman e Benitez.

A idéia é pegar uma série temporal e primeiro aplicar uma transformação como a transformação Box Cox ou Yeo-johnson (que resolve alguns problemas com a Box Cox) para estabilizar a variação da série e aplicar uma decomposição STL na série transformada. para séries sazonais ou uma decomposição menor para obter os resíduos da série. Pegar esses resíduos e inicializá-los com um bloco de inicialização em bloco móvel para gerar séries adicionais. Essas séries adicionais têm a tendência inicial e a sazonalidade das séries iniciais adicionadas aos resíduos de inicialização antes de finalmente inverter a transformação de potência aplicada na primeira etapa.BB

Dessa maneira, quantas séries temporais adicionais forem necessárias, podem ser geradas, representando a série temporal inicial muito bem. Aqui está um exemplo do aplicativo em alguns dados reais para gerar séries temporais semelhantes adicionais:

Série aumentada

Aqui o aumento é mostrado usando uma transformação Yeo-Johnson e não Box Cox, conforme sugerido no artigo original.

Aesir
fonte