Antecedentes
Há alguns anos, os utilizadores solicitaram uma interface mais moderna no MS Excel para o popular X12-ARIMA e a sua metodologia de ajustamento sazonal (X11). O Gabinete dos Censos dos EUA desenvolveu e mantém o programa X12-ARIMA (X12A), pelo que este está disponível gratuitamente e quase toda a gente no sector aceita e tem grande consideração pelo programa X12A e pela sua metodologia.
Nessa altura, optámos por integrar o NumXL no X12ARIMA, mas como um programa externo.
O que significa a integração com programas externos?
Resumidamente, o NumXL implementa várias funções do Excel e oferece uma interface de utilizador para aceitar as entradas e os dados dos utilizadores. Nos bastidores, o NumXL transfere os dados e as entradas do utilizador para o programa X12A para efetuar o cálculo e, quando concluído, o NumXL devolve os resultados ao utilizador no Excel.
Porque é que isso lhe interessa?
Partimos do princípio de que já está a utilizar o X12A/X11 e queremos partilhar algumas das sugestões e soluções alternativas que compusemos para ultrapassar algumas das limitações do X12A e otimizar o tempo de execução e a capacidade de resposta do seu modelo.
Quer tenha um modelo X12ARIMA ou centenas de modelos, o seu livro de trabalho deve ser capaz de os gerir.
Aviso
A partir da versão 1.67 (MARTHA), o NumXL suporta o mais recente software de ajuste sazonal X13ARIMA-SEATS do Censo dos EUA. O Censo dos EUA não mantém o software de ajuste sazonal X12ARIMA, e o NumXL inclui esse modelo para ajudar nossos clientes a migrar os modelos X12 existentes para os equivalentes X13.
Problema 1: Limitação de X12A para o comprimento dos dados de entrada
O X12 ARIMA dos Censos dos EUA aceita séries cronológicas de comprimento desde 12 (para dados mensais) e 4 para dados trimestrais, até 600 observações.
As funções NumXL aceitam uma série cronológica de qualquer comprimento, mas só utilizam as 600 observações mais recentes (não em falta) para efeitos de X12A e deslocam a data de início em conformidade.
Como utilizador, não tem de alterar nada, passa os dados como faz habitualmente e o NumXL trata deste constrangimento nos bastidores.
Problema 2: Adicionar uma nova observação à série de dados
À medida que o tempo passa, novas observações são efectuadas e adicionadas ao conjunto de dados de entrada. Devemos aperfeiçoar a definição X12ARIMA para incluir estas observações e voltar a executar o modelo para atualizar o ajustamento sazonal e a previsão.
O cenário acima pode parecer intuitivo, mas tenha em conta que teria de alterar o intervalo de células de entrada na fórmula de cada modelo X12ARIMA no seu livro de trabalho. Isto não é um problema para uma série, mas e quanto a dezenas ou centenas de séries cronológicas e modelos correspondentes? Teria de repetir o mesmo exercício periodicamente, pelo que precisávamos de uma abordagem melhor.
A solução alternativa é a mesma que ilustrámos na dica: “Como configurar a análise de regressão para atualização automática.” Acrescentamos um "#N/A" após o fim dos dados de entrada para os reservar. De seguida, inclua essas células na definição do modelo X12ARIMA.
Inicialmente, o NumXL ignora todos os "#N/A" que ocorrem após a última observação com um valor não omisso. Mais tarde, à medida que um novo ponto de dados é realizado, substituímos o #N/A por um número real, aumentando assim o conjunto de dados de entrada.
Esta técnica adiciona uma nova observação ao conjunto de dados de entrada sem a necessidade de editar a fórmula de definição. Continua a ser necessário recalcular para atualizar os resultados do modelo.
Problema 3: O tempo gasto a construir os modelos é demasiado longo!
O X12A executa um conjunto completo de seleção e calibragem de modelos, pelo que, se a folha de cálculo tiver mais do que alguns modelos X12ARIMA, o cálculo de toda a folha demora mais do que alguns segundos.
A solução para este problema consiste em duas partes:
- Desativar o cálculo automático e defini-lo como Manual.
Ao definir o cálculo como Manual, o Excel não tentará forçar um cálculo quando uma célula é tocada ou altera o seu valor. Em vez disso, terá de iniciar o cálculo premindo F9 ou SHIFT+F9.
Entretanto, pode fazer muitas alterações, enquanto o Excel continua a ser muito reativo. - Desactive a limpeza do disco X12ARIMA e deixe os ficheiros intermédios X12ARIMA gerados no disco.
Aceda ao diretório de instalação do NumXL (ou seja, C:\users\<username>\AppData\Roaming\NumXL) e abra o ficheiro NumXL.conf com o notepad ou o seu editor de texto favorito.
Localizar a entrada "CLEANUP_EXIT" na secção X12ARIMA.
Certifique-se de que o valor correspondente está definido como "falso".
Nota: substitua o <username> pelo seu nome de utilizador real do Windows.
Agora, quando abrir o livro de trabalho, o NumXL carregará (com base nas necessidades) os modelos armazenados e os seus resultados, sem necessidade de executar o programa X12A.
Problema 4: O meu feed de dados está a tocar em muitas células.
Em muitos ambientes, os programas de alimentação de dados geram e actualizam (a pedido ou periodicamente) os dados de entrada utilizados nos modelos X12ARIMA. Esta configuração é muito intrigante, mas as células de entrada estão a ser tocadas com frequência e o Excel desencadeia uma enorme escala de pedidos de cálculo, pelo que, ao executar um cálculo manual, muitos modelos são candidatos a uma reavaliação.
No NumXL, calculamos e armazenamos internamente a soma de verificação (também conhecida como Hash) para o conjunto de dados de entrada e para os valores dos parâmetros do modelo. Assim, quando o Excel faz um novo pedido de avaliação de modelo, o NumXL calcula as novas somas de verificação e compara-as com as que já temos. Se o NumXL não encontrar nenhuma alteração, ele simplesmente ignora a solicitação.
Como resultado, independentemente do número de modelos X12ARIMA existentes, o NumXL apenas avalia os modelos com entradas (ou seja, parâmetros do modelo ou dados de entrada) que foram efetivamente alterados desde a última execução. Assim, o X12ARIMA é executado quando necessário.
Problema 5: Valores em falta (#N/A)
O programa X12A dos Censos dos EUA não trata os valores em falta, mas os valores em falta são benéficos, como vimos no Problema 2.
O NumXL aceita conjuntos de dados de entrada com valores em falta antes do início ou depois do fim do conjunto de dados (não em falta). O NumXL não suporta observações intermédias com valores em falta.
Poderá perguntar-se porque é que precisamos de inserir observações com valores em falta antes do início do conjunto de dados de entrada. Os utilizadores pretendem sempre alinhar os seus conjuntos de dados para que comecem na mesma linha, mas os conjuntos de dados podem ter datas de início diferentes, pelo que, ao inserir #N/A no início, podemos fazer com que todas as séries cronológicas comecem na mesma data.
A adição de observações com valores em falta em qualquer uma das extremidades da série temporal não afecta o resultado, uma vez que o NumXL ajusta a data de início (e a data de fim) às datas das observações não em falta mais próximas.
Problema 6: Argumento de desvio em X12ACOMP
Para visualizar qualquer uma das séries cronológicas de saída do X12ARIMA (por exemplo, ajustadas sazonalmente), o utilizador deve utilizar a função da folha de cálculo X12ACOMP(), mas esta função espera: um nome de modelo, tipo de saída e desvio.
O desvio é o número de observações desde o início do conjunto de dados de entrada. As observações devem incluir as que têm valores em falta (ou seja, preenchidas no início).
Para calcular o desvio, pode preencher uma coluna com uma sequência de números inteiros, começando em 1 (um) e aumentando à medida que desce.
Outra abordagem é utilizar a função integrada COUNT() do Excel e calcular o número de células desde o início dos dados de entrada até à nossa posição atual.
Problema 7: Restrições da política de TI/SI
Em alguns ambientes, o IT/MIS define políticas de segurança restritivas que impedem a execução de programas no perfil local dos utilizadores (ou seja, C:\users\<username>\AppData\LocalData). Esta configuração impede que o programa X12A seja executado, gerando assim qualquer saída.
A solução alternativa para este problema é alterar a configuração do "diretório de dados" no ficheiro "NumXL.conf" para um diretório onde o utilizador tenha permissão suficiente para executar programas.
Para isso, vá para o diretório de instalação do NumXL (ou seja, C:\users\<username>\AppData\Roaming\NumXL) e abra o arquivo NumXL.conf com o bloco de notas ou seu editor de texto favorito.
Localize a entrada "DATAPATH" na secção [GLOBASLS], descomente (apague a hashtag) e defina o seu valor para um diretório no seu disco com permissão suficiente para executar o programa X12A.
Conclusão
Nesta edição, apresentámos uma série de desafios encontrados pelos nossos utilizadores ao utilizarem o modelo NumXL X12ARIMA no Excel para uso diário. Para cada caso, mostrámos a melhoria correspondente, recomendações e, em alguns casos, soluções alternativas para os ultrapassar.
Olhando para o futuro, estamos a levar estas valiosas lições connosco, uma vez que estamos a trabalhar no mais recente programa X13ARIMA-SEATS dos Censos dos EUA.
Comentários
iniciar sessão para comentar.