Previsão de câmbio com rede neural - atraso na previsão

7

Eu tenho uma pergunta sobre o uso da rede neural. Atualmente, estou trabalhando com R ( pacote neuralnet ) e estou enfrentando o seguinte problema. Meu conjunto de testes e validação está sempre atrasado em relação aos dados históricos. Existe uma maneira de corrigir o resultado? Talvez algo esteja errado na minha análise

  1. Eu uso o retorno diário de log r (t) = ln (s (t) / s (t-1))
  2. Normalizo meus dados com a função sigmóide (sigma e mu calculados em todo o conjunto)
  3. Treino minhas redes neurais com 10 datas e a saída é o valor normalizado que segue essas 10 datas.

Tentei adicionar a tendência, mas não houve melhora, observei 1-2 dias de atraso. Meu processo parece bom, o que você acha disso?

ALFRAM
fonte

Respostas:

2

Algumas maneiras de melhorar seu design:

  1. Considere uma normalização diferente: a função sigmóide atenua grandes movimentos. Provavelmente, são precisamente esses grandes movimentos não lineares que o atraíram a usar redes neurais em primeiro lugar. Por que removê-los? Um simples whiteningdos dados pode ser melhor
  2. Conforme apontado por Nima, seu modelo pode prever apenas o que é conhecido dos dados que você fornece. Se você apenas ajustar dados usando preços históricos, isso fornecerá apenas o que é previsível a partir deles. Coisas como novos eventos / surpresas de ganhos / feriados / fluxos de mercado de opções não serão inseridos no seu modelo. Considere adicionar essas séries também.
  3. Muito mais dados históricos. As redes neurais geralmente exigem tamanhos de amostra muito grandes porque estão tentando estimar um espaço de parâmetros muito grande. Embora mais dados nem sempre impliquem mais informações, isso provavelmente ainda ajudará.
  4. Experimente diferentes arquiteturas de rede. O número de camadas / tamanho das camadas / diferentes algoritmos decentes em gradiente / diferentes funções de ativação / desistência etc.
circuito fechado
fonte
0

É provável que seja muito difícil tirar alguma conclusão se você estiver treinando com apenas 10 amostras de entrada. Com mais dados, seu diagnóstico de que o modelo está prevendo valores defasados ​​teria mais plausibilidade. Tal como está, parece bastante provável que o seu modelo esteja apenas dizendo que o último valor observado está muito próximo da correção. Isso não é o mesmo que um modelo de atraso real, mas é uma coisa muito razoável de adivinhar se você não viu dados suficientes.

Ted Dunning
fonte
0

Eu já vi muitos artigos que são basicamente o que você acabou de descrever. não há nada errado com o que você está fazendo, mas há sérias limitações em como isso pode prever o mercado. deixe-me dar um exemplo: suponha que você tenha alguns dados e comece a prever. com cada conjunto de dados, você prevê o próximo ponto de dados. e então você alimenta esse ponto de dados de volta ao sistema como entrada e o faz continuamente ... na maioria das vezes, o sistema continuaria a última tendência e as séries temporais não quebrariam. isso não é previsão, é a continuação da linha ... somente quando o sistema vê a quebra de dados reais, a previsão será interrompida e esse é o atraso que você está falando (se entendi bem sua pergunta). A primeira coisa que você pode fazer para melhorar isso é extrair alguns indicadores de mercado do preço. isso realmente ajudaria

Nima Shayanfar
fonte
Eu acho que essa resposta tem um núcleo de valor, mas provavelmente poderia se beneficiar de um exemplo mais específico e de algumas edições.
Sean Owen