Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O algoritmo Microsoft Time Series inclui dois algoritmos separados para analisar séries temporais:
O algoritmo ARTXP, que foi introduzido no SQL Server 2005, é otimizado para prever o próximo valor provável em uma série.
O algoritmo ARIMA foi adicionado ao SQL Server 2008 para melhorar a precisão da previsão de longo prazo.
Por padrão, o Analysis Services usa cada algoritmo separadamente para treinar o modelo e mistura os resultados para produzir a melhor previsão para um número variável de previsões. Você também pode optar por usar apenas um dos algoritmos, com base em seus dados e requisitos de previsão. No SQL Server 2008 Enterprise, você também pode personalizar o ponto de corte que controla a combinação de algoritmos durante a previsão.
Este tópico fornece informações adicionais sobre como cada algoritmo é implementado e como você pode personalizar o algoritmo definindo parâmetros para ajustar os resultados de análise e previsão.
Implementação do Algoritmo de Série Temporal da Microsoft
A Microsoft Research desenvolveu o algoritmo ARTXP original que foi usado no SQL Server 2005, baseando a implementação no algoritmo Árvores de Decisão da Microsoft. Portanto, o algoritmo ARTXP pode ser descrito como um modelo de árvore autoregressiva para representar dados periódicos de série temporal. Esse algoritmo relaciona um número variável de itens anteriores a cada item atual que está sendo previsto. O nome ARTXP deriva do fato de que o método de árvore autoregressiva (um algoritmo ART) é aplicado a vários estados anteriores desconhecidos. Para obter uma explicação detalhada do algoritmo ARTXP, consulte Modelos de árvore autoregressiva para análise de Time-Series.
O algoritmo ARIMA foi adicionado ao algoritmo Microsoft Time Series no SQL Server 2008 para melhorar a previsão de longo prazo. É uma implementação do processo para calcular médias móveis integradas autoregressivas descritas por Box e Jenkins. A metodologia ARIMA possibilita determinar dependências em observações feitas sequencialmente no tempo e pode incorporar choques aleatórios como parte do modelo. O método ARIMA também dá suporte à sazonalidade multiplicativa. Os leitores que desejam saber mais sobre o algoritmo ARIMA são incentivados a ler o trabalho seminal da Box e jenkins; esta seção destina-se a fornecer detalhes específicos sobre como a metodologia ARIMA foi implementada no algoritmo Microsoft Time Series.
Por padrão, o algoritmo Microsoft Time Series usa ambos os métodos, ARTXP e ARIMA, e combina os resultados para melhorar a precisão da previsão. Se você quiser usar apenas um método específico, poderá definir os parâmetros de algoritmo para usar apenas ARTXP ou apenas ARIMA, ou para controlar como os resultados dos algoritmos são combinados. Observe que o algoritmo ARTXP dá suporte à previsão cruzada, mas o algoritmo ARIMA não. Portanto, a previsão cruzada só está disponível quando você usa uma combinação de algoritmos ou quando configura o modelo para usar apenas ARTXP.
Noções básicas sobre a ordem de diferença do ARIMA
Esta seção apresenta algumas terminologias necessárias para entender o modelo ARIMA e discute a implementação específica de diferenciação no algoritmo Microsoft Time Series. Para obter uma explicação completa desses termos e conceitos, recomendamos uma revisão de Box e Jenkins.
Um termo é um componente de uma equação matemática. Por exemplo, um termo em uma equação polinomial pode incluir uma combinação de variáveis e constantes.
A fórmula ARIMA incluída no algoritmo Microsoft Time Series usa termos autoregressivos e de média móvel.
Os modelos de série temporal podem ser estacionários ou não estacionários. Modelos estacionários são aqueles que revertem para uma média, embora possam ter ciclos, enquanto os modelos não estacionários não têm um foco de equilíbrio e estão sujeitos a uma maior variação ou alteração introduzida por choques ou variáveis externas.
O objetivo de diferenciar é fazer com que uma série temporal se estabilize e fique estacionária.
A ordem de diferença representa o número de vezes que a diferença entre valores é feita para uma série temporal.
O algoritmo de Série Temporal da Microsoft funciona pegando valores em uma série de dados e tentando ajustar os dados a um padrão. Se a série de dados ainda não estiver estacionária, o algoritmo aplicará uma ordem de diferença. Cada aumento na ordem da diferença tende a tornar a série temporal mais estacionária.
Por exemplo, se você tiver a série temporal (z1, z2, ..., zn) e executar cálculos usando uma ordem de diferença, obterá uma nova série (y1, y2,...., yn-1), em que yi = zi+1-zi. Quando a ordem de diferença é 2, o algoritmo gera outra série (x1, x2, ..., xn-2), com base na série y derivada da equação de primeira ordem. A quantidade correta de diferenciação depende dos dados. Uma única ordem de diferenciação é mais comum em modelos que mostram uma tendência constante; uma segunda ordem de diferenciação pode indicar uma tendência que varia com o tempo.
Por padrão, a ordem de diferença usada no algoritmo Microsoft Time Series é -1, o que significa que o algoritmo detectará automaticamente o melhor valor para a ordem de diferença. Normalmente, esse melhor valor é 1 (quando é necessário diferenciar), mas em determinadas circunstâncias o algoritmo aumentará esse valor para um máximo de 2.
O algoritmo de Série Temporal da Microsoft determina a ordem ideal de diferença ARIMA a partir dos valores de autoregressão. O algoritmo examina os valores AR e define um parâmetro oculto, ARIMA_AR_ORDER, representando a ordem dos termos AR. Esse parâmetro oculto, ARIMA_AR_ORDER, tem um intervalo de valores de -1 a 8. No valor padrão de -1, o algoritmo selecionará automaticamente a ordem de diferença apropriada.
Sempre que o valor de ARIMA_AR_ORDER for maior que 1, o algoritmo multiplica a série temporal por um termo polinomial. Se um termo da fórmula polinomial for resolvido para uma raiz de 1 ou perto de 1, o algoritmo tentará preservar a estabilidade do modelo removendo o termo e aumentando a ordem de diferença em 1. Se a ordem de diferença já estiver no máximo, o termo será removido e a ordem de diferença não será alterada.
Por exemplo, se o valor de AR = 2, o termo polinomial AR resultante poderá ter esta aparência: 1 - 1,4B + .45B^2 = (1- .9B) (1- 0,5B). Observe o termo (1- .9B) que tem uma raiz de cerca de 0,9. O algoritmo elimina esse termo da fórmula polinomial, mas não pode aumentar a ordem de diferença em um porque já está no valor máximo de 2.
É importante observar que a única maneira de forçar uma alteração na ordem de diferença é usar o parâmetro sem suporte, ARIMA_DIFFERENCE_ORDER. Esse parâmetro oculto controla quantas vezes o algoritmo executa diferenciação na série temporal e pode ser definido digitando um parâmetro de algoritmo personalizado. No entanto, não recomendamos que você altere esse valor, a menos que esteja preparado para experimentar e esteja familiarizado com os cálculos envolvidos. Observe também que atualmente não há nenhum mecanismo, incluindo parâmetros ocultos, para permitir que você controle o limite no qual o aumento da ordem de diferença é disparado.
Por fim, observe que a fórmula descrita acima é o caso simplificado, sem dicas de sazonalidade. Se forem fornecidas dicas de sazonalidade, um termo polinomial AR separado será adicionado à esquerda da equação para cada dica de sazonalidade e a mesma estratégia será aplicada para eliminar termos que possam desestabilizar a série diferente.
Personalizando o algoritmo de série temporal da Microsoft
O algoritmo Microsoft Time Series dá suporte aos seguintes parâmetros que afetam o comportamento, o desempenho e a precisão do modelo de mineração resultante.
Observação
O algoritmo Microsoft Time Series está disponível em todas as edições do SQL Server; no entanto, alguns recursos avançados, incluindo parâmetros para personalizar a análise de série temporal, têm suporte apenas em edições específicas do SQL Server. Para obter uma lista de recursos compatíveis com as edições do SQL Server, consulte recursos compatíveis com as edições do SQL Server 2012.
Detecção de sazonalidade
Os algoritmos ARIMA e ARTXP dão suporte à detecção de sazonalidade ou periodicidade. O Analysis Services usa a transformação Fast Fourier para detectar a sazonalidade antes do treinamento. No entanto, você pode afetar a detecção de sazonalidade e os resultados da análise de série temporal definindo parâmetros de algoritmo.
Ao alterar o valor de AUTODETECT_SEASONALITY, você pode influenciar o número de segmentos de tempo possíveis gerados.
Ao definir um valor ou vários valores para PERIODICITY_HINT, você pode fornecer ao algoritmo informações sobre ciclos esperados nos dados e potencialmente aumentar a precisão da detecção.
Observação
Os algoritmos ARTXP e ARIMA são muito sensíveis a indícios de sazonalidade. Portanto, fornecer a dica errada pode afetar negativamente os resultados.
Escolhendo um algoritmo e especificando a mistura de algoritmos
Por padrão, ou quando você seleciona a opção MIXED, o Analysis Services combina os algoritmos e atribui a eles o mesmo peso. No entanto, no SQL Server 2008 Enterprise, você pode especificar um algoritmo específico ou personalizar a proporção de cada algoritmo nos resultados definindo um parâmetro que pondera os resultados para a previsão de curto ou longo prazo. Por padrão, o parâmetro FORECAST_METHOD é definido como MIXED, e o Analysis Services usa algoritmos e, em seguida, pondera seus valores para maximizar os pontos fortes de cada algoritmo.
Para controlar a escolha do algoritmo, defina o parâmetro FORECAST_METHOD .
Se você quiser usar a previsão cruzada, deverá usar a opção ARTXP ou MIXED porque o ARIMA não dá suporte à previsão cruzada.
Defina o FORECAST_METHOD como ARTXP se você quiser favorecer a previsão de curto prazo.
Defina o FORECAST_METHOD como ARIMA se você quiser melhorar a previsão de longo prazo.
No SQL Server 2008 Enterprise, você também pode personalizar como o Analysis Services combina a combinação dos algoritmos ARIMA e ARTXP. Você pode controlar o ponto inicial da mistura e a taxa de alteração definindo o parâmetro PREDICTION_SMOOTHING :
Se você definir PREDICTION_SMOOTHING como 0, o modelo usará somente ARTXP.
Se você definir PREDICTION_SMOOTHING como 1, o modelo usará apenas ARIMA.
Se você definir PREDICTION_SMOOTHING como um valor entre 0 e 1, o modelo pondera o algoritmo ARTXP como uma função exponencialmente decrescente das etapas de previsão. Ao mesmo tempo, o modelo também pondera o algoritmo ARIMA como o complemento 1 do peso ARTXP. O modelo usa normalização e uma constante de estabilização para suavizar as curvas.
Em geral, se você prever até cinco intervalos de tempo, o ARTXP é quase sempre a melhor opção. No entanto, à medida que você aumenta o número de fatias de tempo a serem previstas, o ARIMA normalmente tem um desempenho melhor.
O diagrama a seguir ilustra como o modelo combina os algoritmos quando PREDICTION_SMOOTHING é definido como o valor padrão, 0,5. ARIMA e ARTXP são ponderados igualmente no início, mas à medida que o número de etapas de previsão aumenta, ARIMA é ponderado mais fortemente.
Por outro lado, o diagrama a seguir ilustra a mesclagem dos algoritmos quando PREDICTION_SMOOTHING é definido como 0,2. Para a etapa 0, o modelo pondera ARIMA como 0,2 e ARTXP como 0,8. Depois disso, o peso de ARIMA aumenta exponencialmente e o peso do ARTXP diminui exponencialmente.
Definindo parâmetros de algoritmo
A tabela a seguir descreve os parâmetros que podem ser usados com o algoritmo Microsoft Time Series.
| Parâmetro | Descrição |
|---|---|
| DETECTAR_AUTOMATICAMENTE_PERIODICIDADE | Especifica um valor numérico entre 0 e 1 que detecta a periodicidade. O padrão é 0,6. Se o valor estiver mais próximo de 0, a periodicidade será detectada apenas para dados fortemente periódicos. Definir esse valor mais próximo de 1 favorece a descoberta de muitos padrões que são quase periódicos e a geração automática de dicas de periodicidade. Observação: lidar com muitas sugestões de periodicidade provavelmente levará a tempos de treinamento de modelo significativamente mais longos, mas modelos mais precisos. |
| PENA_CUMPLEXIDADE | Controla o crescimento da árvore de decisão. O padrão é 0.1. Diminuir esse valor aumenta a chance de uma divisão. Aumentar esse valor diminui a chance de uma divisão. Observação: esse parâmetro só está disponível em algumas edições do SQL Server. |
| MÉTODO_DE_PREVISÃO | Especifica qual algoritmo usar para análise e previsão. Os valores possíveis são ARTXP, ARIMA ou MIXED. O padrão é MIXED. |
| HISTORIC_MODEL_COUNT | Especifica o número de modelos históricos que serão criados. O padrão é 1. Observação: esse parâmetro só está disponível em algumas edições do SQL Server. |
| LACUNA_DO_MODELO_HISTÓRICO | Especifica o atraso de tempo entre dois modelos históricos consecutivos. O padrão é 10. O valor representa várias unidades de tempo, em que a unidade é definida pelo modelo. Por exemplo, definir esse valor como g faz com que modelos históricos sejam criados para dados truncados por fatias de tempo em intervalos de g, 2*g, 3*g e assim por diante. Observação: esse parâmetro só está disponível em algumas edições do SQL Server. |
| SENSIBILIDADE À INSTABILIDADE | Controla o ponto em que a variação de previsão excede um determinado limite, após o qual o algoritmo ARTXP suprime previsões. O valor padrão é 1. Observação: esse parâmetro não se aplica apenas a modelos que usam ARIMA. O valor padrão de 1 fornece o mesmo comportamento do SQL Server 2005. O Analysis Services monitora o desvio padrão normalizado para cada previsão. Assim que esse valor exceder o limite de qualquer previsão, o algoritmo de série temporal retornará um NULL e interromperá o processo de previsão. Um valor de 0 interrompe a detecção de instabilidade. Isso significa que você pode criar um número infinito de previsões, independentemente da variação. Observação: esse parâmetro só pode ser modificado no SQL Server Enterprise. No SQL Server Standard, o Analysis Services usa apenas o valor padrão de 1. |
| MAXIMUM_SERIES_VALUE | Especifica o valor máximo a ser usado para previsões. Esse parâmetro é usado, juntamente com MINIMUM_SERIES_VALUE, para restringir as previsões a algum intervalo esperado. Por exemplo, você pode especificar que a quantidade de vendas prevista para qualquer dia nunca deve exceder o número de produtos no inventário. Observação: esse parâmetro só está disponível em algumas edições do SQL Server. |
| MINIMUM_SERIES_VALUE | Especifica o valor mínimo que pode ser previsto. Esse parâmetro é usado, juntamente com MAXIMUM_SERIES_VALUE, para restringir as previsões a algum intervalo esperado. Por exemplo, você pode especificar que a quantidade de vendas prevista nunca deve ser um número negativo. Observação: esse parâmetro só está disponível em algumas edições do SQL Server. |
| MINIMUM_SUPPORT | Especifica o número mínimo de fatias de tempo necessárias para gerar uma divisão em cada árvore de série temporal. O padrão é 10. |
| SUBSTITUIÇÃO_DE_VALOR_AUSENTE | Especifica como as lacunas nos dados históricos são preenchidas. Por padrão, as lacunas nos dados não são permitidas. Se os dados contiverem várias séries, a série também não poderá ter bordas irregulares. Ou seja, todas as séries devem ter os mesmos pontos de início e de término. O Analysis Services também usa o valor desse parâmetro para preencher lacunas em novos dados quando você executa um PREDICTION JOIN modelo de série temporal. A tabela a seguir lista os valores possíveis para este parâmetro:Padrão: Nenhum. Substitui valores ausentes por valores plotados ao longo da curva do modelo treinado. Anterior: Repete o valor da fatia de tempo anterior. Média: usa uma média móvel de fatias de tempo usadas no treinamento. Constante numérica: usa o número especificado para substituir todos os valores ausentes. |
| PERIODICITY_HINT | Fornece uma dica para o algoritmo quanto à periodicidade dos dados. Por exemplo, se as vendas variarem por ano e a unidade de medida na série for meses, a periodicidade será de 12. Esse parâmetro usa o formato {n [, n]}, em que n é qualquer número positivo. O n entre colchetes [] é opcional e pode ser repetido com a frequência necessária. Por exemplo, para fornecer várias dicas de periodicidade para dados fornecidos mensalmente, você pode inserir {12, 3, 1} para detectar padrões para o ano, trimestre e mês. No entanto, a periodicidade tem um forte efeito na qualidade do modelo. Se a dica que você dá for diferente da periodicidade real, seus resultados poderão ser afetados negativamente. O padrão é {1}. Observação: as chaves são necessárias. Além disso, esse parâmetro tem um tipo de dados de cadeia de caracteres. Portanto, se você digitar esse parâmetro como parte de uma instrução DMX (Data Mining Extensions), deverá colocar o número e as chaves entre aspas. |
| PREDICTION_SMOOTHING | Especifica como o modelo deve ser misturado para otimizar a previsão. Esse parâmetro só está disponível em algumas edições do SQL Server. Você pode digitar qualquer valor entre 0 e 1 ou usar um dos seguintes valores: 0: Especifica que a previsão usa somente ARTXP. A previsão é otimizada para menos previsões. 0.5: (Padrão) Especifica que, para previsão, ambos os algoritmos devem ser usados e os resultados combinados. 1: Especifica que a previsão usa somente ARIMA. O processo de previsão é otimizado para muitos prognósticos. Observação: use o parâmetro FORECAST_METHOD para controlar o treinamento. |
Bandeiras de modelagem
O algoritmo Microsoft Time Series dá suporte aos seguintes sinalizadores de modelagem. Ao criar a estrutura de mineração ou o modelo de mineração, você define sinalizadores de modelagem para especificar como os valores em cada coluna são tratados durante a análise. Para obter mais informações, consulte Sinalizadores de Modelagem (Mineração de Dados).
| Bandeira de Modelagem | Descrição |
|---|---|
| NÃO NULO | Indica que a coluna não pode conter um nulo. Um erro resultará se o Analysis Services encontrar um valor nulo durante o treinamento do modelo. Aplica-se às colunas da estrutura de mineração. |
| MODEL_EXISTENCE_ONLY | Significa que a coluna será tratada como tendo dois estados possíveis: Ausente e Existente. Um valor nulo é um valor ausente. Aplica-se a colunas de modelo de mineração. |
Requisitos
Um modelo de série temporal deve conter uma coluna de tempo de chave que contenha valores exclusivos, colunas de entrada e pelo menos uma coluna previsível.
Colunas de entrada e de previsão
O algoritmo Microsoft Time Series dá suporte aos tipos de conteúdo de coluna de entrada específicos, tipos previsíveis de conteúdo de coluna e sinalizadores de modelagem listados na tabela a seguir.
| Coluna | Tipos de conteúdo |
|---|---|
| Atributo de entrada | Contínuo, Chave, Tempo de Chave e Tabela |
| Atributo previsível | Contínua, Tabela |
Observação
Tipos de conteúdo cíclico e ordenado têm suporte, mas o algoritmo os trata como valores discretos e não executa processamento especial.
Consulte Também
Algoritmo de Série TemporalExemplos de Consultas de Modelos de Série TemporalConteúdo dos Modelos de Mineração para Modelos de Séries Temporais (Analysis Services – Data Mining)