Saturday 5 January 2019

Movendo média sas macro


O código de exemplo na guia Código completo ilustra como calcular a média móvel de uma variável através de um conjunto de dados inteiro, nas últimas N observações em um conjunto de dados ou nas últimas N observações dentro de um grupo BY. Esses arquivos de amostra e exemplos de código são fornecidos pelo SAS Institute Inc. como é sem garantia de qualquer tipo, expressa ou implícita, incluindo mas não limitado às garantias implícitas de comercialização e adequação a um propósito específico. Os beneficiários reconhecem e concordam que o SAS Institute não se responsabiliza por quaisquer danos decorrentes da utilização deste material. Além disso, o SAS Institute não fornecerá suporte para os materiais aqui contidos. Esses arquivos de amostra e exemplos de código são fornecidos pelo SAS Institute Inc. como é sem garantia de qualquer tipo, expressa ou implícita, incluindo mas não limitado às garantias implícitas de comercialização e adequação a um propósito específico. Os beneficiários reconhecem e concordam que o SAS Institute não se responsabiliza por quaisquer danos decorrentes da utilização deste material. Além disso, o SAS Institute não fornecerá suporte para os materiais aqui contidos. Calcular a média móvel de uma variável através de um conjunto de dados inteiro, sobre as últimas N observações em um conjunto de dados, ou sobre as últimas N observações dentro de um grupo BY. Processos de erro de média móvel agressiva (erros ARMA) e outros modelos que envolvem Os 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 faltarem durante a simulação ou a 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 do intervalo apropriado, 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 MÍNIMOS CONDUTAIS (Procedimentos ARIMA e MODELO) Procedimentos de mínimos quadrados incondicionais (procedimentos AUTOREG, ARIMA e MODELO) Yule-Walker (AUTOREG, ARIMA e MODELO) 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 de estimativa de 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. Isto introduz uma diferença entre estes 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. As 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 seja 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 termos AR 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 subseqüentes têm a forma geral é o mesmo 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 MA devem ser adicionados. Processos de Erros Média Mínima de Movimento 13 13 13 13 13 13 Os processos de erro médio móvel auto-regressivo (erros ARMA) e outros modelos envolvendo atrasos de termos de erro podem ser estimados usando declarações FIT e Simulado ou previsão usando instruçõ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 médio 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 distribuídos de forma idêntica e têm um valor esperado de 0. Um exemplo de um modelo com um componente AR (2) é Você iria escrever este modelo da seguinte forma: ou equivalentemente usando a macro AR como Moving Average Models 13 A Modelo com erros de média móvel de primeira ordem, MA (1), tem a forma onde é distribuído de forma idêntica e independente com zero médio. Um processo de erro MA (2) tem a forma e assim por diante para processos de ordem superior. Por exemplo, você pode escrever um modelo de regressão linear simples com MA (2) movendo erros médios como onde MA1 e MA2 são os parâmetros de média móvel. Observe que RESID. Y é automaticamente definido pelo PROC MODEL como Observe que RESID. Y é. A função ZLAG deve ser usada para que os modelos de MA trunquem a recursividade dos atrasos. Isso garante que os erros defasados ​​começam em zero na fase de antecipação e não propagam os valores faltantes quando as variáveis ​​do período de atraso são ausentes e garantem que os erros futuros sejam zero, em vez de faltarem durante a simulação ou a previsão. Para obter detalhes sobre as funções de atraso, consulte a seção 34Lag Logic.34 Este modelo escrito usando a macro MA é Formulário Geral para Modelos ARMA O processo ARMA (p, q) geral tem a seguinte forma Um modelo ARMA (p, q) pode ser Especificado como segue, onde AR i e MA j representam os parâmetros de média autorregressiva e 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 de parâmetro não estiverem dentro do intervalo apropriado, os termos residuais de modelos de média móvel crescerão 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 .001 para parâmetros ARMA normalmente funcionam se o modelo se encaixa bem nos dados eo problema está bem condicionado. Observe que um modelo de 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 de parâmetros ARMA podem agora 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 13 13 13 13 13 13 13 13 13 13 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: mínimos quadrados condicionais CLS (procedimentos ARIMA e MODEL) ULS mínimos quadrados incondicionais (procedimentos AUTOREG, ARIMA e MODEL) ML máxima verossimilhança (procedimentos AUTOREG, ARIMA e MODEL) YW Yule - Walker (procedimento AUTOREG somente) HL Hildreth-Lu, que exclui as primeiras p observações (somente procedimento MODEL) Consulte o Capítulo 8 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 14.2. Estes métodos são equivalentes em amostras grandes. Os retornos iniciais dos termos de erro dos modelos de MA (q) também podem ser modelados de diferentes maneiras. Tabela 14.2: Inicializações Executadas por PROC MODEL: AR (1) ERRORS MA Condições Iniciais 13 13 13 13 13 13. Os seguintes paradigmas de inicialização de erros de média móvel são suportados pelos procedimentos ARIMA e MODELO: ULS incondicional mínimos quadrados CLS condicional mínimos quadrados ML máxima verossimilhança O método de mínimos quadrados condicionais de estimar os termos de erro médio móvel não é ótimo 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. Isto introduz uma diferença entre estes resíduos e os resíduos de mínimos quadrados generalizados para a covariância 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 da faixa inversível. 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 autorregressão univariada, autorregressão vetorial irrestrita e autorregressão vetorial restrita. 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 seja uma função linear de X1 e 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 macro de procedimento, AR (y, 2), produz as instruções mostradas na saída LIST na Figura 14.49. Figura 14.50: Saída de opção LIST para um modelo AR com Lags em 1, 12 e 13 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 acelerar 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 nas Condições 34AR Inicial 34 anteriormente nesta seção. 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 14.51. O MODELO Procedimento Listagem de 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) yl2 ZLAG2 (y ) Y3 ZLAG3 (y) il4 ZLAG4 (y) il5 ZLAG5 (y) RESID. y PRED. y - ACTUAL. y ERROR. y PRED. y - y Figura 14.51: LIST Option Output para um modelo AR de Y Este modelo prediz Y Como uma combinação linear de X1, X2, um intercepto, e os valores de Y nos cinco períodos mais recentes. 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 do nome do processo é qualquer nome que você fornece para que o AR use para fazer nomes para o Parâmetros auto-regressivos. 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. O macro AR tenta construir nomes de parâmetro menor ou igual a oito caracteres, mas isso é limitado pelo comprimento do nome. 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 gera 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 declarações aplicam um processo vetorial de terceira ordem aos erros de equação com todos os coeficientes no intervalo 2 restrito a 0 e com os coeficientes nos retornos 1 e 3 sem restrições. Você pode modelar as três séries Y1-Y3 como um processo autorregressivo de vetor nas variáveis ​​em vez de nos erros usando a opção TYPEV. Se você deseja modelar Y1-Y3 como uma função de valores passados ​​de Y1-Y3 e algumas variáveis ​​exógenas ou constantes, você pode usar AR para gerar as declarações para os termos de lag. 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. If there are no exogenous components to the vector autoregression model, including no intercepts, then assign zero to each of the variables. There must be an assignment to each of the variables before AR is called. This example models the vector Y(Y1 Y2 Y3) as a linear function only of its value in the previous two periods and a white noise error vector. The model has 18(3 times 3 3 times 3) parameters. Syntax of the AR Macro There are two cases of the syntax of the AR macro. The first has the general form name specifies a prefix for AR to use in constructing names of variables needed to define the AR process. If the endolist is not specified, the endogenous list defaults to name . which must be the name of the equation to which the AR error process is to be applied. The name value cannot exceed eight characters. nlag is the order of the AR process. endolist specifies the list of equations to which the AR process is to be applied. If more than one name is given, an unrestricted vector process is created with the structural residuals of all the equations included as regressors in each of the equations. If not specified, endolist defaults to name . laglist specifies the list of lags at which the AR terms are to be added. The coefficients of the terms at lags not listed are set to 0. All of the listed lags must be less than or equal to nlag . and there must be no duplicates. If not specified, the laglist defaults to all lags 1 through nlag . M method specifies the estimation method to implement. Valid values of M are CLS (conditional least-squares estimates), ULS (unconditional least-squares estimates), and ML (maximum-likelihood estimates). MCLS is the default. Only MCLS is allowed when more than one equation is specified. The ULS and ML methods are not supported for vector AR models by AR. TYPEV specifies that the AR process is to be applied to the endogenous variables themselves instead of to the structural residuals of the equations. Restricted Vector Autoregression 13 13 13 13 You can control which parameters are included in the process, restricting those parameters that you do not include to 0. First, use AR with the DEFER option to declare the variable list and define the dimension of the process. Then, use additional AR calls to generate terms for selected equations with selected variables at selected lags. For example, The error equations produced are This model states that the errors for Y1 depend on the errors of both Y1 and Y2 (but not Y3) at both lags 1 and 2, and that the errors for Y2 and Y3 depend on the previous errors for all three variables, but only at lag 1. AR Macro Syntax for Restricted Vector AR An alternative use of AR is allowed to impose restrictions on a vector AR process by calling AR several times to specify different AR terms and lags for different equations. The first call has the general form name specifies a prefix for AR to use in constructing names of variables needed to define the vector AR process. nlag specifies the order of the AR process. endolist specifies the list of equations to which the AR process is to be applied. DEFER specifies that AR is not to generate the AR process but is to wait for further information specified in later AR calls for the same name value. The subsequent calls have the general form name is the same as in the first call. eqlist specifies the list of equations to which the specifications in this AR call are to be applied. Only names specified in the endolist value of the first call for the name value can appear in the list of equations in eqlist . varlist specifies the list of equations whose lagged structural residuals are to be included as regressors in the equations in eqlist . Only names in the endolist of the first call for the name value can appear in varlist . If not specified, varlist defaults to endolist . laglist specifies the list of lags at which the AR terms are to be added. The coefficients of the terms at lags not listed are set to 0. All of the listed lags must be less than or equal to the value of nlag . and there must be no duplicates. If not specified, laglist defaults to all lags 1 through nlag . The MA Macro 13 The SAS macro MA generates programming statements for PROC MODEL for moving average models. The MA macro is part of SASETS software and no special options are needed to use the macro. The moving average error process can be applied to the structural equation errors. The syntax of the MA macro is the same as the AR macro except there is no TYPE argument. 13 When you are using the MA and AR macros combined, the MA macro must follow the AR macro. The following SASIML statements produce an ARMA(1, (1 3)) error process and save it in the data set MADAT2. The following PROC MODEL statements are used to estimate the parameters of this model using maximum likelihood error structure: The estimates of the parameters produced by this run are shown in Figure 14.52. Maximum Likelihood ARMA(1, (1 3)) Figure 14.52: Estimates from an ARMA(1, (1 3)) Process Syntax of the MA Macro There are two cases of the syntax for the MA macro. The first has the general form name specifies a prefix for MA to use in constructing names of variables needed to define the MA process and is the default endolist . nlag is the order of the MA process. endolist specifies the equations to which the MA process is to be applied. If more than one name is given, CLS estimation is used for the vector process. laglist specifies the lags at which the MA terms are to be added. All of the listed lags must be less than or equal to nlag . and there must be no duplicates. If not specified, the laglist defaults to all lags 1 through nlag . M method specifies the estimation method to implement. Valid values of M are CLS (conditional least-squares estimates), ULS (unconditional least-squares estimates), and ML (maximum-likelihood estimates). MCLS is the default. Only MCLS is allowed when more than one equation is specified on the endolist . MA Macro Syntax for Restricted Vector Moving Average 13 An alternative use of MA is allowed to impose restrictions on a vector MA process by calling MA several times to specify different MA terms and lags for different equations. The first call has the general form name specifies a prefix for MA to use in constructing names of variables needed to define the vector MA process. nlag specifies the order of the MA process. endolist specifies the list of equations to which the MA process is to be applied. DEFER specifies that MA is not to generate the MA process but is to wait for further information specified in later MA calls for the same name value. The subsequent calls have the general form name is the same as in the first call. eqlist specifies the list of equations to which the specifications in this MA call are to be applied. varlist specifies the list of equations whose lagged structural residuals are to be included as regressors in the equations in eqlist . laglist specifies the list of lags at which the MA terms are to be added. In this post, I show a trick to do moving average calculation (can be extended to other operations requiring windowing functions) that is super fast. Often, SAS analysts need to conduct moving average calculation and there are several options by the order of preference: 1. PROC EXPAND 2. DATA STEP 3. PROC SQL But many sites may not licensed SASETS to use PROC EXPAND and doing moving average in DATA STEP requires some coding and is error prone. PROC SQL is a natural choice for junior programmers and in many business cases the only solution, but SAS39s PROC SQL lacks windowing functions that are available in many DBs to facilitate moving average calculation. One technique people usually use is CROSS JOIN, which is very expensive and not a viable solution for even medium sized data set. In this post, I show a trick to do moving average calculation (can be extended to other operations requiring windowing functions) that is super fast. Consider the simplest moving average calculation where the trailing K observations are included in the calculation, namely MA(K), here we set K5. We first generate a 20 obs sample data, where variable ID is to be used for windowing and the variable X is to be used in MA calculation, and then we apply the standard CROSS JOIN to first examine the resulting data, Non-Grouped, just to understand how to leverage the data structure. From the resulting data set, it is hard to find a clue, now let39s sort by quotbidquot column in this data set: From this sorted data, it is clear that we actually don39t have to CROSS JOIN the whole original data set, but instead, we can generate an quotoperationquot data set that contains the difference value, and let the original data set CROSS JOIN with this much smaller quotoperationquot data set, and all the data we need to use for MA calculation will be there. Now let39s do it: CROSS JOIN original data with quotoperationquot data, sort by (a. idops), which is actually quotbid39 in sorted data set Note that in above code, it is necessary to have a. x multiply by b. weight so that the data can be inter-leaved, otherwise the same X value from original table will be output and MA calculation will be failed. The explicit weight variable actually adds in more flexibility to the whole MA calculation. While setting it to be 1 for all obs result in a simple MA calculation, assign different weights will help to resolve more complex MA computing, such as giving further observations less weight for a decayed MA. If different K parameter in MA(K) calculations are required, only the operation data set need to be updated which is trivial job. Now the actual code template for MA(K) calculation will be: With this new method, it is interesting to compare it to the expensive self CROSS JOIN as well as to PROC EXPAND. On my workstation (Intel i5 3.8Ghz, 32GB memory, 1TB 72K HDD), self CROSS JOIN is prohibitively long in running time (if data is large) while the new method uses only 2X as much time as PROC EXPAND, both time consumptions are trivial comparing to self CROSS JOIN. Time consumption shown below is in quotsecondquot. Below is the code readers can run and compare yourselves. Posted 10th May 2017 by Liang Xie SAS Programming for Data Mining

No comments:

Post a Comment