Modelos de Média Móvel Integrada Autoregressiva (p, d, q) Modelos para Análise de Séries Temporais No conjunto anterior de artigos (Partes 1. 2 e 3) entramos em detalhes significativos sobre AR (p), MA (q) e ARMA ( p, q) modelos de séries temporais lineares. Usamos esses modelos para gerar conjuntos de dados simulados, modelos ajustados para recuperar parâmetros e, em seguida, aplicamos esses modelos a dados de ações financeiras. Neste artigo vamos discutir uma extensão do modelo ARMA, ou seja, o modelo de Média Móvel Integrada Autoregressiva, ou modelo ARIMA (p, d, q). Veremos que é necessário considerar o modelo ARIMA quando temos séries não estacionárias. Tais séries ocorrem na presença de tendências estocásticas. Recapitulação Rápida e Próximos Passos Até o momento, consideramos os seguintes modelos (os links levarão você aos artigos apropriados): Desenvolvemos continuamente nossa compreensão de séries temporais com conceitos como correlação serial, estacionariedade, linearidade, resíduos, correlogramas, simulação, ajuste, sazonalidade, heterocedasticidade condicional e teste de hipóteses. Até o momento, não realizamos nenhuma previsão ou previsão de nossos modelos e, portanto, não tivemos nenhum mecanismo para produzir um sistema de negociação ou uma curva de capital. Uma vez que tenhamos estudado ARIMA (neste artigo), ARCH e GARCH (nos próximos artigos), estaremos em condições de construir uma estratégia básica de negociação de longo prazo baseada na previsão de retornos de índices do mercado de ações. Apesar do fato de eu ter entrado em muitos detalhes sobre modelos que sabemos que no final não terão um ótimo desempenho (AR, MA, ARMA), agora estamos bem versados no processo de modelagem de séries temporais. Isso significa que, quando chegarmos a estudar modelos mais recentes (e até mesmo os que estão atualmente na literatura de pesquisa), teremos uma base de conhecimento significativa sobre a qual desenhar, a fim de avaliar efetivamente esses modelos, em vez de tratá-los como uma chave de turnkey. prescrição ou caixa preta. Mais importante, nos dará confiança para ampliá-las e modificá-las por conta própria e entender o que estamos fazendo quando fazemos isso. Gostaria de agradecer por você ter sido paciente até agora, pois pode parecer que esses artigos estão longe de ser verdade. a ação real da negociação real. No entanto, a verdadeira pesquisa de negociação quantitativa é cuidadosa, medida e leva tempo significativo para acertar. Não há solução rápida ou esquema rico em negociação quântica. Estamos quase prontos para considerar nosso primeiro modelo de negociação, que será uma mistura de ARIMA e GARCH, então é imperativo que passemos algum tempo compreendendo bem o modelo ARIMA. Uma vez que construímos nosso primeiro modelo comercial, vamos considerar mais modelos avançados, como processos de memória longa, modelos de espaço de estado (por exemplo, o Filtro de Kalman) e modelos de Vetores Autoregressivos (VAR), que nos levarão a outras estratégias de negociação mais sofisticadas. Média Móvel Integrada Autoregressiva (ARIMA) Os modelos de ordem p, d, q modelos ARIMA são usados porque eles podem reduzir uma série não estacionária para uma série estacionária usando uma seqüência de etapas de diferenciação. Podemos nos lembrar do artigo sobre ruído branco e passeios aleatórios que se aplicarmos o operador diferença a uma série aleatória de caminhada (uma série não estacionária) ficamos com ruído branco (uma série estacionária): begin nabla xt xt - x wt end ARIMA essencialmente executa esta função, mas faz isso repetidamente, d vezes, para reduzir uma série não estacionária a uma estacionária. Para lidar com outras formas de não estacionariedade além das tendências estocásticas, modelos adicionais podem ser usados. Efeitos de sazonalidade (como aqueles que ocorrem nos preços das commodities) podem ser combatidos com o modelo ARIMA sazonal (SARIMA), no entanto, não discutiremos muito SARIMA nesta série. Os efeitos heterocedásticos condicionais (como com o agrupamento de volatilidade em índices de ações) podem ser resolvidos com ARCH / GARCH. Neste artigo, consideraremos séries não estacionárias com tendências estocásticas e modelos ARIMA adequados a essas séries. Também vamos finalmente produzir previsões para as nossas séries financeiras. Definições Antes de definir os processos ARIMA, precisamos discutir o conceito de uma série integrada: Série Integrada de Ordem d Uma série temporal é integrada de ordem d. Eu (d), se: começar nablad xt wt fim Ou seja, se a diferença d série d vezes recebemos uma série discreta de ruído branco. Alternativamente, usando o operador Backward Shift uma condição equivalente é: Agora que definimos uma série integrada, podemos definir o próprio processo ARIMA: Modelo médio móvel autorregressivo integrado de ordem p, d, q Uma série temporal é um modelo médio móvel integrado autorregressivo da ordem p, d, q. ARIMA (p, d, q). se nablad xt é uma média móvel autoregressiva de ordem p, q, ARMA (p, q). Ou seja, se a série for diferenciada d vezes e seguir um processo ARMA (p, q), então é uma série ARIMA (p, d, q). Se usarmos a notação polinomial da Parte 1 e Parte 2 da série ARMA, então um processo ARIMA (p, d, q) pode ser escrito em termos do Operador Backward Shift. : Onde wt é uma série discreta de ruído branco. Há alguns pontos a serem observados sobre essas definições. Como a caminhada aleatória é dada por xt x wt, pode-se ver que I (1) é outra representação, uma vez que nabla1 xt wt. Se suspeitarmos de uma tendência não linear, poderemos usar a diferenciação repetida (isto é, d gt 1) para reduzir uma série ao ruído branco estacionário. Em R, podemos usar o comando diff com parâmetros adicionais, por ex. diff (x, d3) para realizar diferenças repetidas. Simulação, Correlograma e Ajuste de Modelo Como já utilizamos o comando arima. sim para simular um processo ARMA (p, q), o procedimento a seguir será semelhante ao realizado na Parte 3 da série ARMA. A principal diferença é que agora definiremos d1, ou seja, produziremos uma série temporal não estacionária com um componente de tendência estocástica. Como antes vamos ajustar um modelo ARIMA aos nossos dados simulados, tentar recuperar os parâmetros, criar intervalos de confiança para estes parâmetros, produzir um correlograma dos resíduos do modelo ajustado e finalmente realizar um teste de Ljung-Box para determinar se temos um bom ajuste. Vamos simular um modelo ARIMA (1,1,1), com o coeficiente autoregressivo alfa0,6 e o coeficiente de média móvel beta-0,5. Aqui está o código R para simular e plotar uma série: Agora que temos nossa série simulada, vamos tentar encaixar um modelo ARIMA (1,1,1) nele. Como sabemos a ordem, simplesmente a especificaremos no ajuste: Os intervalos de confiança são calculados como: As estimativas dos dois parâmetros caem dentro dos intervalos de confiança e estão próximas dos valores reais dos parâmetros da série ARIMA simulada. Assim, não devemos nos surpreender ao ver os resíduos parecendo uma realização de ruído branco discreto: Finalmente, podemos executar um teste Ljung-Box para fornecer evidências estatísticas de um bom ajuste: Podemos ver que o valor p é significativamente maior do que 0,05 e, como tal, podemos afirmar que existe uma forte evidência de que o ruído branco discreto é um bom ajuste aos resíduos. Portanto, o modelo ARIMA (1,1,1) é um bom ajuste, como esperado. Dados financeiros e previsão Nesta seção, vamos ajustar os modelos ARIMA à Amazon, Inc. (AMZN) e ao SampP500 US Equity Index (GPSC, no Yahoo Finance). Vamos fazer uso da biblioteca de previsão, escrita por Rob J Hyndman. Vamos lá e instalar a biblioteca em R: Agora podemos usar a quantmod para baixar a série de preços diários da Amazon desde o início de 2013. Como já teremos tirado as diferenças de primeira ordem da série, o ajuste do ARIMA será feito em breve não requer d gt 0 para o componente integrado: Como na Parte 3 da série ARMA, vamos passar pelas combinações de p, d e q para encontrar o modelo ideal ARIMA (p, d, q). Por ótimo queremos dizer a combinação de ordem que minimiza o Critério de Informação de Akaike (AIC): Podemos ver que uma ordem de p4, d0, q4 foi selecionada. Notavelmente d0, como já tomamos as diferenças de primeira ordem acima: Se traçamos o correlograma dos resíduos podemos ver se temos evidências para uma série discreta de ruído branco: Existem dois picos significativos, nomeadamente em k15 e k21, embora devêssemos espere ver picos estatisticamente significativos simplesmente devido à variação da amostragem 5 do tempo. Vamos realizar um teste de Ljung-Box (veja o artigo anterior) e ver se temos evidências de um bom ajuste: Como podemos ver o valor de p é maior que 0,05 e então temos evidências de um bom ajuste no nível de 95. Agora podemos usar o comando forecast da biblioteca de previsão para prever 25 dias à frente da série de devoluções da Amazon: Podemos ver as previsões pontuais para os próximos 25 dias com 95 bandas de erro (azul escuro) e 99 (azul claro) . Estaremos usando essas previsões em nossa primeira estratégia de negociação de séries temporais quando chegarmos a combinar ARIMA e GARCH. Vamos realizar o mesmo procedimento para o SampP500. Primeiramente nós obtemos os dados de quantmod e os convertemos em um fluxo diário de retornos de log: Ajustamos um modelo ARIMA passando os valores de p, d e q: O AIC nos diz que o melhor modelo é o ARIMA (2,0, 1) modelo. Observe mais uma vez que d0, como já tomamos as diferenças de primeira ordem da série: Podemos plotar os resíduos do modelo ajustado para ver se temos evidência de ruído branco discreto: O correlograma parece promissor, então o próximo passo é executar o teste de Ljung-Box e confirmamos que temos um bom ajuste de modelo: Como o valor de p é maior que 0,05, temos evidências de um bom ajuste de modelo. Por que é que no artigo anterior nosso teste de Ljung-Box para o SampP500 mostrou que o ARMA (3,3) era um ajuste fraco para os retornos de log diários? Observe que eu deliberadamente truncado os dados do SampP500 para começar a partir de 2013 neste artigo , que convenientemente exclui os períodos voláteis em torno de 2007-2008. Por isso, excluímos uma grande parte do SampP500 onde tivemos uma aglomeração excessiva de volatilidade. Isso afeta a correlação serial da série e, portanto, tem o efeito de fazer a série parecer mais estacionária do que foi no passado. Este é um ponto muito importante. Ao analisar séries temporais, precisamos ser extremamente cuidadosos com as séries condicionalmente heteroscedásticas, como os índices do mercado de ações. No financiamento quantitativo, a tentativa de determinar períodos de volatilidade diferente é conhecida como detecção de regime. É uma das tarefas mais difíceis de alcançar. Bem, discuta este ponto detalhadamente no próximo artigo quando considerarmos os modelos ARCH e GARCH. Vamos agora plotar uma previsão para os próximos 25 dias dos retornos diários de log do SampP500: Agora que temos a capacidade de ajustar e prever modelos como o ARIMA, estamos muito perto de poder criar indicadores de estratégia para negociação. Próximas etapas No próximo artigo, vamos dar uma olhada no modelo Generalized Autegressive Conditional Heteroscedasticity (GARCH) e utilizá-lo para explicar mais sobre a correlação serial em certas séries de ações e índices de ações. Depois de discutirmos o GARCH, estaremos em condições de combiná-lo com o modelo ARIMA e criar indicadores de sinal e, assim, uma estratégia básica de negociação quantitativa. Clique abaixo para saber mais sobre. A informação contida neste site é a opinião dos autores individuais com base em sua observação pessoal, pesquisa e anos de experiência. A editora e seus autores não são consultores de investimentos registrados, advogados, CPAs ou outros profissionais de serviços financeiros e não prestam serviços jurídicos, fiscais, contábeis, de investimento ou outros serviços profissionais. As informações oferecidas por este site são apenas de educação geral. Como a situação factual de cada indivíduo é diferente, o leitor deve procurar seu próprio conselheiro pessoal. Nem o autor nem o editor assume qualquer responsabilidade por quaisquer erros ou omissões e não terá responsabilidade nem responsabilidade para com qualquer pessoa ou entidade com relação a danos causados ou supostamente causados direta ou indiretamente pelas informações contidas neste site. Use por sua conta e risco. Além disso, este site pode receber uma compensação financeira das empresas mencionadas através de publicidade, programas afiliados ou outros. As tarifas e ofertas dos anunciantes mostradas neste site são alteradas com frequência, às vezes sem aviso prévio. Embora nos esforcemos para manter informações oportunas e precisas, os detalhes da oferta podem estar desatualizados. Os visitantes devem, portanto, verificar os termos de tais ofertas antes de participar deles. O autor e seu editor se isentam da responsabilidade de atualizar informações e se isentam de responsabilidade por conteúdo, produtos e serviços de terceiros, inclusive quando acessados por meio de hiperlinks e / ou anúncios neste site. Prevenção - Média Móvel Integrada Autoregressiva (ARIMA) Neste artigo implementa Média Móvel Integrada Autoregressiva (ARIMA) para produzir previsões com base nos dados históricos fornecidos pelo usuário. A demanda por um produto específico aumentará este ano? Posso prever as vendas de meu produto para a época de Natal, para que eu possa planejar efetivamente meu inventário? Modelos de previsão estão aptos a responder a essas questões. Dados os dados anteriores, esses modelos examinam tendências ocultas e sazonalidade para prever tendências futuras. Experimente o Aprendizado de Máquina do Azure gratuitamente Não é necessária assinatura de cartão de crédito ou do Azure. Começar agora Este serviço Web pode ser consumido pelos usuários potencialmente por meio de um aplicativo móvel, por meio de um site ou até mesmo em um computador local, por exemplo. Mas a finalidade do serviço da Web também é servir como um exemplo de como o Azure Machine Learning pode ser usado para criar serviços da Web sobre o código R. Com apenas algumas linhas de código R e cliques de um botão no Azure Machine Learning Studio, uma experiência pode ser criada com o código R e publicada como um serviço da Web. O serviço da Web pode, então, ser publicado no Azure Marketplace e consumido por usuários e dispositivos em todo o mundo, sem nenhuma configuração de infraestrutura pelo autor do serviço da Web. Consumo de serviço da web Este serviço aceita 4 argumentos e calcula as previsões do ARIMA. Os argumentos de entrada são: Frequência - Indica a frequência dos dados brutos (diário / semanal / mensal / trimestral / anual). Horizon - Cronograma de previsão futura. Data - Adicione os novos dados da série temporal por hora. Valor - Adicione os novos valores de dados da série temporal. A saída do serviço é os valores de previsão calculados. A entrada da amostra poderia ser: Frequência - 12 Horizonte - 12 Data - 15/1/20122/15/20123/15/20124/15/20125/15/20126/15/20127/15/20128/15/20129/15/201210 / 15/201211/15/201212/15/2012 1/15/20132/15/20133/15/20134/15/20135/15/20136/15/20137/15/20138/15/20139/15/201310 / 15/201311/15/201312/15/2013 1/15/20142/15/20143/15/20144/15/20145/15/20146/15/20147/15/20148/15/20149/15/2014 Valor - 3.4793.683.8323.9413.7973.5863.5083.7313.9153.8443.6343.5493.5573.7853.7823.6013.5443.5563.653.7093.6823.511 3.4293.513.5233.5253.6263.6953.7113.7113.6933.5713.509 Esse serviço, como hospedado no Azure Marketplace, é um serviço OData que pode ser chamado através dos métodos POST ou GET. Existem várias maneiras de consumir o serviço de maneira automatizada (um aplicativo de exemplo está aqui). Iniciando o código C para consumo de serviços da Web: Criação de serviço da Web Este serviço da Web foi criado usando o Aprendizado de Máquina do Azure. Para uma avaliação gratuita, além de vídeos introdutórios sobre como criar experiências e publicar serviços da web. por favor veja azure / ml. Abaixo está uma captura de tela da experiência que criou o serviço da web e o código de exemplo de cada um dos módulos da experiência. Na Aprendizagem de Máquina do Azure, foi criada uma nova experiência em branco. Dados de entrada de amostra foram carregados com um esquema de dados predefinido. Vinculado ao esquema de dados está um módulo Execute R Script, que gera o modelo de previsão ARIMA usando as funções auto. arima e forecast do R. Fluxo do experimento: Limitações Este é um exemplo muito simples para a previsão do ARIMA. Como pode ser visto no código de exemplo acima, nenhum erro de captura é implementado, e o serviço assume que todas as variáveis são valores contínuos / positivos e a freqüência deve ser um inteiro maior que 1. O comprimento dos vetores de data e valor deve ser o mesmo. A variável data deve aderir ao formato mm / dd / aaaa. Para perguntas frequentes sobre consumo do serviço da Web ou publicação no mercado, consulte aqui. Modelagem de ARIMA O modelo ARIMA é uma extensão do modelo ARMA i que se aplica a séries temporais não estacionárias (séries temporais com uma ou mais ). O Assistente de Modelo ARIMA automatiza as etapas de construção do modelo: adivinhando parâmetros iniciais, validação de parâmetros, teste de qualidade de ajuste e diagnóstico de resíduos. Para usar essa funcionalidade, selecione o ícone correspondente na barra de ferramentas (ou o item de menu): Role (selecione) a amostra de dados em sua planilha e selecione a ordem correspondente do modelo de componente autorregressivo (AR), ordem de integração (d), e a ordem do modelo de componente de média móvel. Em seguida, selecione os testes de qualidade de ajuste, o diagnóstico residual e designe um local em sua planilha para imprimir o modelo. Nota: Por padrão, o Assistente de Modelo gera uma estimativa rápida dos valores dos parâmetros dos modelos, mas o usuário pode optar por gerar valores calibrados para os coeficientes dos modelos. Após a conclusão, a função de modelagem ARMA exibe os parâmetros dos modelos selecionados e os testes / cálculos selecionados no local designado de sua planilha. O Assistente ARIMA adiciona comentários do tipo Excel (cabeças de setas vermelhas) às células de rótulo para descrevê-los.
No comments:
Post a Comment