Sunday 21 May 2017

Autoregressive Moving Average Code


Análise de séries temporais tsa statsmodels. tsa contém classes de modelos e funções que são úteis para a análise de séries temporais. Atualmente, inclui modelos autoregressivos univariados (AR), modelos vetoriais autorregressivos (VAR) e modelos de média móvel autorregressiva univariada (ARMA). Inclui também estatística descritiva para séries temporais, por exemplo autocorrelação, função de autocorrelação parcial e periodograma, bem como as propriedades teóricas correspondentes de ARMA ou processos relacionados. Ele também inclui métodos para trabalhar com polinômios de atraso médio auto-regressivos e móveis. Além disso, testes estatísticos relacionados e algumas funções auxiliares úteis estão disponíveis. A estimativa é feita por exata ou condicional Máxima Verossimilhança ou por mínimos quadrados condicionais, usando Filtro Kalman ou filtros diretos. Atualmente, funções e classes devem ser importadas do módulo correspondente, mas as classes principais estarão disponíveis no namespace statsmodels. tsa. A estrutura do módulo está dentro de statsmodels. tsa é stattools. Propriedades empíricas e testes, acf, pacf, granger-causalidade, adf teste de raiz unitária, teste ljung-box e outros. Armodel Processo autoregressivo univariável, estimativa com probabilidade máxima condicional e exata e arimamodelo condicional de mínimos quadrados. Processo ARMA univariável, estimativa com probabilidade máxima condicional e exata e vetoriais mínimos quadrados condicionais, var. Modelos de estimativa de VAR, análise de resposta a impulsos, decomposição de variância de erros de previsão e ferramentas de visualização de dados. Classes de estimativa para ARMA e outros modelos com MLE exato usando Filtro de Kalman armaprocess. Propriedades de processos arma com parâmetros dados, isso inclui ferramentas para converter entre ARMA, MA e AR representação, bem como acf, pacf, densidade espectral, função de resposta de impulso e similares sandbox. tsa. fftarma. Semelhante ao armaprocess mas trabalhando em domínio de freqüência tsatools. Funções auxiliares adicionais, para criar matrizes de variáveis ​​defasadas, construir regressores para tendência, detrend e similares. Filtros. Função auxiliar para filtrar séries temporais Algumas funções adicionais que também são úteis para análise de séries temporais estão em outras partes de modelos de estatísticas, por exemplo, testes estatísticos adicionais. Algumas funções relacionadas também estão disponíveis em matplotlib, nitime e scikits. talkbox. Essas funções são projetadas mais para o uso no processamento de sinal onde mais séries temporais estão disponíveis e trabalham com mais freqüência no domínio da freqüência. Estatística e Estatística Descritiva Os processos de erro de média móvel auto-regressivos (erros ARMA) e outros modelos que envolvem atrasos de termos de erro podem ser estimados usando declarações FIT e simulados ou previstos usando declarações SOLVE . Os modelos ARMA para o processo de erro são freqüentemente usados ​​para modelos com resíduos autocorrelacionados. A macro AR pode ser usada para especificar modelos com processos de erro autorregressivos. A macro MA pode ser usada para especificar modelos com processos de erro de média móvel. Erros Autoregressivos Um modelo com erros autoregressivos de primeira ordem, AR (1), tem a forma enquanto um processo de erro AR (2) tem a forma e assim por diante para processos de ordem superior. Observe que os s são independentes e identicamente distribuídos e têm um valor esperado de 0. Um exemplo de um modelo com um componente AR (2) é e assim por diante para processos de ordem superior. Por exemplo, você pode escrever um modelo de regressão linear simples com MA (2) erros de média móvel, onde MA1 e MA2 são os parâmetros de média móvel. Observe que RESID. Y é automaticamente definido por PROC MODEL como A função ZLAG deve ser usada para modelos MA para truncar a recursividade dos atrasos. Isso garante que os erros defasados ​​começam em zero na fase de latência e não propagam valores faltantes quando as variáveis ​​de período de atraso são perdidos e garantem que os erros futuros sejam zero em vez de faltar durante a simulação ou previsão. Para obter detalhes sobre as funções de atraso, consulte a seção Lag Logic. Este modelo escrito usando a macro MA é o seguinte: Formulário Geral para Modelos ARMA O processo ARMA (p, q) geral tem a seguinte forma Um modelo ARMA (p, q) pode ser especificado da seguinte forma: onde AR i e MA j representam Os parâmetros auto-regressivos e de média móvel para os vários desfasamentos. Você pode usar qualquer nome que você deseja para essas variáveis, e há muitas maneiras equivalentes que a especificação poderia ser escrita. Os processos Vector ARMA também podem ser estimados com PROC MODEL. Por exemplo, um processo AR (1) de duas variáveis ​​para os erros das duas variáveis ​​endógenas Y1 e Y2 pode ser especificado da seguinte forma: Problemas de Convergência com Modelos ARMA Os modelos ARMA podem ser difíceis de estimar. Se as estimativas dos parâmetros não estiverem dentro da faixa apropriada, os termos residuais dos modelos de média móvel crescem exponencialmente. Os resíduos calculados para observações posteriores podem ser muito grandes ou podem transbordar. Isso pode acontecer porque os valores iniciais inadequados foram usados ​​ou porque as iterações se afastaram de valores razoáveis. Cuidado deve ser usado na escolha de valores iniciais para ARMA parâmetros. Os valores iniciais de 0,001 para os parâmetros ARMA geralmente funcionam se o modelo se encaixa bem nos dados eo problema está bem condicionado. Note-se que um modelo MA pode muitas vezes ser aproximado por um modelo AR de alta ordem, e vice-versa. Isso pode resultar em alta colinearidade em modelos ARMA mistos, o que por sua vez pode causar grave mal-condicionamento nos cálculos e instabilidade das estimativas de parâmetros. Se você tiver problemas de convergência ao estimar um modelo com processos de erro ARMA, tente estimar em etapas. Primeiro, use uma instrução FIT para estimar apenas os parâmetros estruturais com os parâmetros ARMA mantidos a zero (ou a estimativas anteriores razoáveis ​​se disponíveis). Em seguida, use outra instrução FIT para estimar somente os parâmetros ARMA, usando os valores dos parâmetros estruturais da primeira execução. Uma vez que os valores dos parâmetros estruturais são susceptíveis de estar perto de suas estimativas finais, as estimativas ARMA parâmetro agora pode convergir. Finalmente, use outra instrução FIT para produzir estimativas simultâneas de todos os parâmetros. Uma vez que os valores iniciais dos parâmetros são agora provavelmente muito próximos de suas estimativas conjuntas finais, as estimativas devem convergir rapidamente se o modelo for apropriado para os dados. AR Condições iniciais Os retornos iniciais dos termos de erro dos modelos AR (p) podem ser modelados de diferentes maneiras. Os métodos de inicialização de erros autorregressivos suportados pelos procedimentos do SASETS são os seguintes: Procedimentos de mínimos quadrados condicionais (ARIMA e MODELOS) mínimos mínimos (procedimentos AUTOREG, ARIMA e MODEL) sem incondicional (procedimentos AUTOREG, ARIMA e MODEL) Yule-Walker (AUTOREG Procedimento somente) Hildreth-Lu, que exclui as primeiras p observações (somente procedimento MODEL) Consulte o Capítulo 8, O Procedimento AUTOREG, para uma explicação e discussão dos méritos de vários métodos de inicialização AR (p). As inicializações CLS, ULS, ML e HL podem ser realizadas pelo PROC MODEL. Para erros de AR (1), estas inicializações podem ser produzidas como mostrado na Tabela 18.2. Estes métodos são equivalentes em amostras grandes. Tabela 18.2 Inicializações Executadas por PROC MODEL: AR (1) ERROS Os retornos iniciais dos termos de erro dos modelos MA (q) também podem ser modelados de diferentes maneiras. Os seguintes paradigmas de inicialização de erros de média móvel são suportados pelos procedimentos ARIMA e MODELO: mínimos quadrados condicionais mínimos incondicionais O método de mínimos quadrados condicionais para estimar os termos de erro de média móvel não é o ideal porque ignora o problema de inicialização. Isso reduz a eficiência das estimativas, embora permaneçam imparciais. Os resíduos atrasados ​​iniciais, que se estendem antes do início dos dados, são assumidos como 0, o seu valor esperado incondicional. Isso introduz uma diferença entre esses resíduos e os resíduos de mínimos quadrados generalizados para a covariância da média móvel, que, ao contrário do modelo autorregressivo, persiste através do conjunto de dados. Normalmente, esta diferença converge rapidamente para 0, mas para processos de média móvel quase não-reversíveis a convergência é bastante lenta. Para minimizar este problema, você deve ter abundância de dados, e as estimativas de parâmetros de média móvel devem estar bem dentro do intervalo de inversibilidade. Este problema pode ser corrigido à custa de escrever um programa mais complexo. Estimativas de mínimos quadrados incondicionais para o processo MA (1) podem ser produzidas especificando o modelo da seguinte maneira: Erros de média móvel podem ser difíceis de estimar. Você deve considerar usar uma aproximação AR (p) para o processo de média móvel. Um processo de média móvel geralmente pode ser bem aproximado por um processo autorregressivo se os dados não tiverem sido suavizados ou diferenciados. A Macro AR A macro AR do SAS gera instruções de programação para MODELO PROC para modelos autorregressivos. A macro AR é parte do software SASETS e nenhuma opção especial precisa ser definida para usar a macro. O processo autorregressivo pode ser aplicado aos erros de equações estruturais ou às próprias séries endógenas. A macro AR pode ser usada para os seguintes tipos de auto-regressão: auto-regressão vetorial irrestrita autoregressão vetorial restrita Autoregressão Univariada Para modelar o termo de erro de uma equação como um processo autorregressivo, use a seguinte instrução após a equação: Por exemplo, suponha que Y é a Linear de X1, X2 e um erro de AR (2). Você escreveria este modelo da seguinte maneira: As chamadas para AR devem vir depois de todas as equações às quais o processo se aplica. A invocação de macro anterior, AR (y, 2), produz as instruções mostradas na saída LIST na Figura 18.58. Figura 18.58 Saída de Opção LIST para um Modelo AR (2) As variáveis ​​prefixadas PRED são variáveis ​​de programa temporárias usadas para que os atrasos dos resíduos sejam os resíduos corretos e não os redefinidos por esta equação. Observe que isso é equivalente às instruções explicitamente escritas na seção Formulário Geral para Modelos ARMA. Você também pode restringir os parâmetros autorregressivos a zero em intervalos selecionados. Por exemplo, se você quisesse parâmetros autorregressivos nos retornos 1, 12 e 13, você pode usar as seguintes instruções: Estas instruções geram a saída mostrada na Figura 18.59. Figura 18.59 Saída de Opção LIST para um Modelo AR com Lags em 1, 12 e 13 O MODELO Procedimento Listagem do Código de Programa Compilado como Parsed PRED. yab x1 c x2 RESID. y PRED. y - ACTUAL. y ERROR. y PRED. Y - y OLDPRED. y PRED. y yl1 ZLAG1 (y - perdy) il12 ZLAG12 (y - perdy) il13 ZLAG13 (y - perdy) RESID. y PRED. y - ACTUAL. y PRED. y - y Existem Variações no método dos mínimos quadrados condicionais, dependendo se as observações no início da série são usadas para aquecer o processo AR. Por padrão, o método de mínimos quadrados condicionais AR usa todas as observações e assume zeros para os retornos iniciais de termos autorregressivos. Usando a opção M, você pode solicitar que AR use o método de mínimos quadrados incondicionais (ULS) ou de máxima verossimilhança (ML). Por exemplo, as discussões sobre esses métodos são fornecidas na seção AR Condições iniciais. Usando a opção MCLS n, você pode solicitar que as primeiras n observações sejam usadas para calcular estimativas dos atrasos autorregressivos iniciais. Neste caso, a análise começa com a observação n 1. Por exemplo: Você pode usar a macro AR para aplicar um modelo autorregressivo à variável endógena, em vez de ao termo de erro, usando a opção TYPEV. Por exemplo, se você quiser adicionar os cinco atrasos anteriores de Y à equação no exemplo anterior, você pode usar AR para gerar os parâmetros e os retornos usando as seguintes instruções: As instruções anteriores geram a saída mostrada na Figura 18.60. Figura 18.60 Saída de opção LIST para um modelo AR de Y Este modelo prediz Y como uma combinação linear de X1, X2, uma interceptação e os valores de Y nos cinco períodos mais recentes. Autoresponder vetorial irrestrito Para modelar os termos de erro de um conjunto de equações como um processo autorregressivo de vetor, use a seguinte forma da macro AR após as equações: O valor processname é qualquer nome que você fornecer para AR usar para fazer nomes para o autorregressivo Parâmetros. Você pode usar a macro AR para modelar vários processos AR diferentes para diferentes conjuntos de equações usando diferentes nomes de processo para cada conjunto. O nome do processo garante que os nomes de variáveis ​​usados ​​são exclusivos. Use um valor processname curto para o processo se as estimativas de parâmetro forem gravadas em um conjunto de dados de saída. A macro AR tenta construir nomes de parâmetro menor ou igual a oito caracteres, mas isso é limitado pelo comprimento de processname. Que é usado como um prefixo para os nomes de parâmetro AR. O valor da lista de variáveis ​​é a lista de variáveis ​​endógenas para as equações. Por exemplo, suponha que erros para as equações Y1, Y2 e Y3 sejam gerados por um processo autorregressivo de vetor de segunda ordem. Você pode usar as seguintes instruções: que geram o seguinte para Y1 e código semelhante para Y2 e Y3: Somente o método de mínimos quadrados condicional (MCLS ou MCLS n) pode ser usado para processos vetoriais. Você também pode usar o mesmo formulário com restrições que a matriz de coeficientes seja 0 em defasagens selecionadas. Por exemplo, as seguintes afirmações aplicam um processo vetorial de terceira ordem aos erros de equação com todos os coeficientes no retardo 2 restrito a 0 e com os coeficientes nos retornos 1 e 3 sem restrições: Você pode modelar as três séries Y1Y3 como um processo autorregressivo de vetor Nas variáveis ​​em vez de nos erros usando a opção TYPEV. Se você deseja modelar Y1Y3 como uma função de valores passados ​​de Y1Y3 e algumas variáveis ​​exógenas ou constantes, você pode usar AR para gerar as declarações para os termos de atraso. Escreva uma equação para cada variável para a parte não autorregressiva do modelo e, em seguida, chame AR com a opção TYPEV. Por exemplo, a parte não autorregressiva do modelo pode ser uma função de variáveis ​​exógenas, ou pode ser parâmetros de interceptação. Se não houver componentes exógenos para o modelo de autorregressão vetorial, incluindo sem interceptações, então atribua zero a cada uma das variáveis. Deve haver uma atribuição para cada uma das variáveis ​​antes de AR é chamado. Este exemplo modela o vetor Y (Y1 Y2 Y3) como uma função linear apenas do seu valor nos dois períodos anteriores e um vetor de erro de ruído branco. O modelo tem 18 (3 3 3 3) parâmetros. Sintaxe da Macro AR Existem dois casos da sintaxe da macro AR. Quando as restrições em um processo AR vetorial não são necessárias, a sintaxe da macro AR tem a forma geral especifica um prefixo para AR a ser usado na construção de nomes de variáveis ​​necessários para definir o processo AR. Se o endolist não é especificado, a lista endógena padrão é nome. Que deve ser o nome da equação à qual o processo de erro AR deve ser aplicado. O valor de nome não pode exceder 32 caracteres. É a ordem do processo AR. Especifica a lista de equações às quais o processo AR deve ser aplicado. Se for dado mais de um nome, é criado um processo vetorial sem restrições com os resíduos estruturais de todas as equações incluídas como regressores em cada uma das equações. Se não for especificado, o endolist predefinirá o nome. Especifica a lista de defasagens em que os termos AR devem ser adicionados. Os coeficientes dos termos em intervalos não listados são definidos como 0. Todos os atrasos listados devem ser menores ou iguais a nlag. E não deve haver duplicatas. Se não for especificado, o laglist padrão para todos os retornos 1 através de nag. Especifica o método de estimação a ser implementado. Valores válidos de M são CLS (estimativas de mínimos quadrados condicionais), ULS (estimativas de mínimos quadrados incondicionais) e ML (estimativas de máxima verossimilhança). MCLS é o padrão. Somente o MCLS é permitido quando mais de uma equação é especificada. Os métodos ULS e ML não são suportados para modelos AR de AR por AR. Especifica que o processo AR deve ser aplicado às próprias variáveis ​​endógenas em vez de aos resíduos estruturais das equações. Auto-regressão vetorial restrito Você pode controlar quais parâmetros são incluídos no processo, restringindo a 0 aqueles parâmetros que você não inclui. Primeiro, use AR com a opção DEFER para declarar a lista de variáveis ​​e definir a dimensão do processo. Em seguida, use chamadas AR adicionais para gerar termos para equações selecionadas com variáveis ​​selecionadas em intervalos selecionados. Por exemplo, as equações de erro produzidas são as seguintes: Este modelo estabelece que os erros para Y1 dependem dos erros de Y1 e Y2 (mas não Y3) nos dois intervalos 1 e 2, e que os erros para Y2 e Y3 dependem de Os erros anteriores para todas as três variáveis, mas apenas com atraso 1. AR Macro Sintaxe para AR Restrito AR Um uso alternativo de AR é permitido para impor restrições em um processo AR vetorial chamando AR várias vezes para especificar diferentes AR termos e defasagens para diferentes Equações. A primeira chamada tem a forma geral especifica um prefixo para AR para usar na construção de nomes de variáveis ​​necessárias para definir o vetor AR processo. Especifica a ordem do processo AR. Especifica a lista de equações às quais o processo AR deve ser aplicado. Especifica que AR não é para gerar o processo AR, mas é esperar por mais informações especificadas em chamadas AR posterior para o mesmo valor de nome. As chamadas subsequentes têm a forma geral é a mesma que na primeira chamada. Especifica a lista de equações às quais as especificações nesta chamada AR devem ser aplicadas. Somente os nomes especificados no valor endolist da primeira chamada para o valor de nome podem aparecer na lista de equações na lista de eqlist. Especifica a lista de equações cujos resíduos estruturais retardados devem ser incluídos como regressores nas equações em eqlist. Somente nomes no endolist da primeira chamada para o valor de nome podem aparecer em varlist. Se não for especificado, varlist padrão para endolist. Especifica a lista de defasagens em que os termos AR devem ser adicionados. Os coeficientes dos termos em intervalos não listados são definidos como 0. Todos os atrasos listados devem ser menores ou iguais ao valor de nlag. E não deve haver duplicatas. Se não for especificado, o laglist assume todos os defasagens 1 a nlag. A macro MA A macro SAS MA gera instruções de programação para MODELO PROC para modelos de média móvel. A macro MA faz parte do software SASETS e não são necessárias opções especiais para utilizar a macro. O processo de erro de média móvel pode ser aplicado aos erros da equação estrutural. A sintaxe da macro MA é o mesmo que a macro AR, exceto que não há argumento TYPE. Quando você estiver usando as macros MA e AR combinadas, a macro MA deve seguir a macro AR. As seguintes instruções SASIML produzem um processo de erro ARMA (1, (1 3)) e salvam-no no conjunto de dados MADAT2. As seguintes instruções PROC MODEL são usadas para estimar os parâmetros deste modelo usando a estrutura de erro de máxima verossimilhança: As estimativas dos parâmetros produzidos por esta execução são mostradas na Figura 18.61. Figura 18.61 Estimativas de um processo ARMA (1, (1 3)) Existem dois casos da sintaxe para a macro MA. Quando as restrições em um processo de MA vetorial não são necessárias, a sintaxe da macro MA tem a forma geral especifica um prefixo para MA usar na construção de nomes de variáveis ​​necessárias para definir o processo MA e é o endolist padrão. É a ordem do processo MA. Especifica as equações às quais o processo MA deve ser aplicado. Se for dado mais de um nome, a estimativa CLS é usada para o processo vetorial. Especifica os atrasos em que os termos MA devem ser adicionados. Todos os atrasos listados devem ser menores ou iguais a nlag. E não deve haver duplicatas. Se não for especificado, o laglist padrão para todos os retornos 1 através de nag. Especifica o método de estimação a ser implementado. Valores válidos de M são CLS (estimativas de mínimos quadrados condicionais), ULS (estimativas de mínimos quadrados incondicionais) e ML (estimativas de máxima verossimilhança). MCLS é o padrão. Somente o MCLS é permitido quando mais de uma equação é especificada no endolist. MA Sintaxe de Macro para Movimentação-Média Restrita de Vetores Um uso alternativo de MA é permitido para impor restrições em um processo de MA de vetor chamando MA várias vezes para especificar diferentes termos de MA e defasagens para equações diferentes. A primeira chamada tem a forma geral especifica um prefixo para MA para usar na construção de nomes de variáveis ​​necessárias para definir o vetor MA processo. Especifica a ordem do processo MA. Especifica a lista de equações às quais o processo MA deve ser aplicado. Especifica que MA não é para gerar o processo de MA, mas é aguardar informações adicionais especificadas em chamadas de MA mais tarde para o mesmo valor de nome. As chamadas subsequentes têm a forma geral é a mesma que na primeira chamada. Especifica a lista de equações às quais as especificações nesta chamada MA devem ser aplicadas. Especifica a lista de equações cujos resíduos estruturais retardados devem ser incluídos como regressores nas equações em eqlist. Especifica a lista de defasagens em que os termos de MA devem ser adicionados. Média Móvel ARMORE (p, q) Modelos para Análise de Série de Tempo - Parte 1 No último artigo analisamos caminhadas aleatórias e ruído branco como modelos básicos de séries temporais para Determinados instrumentos financeiros, tais como os preços diários de acções e de acções. Descobrimos que, em alguns casos, um modelo de caminhada aleatória foi insuficiente para captar o comportamento de autocorrelação total do instrumento, o que motiva modelos mais sofisticados. No próximo par de artigos vamos discutir três tipos de modelo, a saber, o Modelo Autoregressivo (AR) de ordem p, o Modelo de Média Móvel (MO) de ordem q eo modelo de Média Móvel Movida Autogressiva (ARMA) de ordem p , Q. Estes modelos nos ajudarão a tentar capturar ou explicar mais da correlação serial presente dentro de um instrumento. Em última análise, eles nos fornecerão um meio de prever os preços futuros. No entanto, é bem sabido que as séries temporais financeiras possuem uma propriedade conhecida como agrupamento de volatilidade. Ou seja, a volatilidade do instrumento não é constante no tempo. O termo técnico para esse comportamento é conhecido como heterocedasticidade condicional. Como os modelos AR, MA e ARMA não são condicionalmente heteroscedásticos, ou seja, não levam em conta o agrupamento de volatilidade, acabaremos por precisar de um modelo mais sofisticado para nossas previsões. Tais modelos incluem o modelo condutor condicional condicional (ARCH) e modelo Heteroskedastic condicional condicional generalizado (GARCH), e as muitas variantes dele. GARCH é particularmente bem conhecido em finanças de quant e é usado primeiramente para simulações financeiras da série de tempo como um meio de estimar o risco. No entanto, como com todos os artigos do QuantStart, eu quero construir esses modelos a partir de versões mais simples para que possamos ver como cada nova variante muda nossa capacidade de previsão. Apesar de AR, MA e ARMA serem modelos de séries temporais relativamente simples, eles são a base de modelos mais complicados, como a Média Móvel Integrada Autoregressiva (ARIMA) ea família GARCH. Por isso, é importante que os estudemos. Uma das nossas primeiras estratégias de negociação na série de artigos de séries temporais será combinar ARIMA e GARCH para prever preços n períodos de antecedência. No entanto, teremos que esperar até que discutimos ambos ARIMA e GARCH separadamente antes de aplicá-los a uma estratégia real. Como vamos prosseguir Neste artigo vamos esboçar alguns novos conceitos de série de tempo que bem precisam para os restantes métodos, Estacionário eo critério de informação Akaike (AIC). Subseqüentemente a esses novos conceitos, seguiremos o padrão tradicional para estudar novos modelos de séries temporais: Justificativa - A primeira tarefa é fornecer uma razão por que estavam interessados ​​em um determinado modelo, como quants. Por que estamos introduzindo o modelo de séries temporais Que efeitos pode capturar O que ganhamos (ou perdemos) adicionando complexidade extra Definição - Precisamos fornecer a definição matemática completa (e notação associada) do modelo de série temporal para minimizar Qualquer ambiguidade. Propriedades de Segunda Ordem - Vamos discutir (e em alguns casos derivar) as propriedades de segunda ordem do modelo de séries temporais, que inclui sua média, sua variância e sua função de autocorrelação. Correlograma - Usaremos as propriedades de segunda ordem para traçar um correlograma de uma realização do modelo de séries temporais para visualizar seu comportamento. Simulação - Vamos simular as realizações do modelo de série de tempo e, em seguida, ajustar o modelo para estas simulações para garantir que temos implementações precisas e compreender o processo de montagem. Dados Financeiros Reais - Ajustaremos o modelo da série de tempo aos dados financeiros reais e consideraremos o correlograma dos resíduos para ver como o modelo explica a correlação serial na série original. Previsão - Vamos criar n-passo adiante previsões do modelo de série de tempo para realizações particulares, a fim de produzir sinais de negociação. Quase todos os artigos que escrevo sobre modelos de séries temporais cairão nesse padrão e nos permitirá comparar facilmente as diferenças entre cada modelo à medida que adicionamos mais complexidade. Vamos começar por olhar para a estacionaridade rigorosa ea AIC. Estritamente estacionária Nós fornecemos a definição de estacionariedade no artigo sobre correlação serial. No entanto, porque vamos entrar no reino de muitas séries financeiras, com várias freqüências, precisamos ter certeza de que nossos (eventuais) modelos levam em conta a volatilidade variável no tempo dessas séries. Em particular, precisamos considerar sua heterocedasticidade. Encontraremos este problema quando tentarmos ajustar certos modelos a séries históricas. Geralmente, nem toda a correlação seriada nos resíduos dos modelos ajustados pode ser considerada sem levar em consideração a heterocedasticidade. Isso nos leva de volta à estacionária. Uma série não é estacionária na variância se tiver volatilidade variável no tempo, por definição. Isso motiva uma definição mais rigorosa de estacionariedade, ou seja, a estacionariedade estrita: estritamente estacionária série A série de tempo modelo, é estritamente estacionário se a distribuição estatística conjunta dos elementos x, ldots, x é o mesmo que xm, ldots, xm, Para todos ti, m. Pode-se pensar nesta definição como simplesmente que a distribuição da série temporal é inalterada para qualquer deslocamento abritário no tempo. Em particular, a média ea variância são constantes no tempo para uma série estritamente estacionária ea autocovariância entre xt e xs (digamos) depende apenas da diferença absoluta de t e s, t-s. Estaremos revisitando as séries estritamente estacionárias em futuras postagens. Critério de Informações Akaike Eu mencionei em artigos anteriores que eventualmente precisaria considerar como escolher entre melhores modelos separados. Isto é verdade não só de análise de séries temporais, mas também de aprendizagem de máquinas e, em termos mais gerais, de estatísticas em geral. Os dois principais métodos que usaremos (por enquanto) são o Critério de Informação Akaike (AIC) e o Critério de Informação Bayesiano (conforme avançamos com nossos artigos sobre Estatísticas Bayesianas). Bem, brevemente considerar a AIC, como ele será usado na Parte 2 do ARMA artigo. AIC é essencialmente uma ferramenta para auxiliar na seleção do modelo. Ou seja, se tivermos uma seleção de modelos estatísticos (incluindo séries temporais), então a AIC estima a qualidade de cada modelo, em relação aos outros que temos disponíveis. Baseia-se na teoria da informação. Que é um tópico altamente interessante, profundo que infelizmente não podemos entrar em muito detalhe sobre. Ele tenta equilibrar a complexidade do modelo, que neste caso significa o número de parâmetros, com o quão bem ele se encaixa os dados. Vamos fornecer uma definição: Critério de Informação Akaike Se tomarmos a função de verossimilhança para um modelo estatístico, que tem k parâmetros, e L maximiza a probabilidade. Então o Critério de Informação Akaike é dado por: O modelo preferido, a partir de uma seleção de modelos, tem o mínimo AIC do grupo. Você pode ver que a AIC cresce à medida que o número de parâmetros, k, aumenta, mas é reduzido se a probabilidade de log negativo aumentar. Essencialmente penaliza modelos que são overfit. Vamos criar modelos AR, MA e ARMA de várias ordens e uma maneira de escolher o melhor modelo para um determinado conjunto de dados é usar o AIC. Isto é o que bem estar fazendo no próximo artigo, principalmente para modelos ARMA. Modelos auto-regressivos de ordem p O primeiro modelo que irão considerar, que forma a base da Parte 1, é o modelo Autoregressivo de ordem p, muitas vezes abreviado para AR (p). No artigo anterior consideramos a caminhada aleatória. Onde cada termo, xt é dependente unicamente do termo anterior, x e um termo estocástico de ruído branco, wt: O modelo autorregressivo é simplesmente uma extensão da caminhada aleatória que inclui termos mais atrás no tempo. A estrutura do modelo é linear. Que é o modelo depende linearmente sobre os termos anteriores, com coeficientes para cada termo. Isto é de onde o regressivo vem em autorregressivo. É essencialmente um modelo de regressão onde os termos anteriores são os preditores. Modelo auto-regressivo de ordem p Um modelo de série temporal,, é um modelo autorregressivo de ordem p. AR (p), se: begin xt alfa1 x ldots alfa x wt soma p alphai x wt end Onde está o ruído branco e alphai em mathbb, com alfap neq 0 para um processo autorregressivo p-order. Se considerarmos o Backward Shift Operator. (Veja o artigo anterior), então podemos reescrever o acima como uma função theta de: begin thetap () xt (1 - alpha1 - alpha2 2 - ldots - alphap) xt wt end Talvez a primeira coisa a notar sobre o modelo AR (p) É que uma caminhada aleatória é simplesmente AR (1) com alfa1 igual à unidade. Como já dissemos acima, o modelo autogressivo é uma extensão da caminhada aleatória, então isso faz sentido. É fácil fazer previsões com o modelo AR (p), para qualquer tempo t, uma vez que temos os coeficientes alfa determinados, nossa estimativa Simplesmente torna-se: começar hat t alfa1 x ldots alphap x final Por isso podemos fazer n-passo adiante previsões produzindo chapéu t, chapéu, chapéu, etc até chapéu. De fato, quando considerarmos os modelos ARMA na Parte 2, usaremos a função R predict para criar previsões (juntamente com bandas de intervalo de confiança de erro padrão) que nos ajudarão a produzir sinais de negociação. Estacionariedade para Processos Autoregressivos Um dos aspectos mais importantes do modelo AR (p) é que nem sempre é estacionário. De fato, a estacionaridade de um modelo particular depende dos parâmetros. Ive tocou sobre isso antes em um artigo anterior. Para determinar se um processo AR (p) é estacionário ou não, precisamos resolver a equação característica. A equação característica é simplesmente o modelo autorregressivo, escrito em forma de mudança para trás, definido como zero: resolvemos esta equação para. Para que o processo autorregressivo particular seja estacionário, precisamos que todos os valores absolutos das raízes desta equação excedam a unidade. Esta é uma propriedade extremamente útil e nos permite calcular rapidamente se um processo AR (p) está parado ou não. Lets consider a few examples to make this idea concrete: Random Walk - The AR(1) process with alpha1 1 has the characteristic equation theta 1 - . Clearly this has root 1 and as such is not stationary. AR(1) - If we choose alpha1 frac we get xt frac x wt. This gives us a characteristic equation of 1 - frac 0, which has a root 4 gt 1 and so this particular AR(1) process is stationary. AR(2) - If we set alpha1 alpha2 frac then we get xt frac x frac x wt. Its characteristic equation becomes - frac ( )( ) 0, which gives two roots of 1, -2. Since this has a unit root it is a non-stationary series. However, other AR(2) series can be stationary. Second Order Properties The mean of an AR(p) process is zero. However, the autocovariances and autocorrelations are given by recursive functions, known as the Yule-Walker equations. The full properties are given below: begin mux E(xt) 0 end begin gammak sum p alphai gamma , enspace k 0 end begin rhok sum p alphai rho , enspace k 0 end Note that it is necessary to know the alphai parameter values prior to calculating the autocorrelations. Now that weve stated the second order properties we can simulate various orders of AR(p) and plot the corresponding correlograms. Simulations and Correlograms Lets begin with an AR(1) process. This is similar to a random walk, except that alpha1 does not have to equal unity. Our model is going to have alpha1 0.6. The R code for creating this simulation is given as follows: Notice that our for loop is carried out from 2 to 100, not 1 to 100, as xt-1 when t0 is not indexable. Similarly for higher order AR(p) processes, t must range from p to 100 in this loop. We can plot the realisation of this model and its associated correlogram using the layout function: Lets now try fitting an AR(p) process to the simulated data weve just generated, to see if we can recover the underlying parameters. You may recall that we carried out a similar procedure in the article on white noise and random walks . As it turns out R provides a useful command ar to fit autoregressive models. We can use this method to firstly tell us the best order p of the model (as determined by the AIC above) and provide us with parameter estimates for the alphai, which we can then use to form confidence intervals. For completeness, lets recreate the x series: Now we use the ar command to fit an autoregressive model to our simulated AR(1) process, using maximum likelihood estimation (MLE) as the fitting procedure. We will firstly extract the best obtained order: The ar command has successfully determined that our underlying time series model is an AR(1) process. We can then obtain the alphai parameter(s) estimates: The MLE procedure has produced an estimate, hat 0.523, which is slightly lower than the true value of alpha1 0.6. Finally, we can use the standard error (with the asymptotic variance) to construct 95 confidence intervals around the underlying parameter(s). To achieve this, we simply create a vector c(-1.96, 1.96) and then multiply it by the standard error: The true parameter does fall within the 95 confidence interval, as wed expect from the fact weve generated the realisation from the model specifically. How about if we change the alpha1 -0.6 As before we can fit an AR(p) model using ar : Once again we recover the correct order of the model, with a very good estimate hat -0.597 of alpha1-0.6. We also see that the true parameter falls within the 95 confidence interval once again. Lets add some more complexity to our autoregressive processes by simulating a model of order 2. In particular, we will set alpha10.666, but also set alpha2 -0.333. Heres the full code to simulate and plot the realisation, as well as the correlogram for such a series: As before we can see that the correlogram differs significantly from that of white noise, as wed expect. There are statistically significant peaks at k1, k3 and k4. Once again, were going to use the ar command to fit an AR(p) model to our underlying AR(2) realisation. The procedure is similar as for the AR(1) fit: The correct order has been recovered and the parameter estimates hat 0.696 and hat -0.395 are not too far off the true parameter values of alpha10.666 and alpha2-0.333. Notice that we receive a convergence warning message. Notice also that R actually uses the arima0 function to calculate the AR model. As well learn in subsequent articles, AR(p) models are simply ARIMA(p, 0, 0) models, and thus an AR model is a special case of ARIMA with no Moving Average (MA) component. Well also be using the arima command to create confidence intervals around multiple parameters, which is why weve neglected to do it here. Now that weve created some simulated data it is time to apply the AR(p) models to financial asset time series. Financial Data Amazon Inc. Lets begin by obtaining the stock price for Amazon (AMZN) using quantmod as in the last article : The first task is to always plot the price for a brief visual inspection. In this case well using the daily closing prices: Youll notice that quantmod adds some formatting for us, namely the date, and a slightly prettier chart than the usual R charts: We are now going to take the logarithmic returns of AMZN and then the first-order difference of the series in order to convert the original price series from a non-stationary series to a (potentially) stationary one. This allows us to compare apples to apples between equities, indices or any other asset, for use in later multivariate statistics, such as when calculating a covariance matrix. If you would like a detailed explanation as to why log returns are preferable, take a look at this article over at Quantivity . Lets create a new series, amznrt. to hold our differenced log returns: Once again, we can plot the series: At this stage we want to plot the correlogram. Were looking to see if the differenced series looks like white noise. If it does not then there is unexplained serial correlation, which might be explained by an autoregressive model. We notice a statististically significant peak at k2. Hence there is a reasonable possibility of unexplained serial correlation. Be aware though, that this may be due to sampling bias. As such, we can try fitting an AR(p) model to the series and produce confidence intervals for the parameters: Fitting the ar autoregressive model to the first order differenced series of log prices produces an AR(2) model, with hat -0.0278 and hat -0.0687. Ive also output the aysmptotic variance so that we can calculate standard errors for the parameters and produce confidence intervals. We want to see whether zero is part of the 95 confidence interval, as if it is, it reduces our confidence that we have a true underlying AR(2) process for the AMZN series. To calculate the confidence intervals at the 95 level for each parameter, we use the following commands. We take the square root of the first element of the asymptotic variance matrix to produce a standard error, then create confidence intervals by multiplying it by -1.96 and 1.96 respectively, for the 95 level: Note that this becomes more straightforward when using the arima function, but well wait until Part 2 before introducing it properly. Thus we can see that for alpha1 zero is contained within the confidence interval, while for alpha2 zero is not contained in the confidence interval. Hence we should be very careful in thinking that we really have an underlying generative AR(2) model for AMZN. In particular we note that the autoregressive model does not take into account volatility clustering, which leads to clustering of serial correlation in financial time series. When we consider the ARCH and GARCH models in later articles, we will account for this. When we come to use the full arima function in the next article, we will make predictions of the daily log price series in order to allow us to create trading signals. SampP500 US Equity Index Along with individual stocks we can also consider the US Equity index, the SampP500. Lets apply all of the previous commands to this series and produce the plots as before: We can plot the prices: As before, well create the first order difference of the log closing prices: Once again, we can plot the series: It is clear from this chart that the volatility is not stationary in time. This is also reflected in the plot of the correlogram. There are many peaks, including k1 and k2, which are statistically significant beyond a white noise model. In addition, we see evidence of long-memory processes as there are some statistically significant peaks at k16, k18 and k21: Ultimately we will need a more sophisticated model than an autoregressive model of order p. However, at this stage we can still try fitting such a model. Lets see what we get if we do so: Using ar produces an AR(22) model, i. e. a model with 22 non-zero parameters What does this tell us It is indicative that there is likely a lot more complexity in the serial correlation than a simple linear model of past prices can really account for. However, we already knew this because we can see that there is significant serial correlation in the volatility. For instance, consider the highly volatile period around 2008. This motivates the next set of models, namely the Moving Average MA(q) and the Autoregressive Moving Average ARMA(p, q). Well learn about both of these in Part 2 of this article. As we repeatedly mention, these will ultimately lead us to the ARIMA and GARCH family of models, both of which will provide a much better fit to the serial correlation complexity of the Samp500. This will allows us to improve our forecasts significantly and ultimately produce more profitable strategies. Just Getting Started with Quantitative TradingAutoregressive Moving-Average Simulation (First Order) The Demonstration is set such that the same random series of points is used no matter how the constants and are varied. No entanto, quando o botão quotrandomizequot é pressionado, uma nova série aleatória será gerada e usada. Manter a série aleatória idêntica permite ao usuário ver exatamente os efeitos na série ARMA de mudanças nas duas constantes. A constante é limitada a (-1,1) porque a divergência da série ARMA resulta quando. A Demonstração destina-se apenas a um processo de primeira ordem. Os termos AR adicionais permitiriam a geração de séries mais complexas, enquanto que os termos MA adicionais aumentariam o alisamento. Para uma descrição detalhada dos processos ARMA, ver, por exemplo, G. Box, G. M. Jenkins e G. Reinsel, Análise de séries temporais: Previsão e Controlo. 3a ed. Englewood Cliffs, NJ: Prentice-Hall, 1994. RELATED LINKS

No comments:

Post a Comment