Referência técnica do algoritmo MTS
O algoritmo Microsoft Time Series inclui dois algoritmos diferentes:
O algoritmo ARTXP, apresentado no SQL Server 2005, foi otimizado para prever o próximo valor provável em uma série.
O algoritmo ARIMA foi adicionado no SQL Server 2008 para melhorar a exatidão em previsão de longo prazo.
Por padrão, o Analysis Services usa cada algoritmo separadamente para treinar o modelo e depois mescla os resultados para produzir a melhor previsão para um número variável de previsões. Você também pode usar apenas um dos algoritmos com base nos seus dados e requisitos de previsão. No SQL Server 2008 Enterprise, é possível personalizar também o ponto de corte que controla a mescla 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 com a configuração de parâmetros para ajustar a análise e os resultados da previsão.
Implementação dos algoritmos de série temporal
O Microsoft Research desenvolveu o algoritmo ARTXP com base no algoritmo Árvores de Decisão da Microsoft, que é um modelo de árvore de regressão automática para representar dados de série temporal periódica. O algoritmo ARTXP relaciona um número variável de itens passados para cada item atual que está sendo previsto. O nome, ARTXP, deve-se ao fato de o algoritmo ART (autoregressive tree method, método de árvore de regressão automática) ser aplicado a vários estados anteriores desconhecidos. Para obter uma explicação detalhada do algoritmo ARTXP, consulte Autoregressive Tree Models for Time-Series Analysis.
O algoritmo ARIMA é usado para previsão de longo prazo. Essa é uma implementação do algoritmo ARIMA desenvolvida por Box e Jenkins. ARIMA (autoregressive integrated moving average, média de movimentação integrada de regressão automática) é um método famoso para determinar dependências em observações feitas consecutivamente em um determinado tempo. Ele também aceita periodicidade multiplicativa. O algoritmo ARIMA usa termos de regressão automática e de média de movimentação.
Embora o algoritmo ARTXP aceite previsão cruzada, o algoritmo ARIMA não aceita. Portanto, a previsão cruzada está disponível somente quando você usa uma mescla de algoritmos ou configura um modelo para usar somente ARTXP.
Personalizando o algoritmo MTS
O algoritmo Microsoft Time Series aceita diversos parâmetros que afetam o comportamento, o desempenho e a exatidão do modelo de mineração resultante.
Detecção de periodicidade
Ambos os algoritmos oferecem suporte a detecção de sazonalidade ou periodicidade. O Analysis Services usa transformação Fast Fourier para detectar a periodicidade antes do treinamento.
Para obter os melhores resultados, você pode controlar a detecção de periodicidade configurando parâmetros de algoritmo. Ao alterar o valor de AUTODETECT_SEASONALITY, você pode influenciar o número de segmentos de tempo possíveis que são gerados. Ao definir um ou vários valores para PERIODICITY_HINT, você pode fornecer informações ao algoritmo sobre períodos de repetição conhecidos e aumentar a precisão da detecção.
Observação |
---|
Ambos os algoritmos ARTXP e ARIMA são sensíveis a dicas de periodicidade. Portanto, fornecer uma dica incorreta pode afetar os resultados de forma adversa. |
Mesclando os algoritmos
Por padrão, o Analysis Services combina e pondera igualmente os algoritmos. Entretanto, no SQL Server 2008 Enterprise, você pode personalizar a mescla dos resultados selecionando a opção MIXED e configurando um parâmetro que pondera os resultados em com relação à previsão de curto ou longo prazo.
Se quiser usar a previsão cruzada, deve usar a opção ARTXP ou MIXED, pois o ARIMA não oferece suporte a esse tipo de previsão.
Para controlar a escolha do algoritmo, você define o parâmetro FORECAST_METHOD. Por padrão, o parâmetro FORECAST_METHOD está definido como MIXED e o Analysis Services usa ambos os algoritmos e depois pondera seus valores para maximizar a intensidade de cada algoritmo. No entanto, é possível definir o FORECAST_METHOD como ARTXP se quiser usar apenas o algoritmo ARTXP, ou como ARIMA, se quiser usar somente o algoritmo ARIMA.
No SQL Server 2008 Enterprise, você pode personalizar também como o Analysis Services mescla a combinação dos algoritmos ARIMA e ARTXP. É possível controlar o ponto inicial da mescla e a taxa de alteração definindo o parâmetro PREDICTION_SMOOTHING:
Se você definir PREDICTION_SMOOTHING como 0, o modelo se tornará ARTXP puro.
Se você definir PREDICTION_SMOOTHING como 1, o modelo se tornará ARIMA puro.
Se você definir set PREDICTION_SMOOTHING como um valor entre 0 e 1, o modelo irá ponderar o algoritmo ARTXP como uma função das etapas de previsão que diminui exponencialmente. Ao mesmo tempo, o modelo também pondera o algoritmo ARIMA como o complemento 1 do peso do ARTXP . O modelo usa a normalização e uma constante de estabilização para amenizar as curvas.
Em geral, se você prever até 5 intervalos de tempo, o ARTXP quase sempre será a melhor escolha. Porém, à medida que você aumentar o número de intervalos de tempo para previsão, o ARIMA normalmente executará melhor.
O diagrama a seguir ilustra como o modelo mescla os algoritmos quando PREDICTION_SMOOTHING é definido como o valor padrão, 0,5. Primeiramente, o ARIMA e o ARTXP são ponderados igualmente; mas à medida que as etapas de previsão aumentam, o ARIMA é ponderado com um peso maior.
Em contraste, o diagrama a seguir ilustra a mesclagem dos algoritmos quando PREDICTION_SMOOTHING é definido como 0,2. Para a etapa 0, o modelo pondera o ARIMA como 0,2 e o ARTXP como 0,8. Depois disso, o peso do 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 |
---|---|
AUTO_DETECT_PERIODICITY |
Especifica um valor numérico entre 0 e 1 que detecta periodicidade. O padrão é 0,6. Se o valor for mais próximo a 0, a periodicidade será detectada somente para dados fortemente periódicos. Definir esse valor mais próximo a 1 favorece a descoberta de vários padrões que são praticamente periódicos e a geração automática de dicas de periodicidade.
Observação
Lidar com muitas dicas de periodicidade provavelmente resultará em tempo de treinamento de modelos significativamente maior, mas também em modelos mais precisos.
|
COMPLEXITY_PENALTY |
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 está disponível somente no SQL Server Enterprise.
|
FORECAST_METHOD |
Especifica qual algoritmo deve ser usado para análise e previsão. Os valores possíveis são ARTXP, ARIMA e MIXED. O padrão é MIXED. |
HISTORIC_MODEL_COUNT |
Especifica o número de modelos de histórico que será criado. O padrão é 1.
Observação
Esse parâmetro está disponível somente no SQL Server Enterprise.
|
HISTORICAL_MODEL_GAP |
Especifica o intervalo de tempo entre dois modelos de histórico consecutivos. O padrão é 10. O valor representa um número de unidades de tempo, onde a unidade é definida pelo modelo. Por exemplo, a configuração desse valor como g resulta na criação de modelos de histórico para dados truncados por frações de tempo em intervalos de g, 2*g, 3*g e assim por diante.
Observação
Esse parâmetro está disponível somente no SQL Server Enterprise.
|
INSTABILITY_SENSITIVITY |
Controla o ponto no qual a variância de previsão excede certo limite e o algoritmo ARTXP suprime previsões. O valor padrão é 1.
Observação
Este parâmetro só se aplica a ARTXP e, portanto, não se aplica a modelos que são criados usando só o algoritmo ARIMA. Se aplicado a um modelo MIXED, o parâmetro se aplica só à parte ARTXP do modelo.
O valor padrão 1 cria o mesmo comportamento para modelos ARTXP da SQL Server 2005. O Analysis Services monitora o desvio padrão normalizado para cada previsão. Assim que os desvios padronizados de qualquer previsão excedem o limite, o algoritmo de série temporal retorna NULL e interrompe a 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 pode ser modificado somente no SQL Server Enterprise. No SQL Server Standard, o Analysis Services usa somente o valor padrão 1.
|
MAXIMUM_SERIES_VALUE |
Especifica o valor máximo para usar em 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 está disponível somente no SQL Server Enterprise.
|
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 está disponível somente no SQL Server Enterprise.
|
MINIMUM_SUPPORT |
Especifica o número mínimo de intervalos de tempo necessário para gerar uma divisão em cada árvore de série temporal. O padrão é 10. |
MISSING_VALUE_SUBSTITUTION |
Especifica como falhas em dados do histórico são resolvidas. Por padrão, não são permitidas falhas nos dados. A tabela a seguir lista os possíveis valores para esse parâmetro:
ValorDescrição
PreviousRepete o valor do intervalo de tempo anterior.
MeanUsa uma média de movimentação de intervalos de tempo usada no treinamento.
Numeric constantUsa o número especificado para substituir todos os valores ausentes.
NoneSubstitui valores ausentes por valores plotados ao longo da curva do modelo treinado. Esse é o valor padrão.
Se seus dados contêm várias séries, as séries também não podem ter extremidades desbalanceadas. Isso quer dizer que todas as séries devem ter os mesmos pontos de início e de extremidade. O Analysis Services também usa o valor desse parâmetro para preencher as falhas em novos dados quando você realiza uma PREDICTION JOIN no modelo de série temporal. |
PERIODICITY_HINT |
Fornece uma dica para o algoritmo sobre a periodicidade dos dados. Por exemplo, se as vendas variam de acordo com o ano e a unidade de medida da série são meses, a periodicidade é 12. Esse parâmetro tem o formato {n [, n]}, onde n é qualquer número positivo. n nos colchetes [] é opcional e pode ser repetido sempre que necessário. Por exemplo, para criar várias dicas de periodicidade para dados fornecidos mensalmente, você pode inserir {12, 3, 1} para detectar parâmetros para o ano, trimestre e mês. Entretanto, a periodicidade tem um efeito mais visível na qualidade do modelo. Se a dica que você dá diferir da periodicidade atual, seus resultados poderão ser afetados adversamente. 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. Com isso, se você digitar esse parâmetro como parte de uma instrução DMX (Data Mining Extensions), deve colocar o número e as chaves entre aspas.
|
PREDICTION_SMOOTHING |
Especifica como o modelo deveria ser mesclado para otimizar a previsão. Você pode digitar qualquer valor entre 0 e 1 ou pode usar um dos seguintes valores:
Observação
Use o parâmetro FORECAST_METHOD para controlar o treinamento.
ValueDescrição
0Especifica que a previsão usa somente ARTXP. A previsão é otimizada para poucos casos.
1Especifica que a previsão usa somente ARIMA. A previsão é otimizada para vários casos.
0.5(Default) Especifica que ambos os algoritmos da previsão devem ser usados para a previsão e os resultados mesclados.
Observação
Esse parâmetro está disponível somente no SQL Server Enterprise.
|
Sinalizadores de modelagem
O algoritmo Microsoft Time Series oferece suporte aos seguintes sinalizadores de modelagem. Ao criar um modelo ou uma estrutura de mineração, você define sinalizadores de modelagem para especificar como os valores em cada coluna são manipulados durante a análise. Para obter mais informações, consulte Sinalizadores de modelagem (Mineração de Dados).
Sinalizador de modelagem |
Descrição |
---|---|
NOT NULL |
Indica que a coluna não pode conter um nulo. Um erro ocorrerá se o Analysis Services encontrar um valor nulo durante o treinamento do modelo. Aplica-se às colunas de estrutura de mineração. |
MODEL_EXISTENCE_ONLY |
Significa que a coluna será tratada como tendo dois estados possíveis: Ausente e Existente. Nulo é um valor ausente. Aplica-se às colunas de modelo de mineração. |
Requisitos
Um modelo de série temporal deve conter uma coluna Key Time com valores únicos, colunas de entrada e, pelo menos, uma coluna previsível.
Colunas de entrada e colunas previsíveis
O algoritmo Microsoft Time Series oferece suporte a tipos de conteúdo da coluna de entrada, tipos de conteúdo da coluna previsível e sinalizadores de modelagem específicos, relacionados na tabela a seguir:
Coluna |
Tipos de conteúdo |
---|---|
Atributo de entrada |
Continuous, Key, Key Time e Table |
Atributo previsível |
Continuous e Table |
Observação |
---|
Os 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. |