Partilhar via


Algoritmo de Série Temporal da Microsoft

O algoritmo Microsoft Time Series fornece algoritmos de regressão otimizados para a previsão de valores contínuos, como vendas de produtos, ao longo do tempo. Enquanto outros algoritmos da Microsoft, como árvores de decisão, exigem colunas adicionais de novas informações como entrada para prever uma tendência, um modelo de série temporal não. Um modelo de série temporal pode prever tendências com base apenas no conjunto de dados original usado para criar o modelo. Você também pode adicionar novos dados ao modelo ao fazer uma previsão e incorporar automaticamente os novos dados na análise de tendência.

O diagrama a seguir mostra um modelo típico para prever as vendas de um produto em quatro regiões de vendas diferentes ao longo do tempo. O modelo mostrado no diagrama mostra as vendas para cada região plotadas como linhas vermelhas, amarelas, roxas e azuis. A linha para cada região tem duas partes:

  • As informações históricas aparecem à esquerda da linha vertical e representam os dados que o algoritmo usa para criar o modelo.

  • As informações previstas aparecem à direita da linha vertical e representam a previsão que o modelo faz.

A combinação dos dados de origem e dos dados de previsão é chamada de série.

Um exemplo de uma série temporal

Um recurso importante do algoritmo Microsoft Time Series é que ele pode executar previsão cruzada. Se você treinar o algoritmo com duas séries separadas, mas relacionadas, poderá usar o modelo resultante para prever o resultado de uma série com base no comportamento da outra série. Por exemplo, as vendas observadas de um produto podem influenciar as vendas previstas de outro produto. A previsão cruzada também é útil para criar um modelo geral que pode ser aplicado a várias séries. Por exemplo, as previsões para uma determinada região são instáveis porque a série não tem dados de boa qualidade. Você pode treinar um modelo geral em uma média de todas as quatro regiões e aplicar o modelo à série individual para criar previsões mais estáveis para cada região.

Exemplo

A equipe de gerenciamento da Adventure Works Cycles quer prever as vendas mensais de bicicletas para o próximo ano. A empresa está especialmente interessada em saber se a venda de um modelo de bicicleta pode ser usada para prever a venda de outro modelo. Usando o algoritmo Microsoft Time Series em dados históricos dos últimos três anos, a empresa pode produzir um modelo de mineração de dados que prevê vendas futuras de bicicletas. Além disso, a empresa pode executar previsões cruzadas para ver se as tendências de vendas de modelos de bicicleta individuais estão relacionadas.

A cada trimestre, a empresa planeja atualizar o modelo com dados de vendas recentes e atualizar suas previsões para modelar tendências recentes. Para corrigir os repositórios que não atualizam com precisão ou consistência os dados de vendas, eles criarão um modelo de previsão geral e usarão isso para criar previsões para todas as regiões.

Como o algoritmo funciona

No SQL Server 2005, o algoritmo Microsoft Time Series usou um único algoritmo, ARTXP. O algoritmo ARTXP foi otimizado para previsões de curto prazo e, portanto, previu o próximo valor provável em uma série. A partir do SQL Server 2008, o algoritmo Microsoft Time Series usa o algoritmo ARTXP e um segundo algoritmo, ARIMA. O algoritmo ARIMA é otimizado para previsão de longo prazo. Para obter uma explicação detalhada sobre a implementação dos algoritmos ARTXP e ARIMA, consulte a Referência Técnica do Algoritmo de Série Temporal da Microsoft.

Por padrão, o algoritmo Microsoft Time Series usa uma combinação dos algoritmos quando analisa padrões e faz previsões. O algoritmo treina dois modelos separados nos mesmos dados: um modelo usa o algoritmo ARTXP e um modelo usa o algoritmo ARIMA. Em seguida, o algoritmo combina os resultados dos dois modelos para produzir a melhor previsão em relação a um número variável de fatias de tempo. Como o ARTXP é melhor para previsões de curto prazo, ele é ponderado mais fortemente no início de uma série de previsões. No entanto, à medida que os intervalos de tempo que você está prevendo se movem ainda mais para o futuro, o ARIMA ganha maior relevância.

Você também pode controlar a combinação de algoritmos para favorecer previsões de curto ou longo prazo nas séries temporais. A partir do SQL Server 2008 Standard, você pode especificar que o algoritmo de Série Temporal da Microsoft use uma das seguintes configurações:

  • Use apenas ARTXP para previsão de curto prazo.

  • Use apenas ARIMA para previsão de longo prazo.

  • Use a combinação padrão dos dois algoritmos.

A partir do SQL Server 2008 Enterprise, você pode personalizar como o algoritmo do Microsoft Time Series combina os modelos para previsão. Quando você usa um modelo misto, o algoritmo Microsoft Time Series mistura os dois algoritmos da seguinte maneira:

  • Somente ARTXP é sempre usado para fazer o primeiro par de previsões.

  • Após as primeiras previsões, uma combinação de ARIMA e ARTXP é usada.

  • À medida que o número de etapas de previsão aumenta, as previsões dependem mais do ARIMA até que ARTXP não seja mais usado.

  • Você controla o ponto de combinação, a taxa na qual o peso do ARTXP é reduzido e o peso do ARIMA é aumentado definindo o parâmetro PREDICTION_SMOOTHING.

Ambos os algoritmos podem detectar sazonalidade em dados em vários níveis. Por exemplo, seus dados podem conter ciclos mensais aninhados em ciclos anuais. Para detectar esses ciclos sazonais, você pode fornecer uma dica de periodicidade ou especificar que o algoritmo deve detectar periodicidade automaticamente.

Além da periodicidade, há vários outros parâmetros que controlam o comportamento do algoritmo Microsoft Time Series quando ele detecta periodicidade, faz previsões ou analisa casos. Para obter informações sobre como definir parâmetros de algoritmo, consulte a Referência Técnica do Algoritmo de Série Temporal da Microsoft.

Dados necessários para modelos de série temporal

Ao preparar dados para uso no treinamento de qualquer modelo de mineração de dados, certifique-se de entender os requisitos para o modelo específico e como os dados são usados.

Cada modelo de previsão deve conter uma série de casos, que é a coluna que especifica as fatias de tempo ou outras séries sobre as quais a alteração ocorre. Por exemplo, os dados no diagrama anterior mostram a série de vendas de bicicletas históricas e previstas durante um período de vários meses. Para esse modelo, cada região é uma série e a coluna de data contém a série temporal, que também é a série de casos. Em outros modelos, a série de casos pode ser um campo de texto ou algum identificador, como uma ID do cliente ou uma ID de transação. No entanto, um modelo de série temporal deve sempre usar uma data, hora ou algum outro valor numérico exclusivo para sua série de casos.

Os requisitos para um modelo de série temporal são os seguintes:

  • Uma única coluna de tempo chave Cada modelo deve conter uma coluna numérica ou de data usada como a série temporal, que define as fatias de tempo que o modelo usará. O tipo de dados para a coluna de tempo chave pode ser um tipo de dado datetime ou um tipo de dado numérico. No entanto, a coluna deve conter valores contínuos e os valores devem ser exclusivos para cada série. A série de casos para um modelo de série temporal não pode ser armazenada em duas colunas, como uma coluna "Ano" e uma coluna "Mês".

  • Uma coluna previsível Cada modelo deve conter pelo menos uma coluna previsível em torno da qual o algoritmo criará o modelo de série temporal. O tipo de dados da coluna previsível deve ter valores contínuos. Por exemplo, você pode prever como os atributos numéricos, como renda, vendas ou temperatura, mudam ao longo do tempo. No entanto, você não pode usar uma coluna que contenha valores discretos, como status de compra ou nível de escolaridade, como a coluna previsível.

  • Uma coluna de chave de série opcional Cada modelo pode ter uma coluna de chave adicional que contém valores exclusivos que identificam uma série. A coluna de chave de série opcional deve conter valores exclusivos. Por exemplo, um único modelo pode conter vendas para muitos modelos de produtos, desde que haja apenas um registro para cada nome de produto para cada fatia de tempo.

Você pode definir dados de entrada para o modelo do Microsoft Time Series de várias maneiras diferentes. No entanto, como o formato dos casos de entrada afeta a definição do modelo de mineração, você deve considerar suas necessidades comerciais e preparar seus dados adequadamente. Os dois exemplos a seguir ilustram como os dados de entrada afetam o modelo. Em ambos os exemplos, o modelo de mineração concluído contém padrões para quatro séries distintas:

  • Vendas do produto A

  • Vendas do Produto B

  • Volume do Produto A

  • Volume do Produto B

Em ambos os exemplos, você pode prever novas vendas futuras e volume para cada produto. Não é possível prever novos valores para o produto ou para o tempo.

Exemplo 1: conjunto de dados de série temporal com série representada como valores de coluna

Este exemplo usa a seguinte tabela de casos de entrada:

TimeID Produto Vendas Volume
1/2001 Um 1000 600
2/2001 Um 1100 500
1/2001 B 500 900
2/2001 B 300 890

A coluna TimeID na tabela contém um identificador de tempo e tem duas entradas para cada dia. A coluna TimeID torna-se a série temporal. Portanto, você designaria essa coluna como a coluna chave de tempo para o modelo de série temporal.

A coluna Produto define um produto no banco de dados. Esta coluna contém a série de produtos. Portanto, você designaria essa coluna como uma segunda chave para o modelo de série temporal.

A coluna Vendas descreve os lucros brutos do produto especificado por um dia e a coluna Volume descreve a quantidade do produto especificado que permanece no depósito. Essas duas colunas contêm os dados usados para treinar o modelo. Vendas e Volume podem ser atributos previsíveis para cada série na coluna Produto.

Exemplo 2: conjunto de dados de série temporal com cada série em coluna separada

Embora este exemplo use basicamente os mesmos dados de entrada do primeiro exemplo, os dados de entrada são estruturados de forma diferente, conforme mostrado na tabela a seguir:

TimeID A_Vendas A_Volume B_Sales B_Volume
1/2001 1000 600 500 900
2/2001 1100 500 300 890

Nesta tabela, a coluna TimeID ainda contém a série de casos para o modelo de série temporal, que você designa como a coluna chave de tempo. No entanto, as colunas Vendas e Volume anteriores agora são divididas em duas colunas e cada uma dessas colunas é precedida pelo nome do produto. Como resultado, existe apenas uma única entrada para cada dia na coluna TimeID. Isso cria um modelo de série temporal que conteria quatro colunas previsíveis: A_Sales, A_Volume, B_Sales e B_Volume.

Além disso, como você separou os produtos em colunas diferentes, não é necessário especificar uma coluna de chave de série adicional. Todas as colunas no modelo são uma coluna de série de casos ou uma coluna previsível.

Exibindo um modelo de série temporal

Depois que o modelo for treinado, os resultados serão armazenados como um conjunto de padrões, que você pode explorar ou usar para fazer previsões.

Para explorar o modelo, você pode usar o Visualizador de Séries Temporais. O visualizador inclui um gráfico que exibe previsões futuras e uma exibição de árvore das estruturas periódicas nos dados.

Se você quiser saber mais sobre como as previsões são calculadas, navegue pelo modelo no Visualizador de Árvore de Conteúdo Genérico da Microsoft. O conteúdo armazenado para o modelo inclui detalhes como as estruturas periódicas detectadas pelos algoritmos ARIMA e ARTXP, a equação usada para misturar os algoritmos e outras estatísticas.

Criando previsões de série temporal

Por padrão, quando você exibe um modelo de série temporal, o Analysis Services mostra cinco previsões para a série. No entanto, você pode criar consultas para retornar um número variável de previsões e pode adicionar colunas extras às previsões para retornar estatísticas descritivas. Para obter informações sobre como criar consultas em um modelo de série temporal, consulte exemplos de consulta de modelo de série temporal. Para obter exemplos de como usar DMX (Extensões de Mineração de Dados) para fazer previsões de série temporal, consulte PredictTimeSeries (DMX).

Ao usar o algoritmo Microsoft Time Series para fazer previsões, você deve considerar as seguintes restrições e requisitos adicionais:

  • A previsão cruzada só está disponível quando você usa um modelo misto ou um modelo baseado no algoritmo ARTXP. Se você usar um modelo baseado apenas no algoritmo ARIMA, a previsão cruzada não será possível.

  • Um modelo de série temporal pode fazer previsões diferentes, às vezes significativamente, dependendo do sistema operacional de 64 bits que o servidor usa. Essas diferenças ocorrem devido à maneira como um sistema baseado em Itanium representa e manipula números para aritmética de ponto flutuante, que difere da maneira como um sistema baseado em x64 faz esses cálculos. Como os resultados da previsão podem ser específicos para o sistema operacional, recomendamos que você avalie modelos no mesmo sistema operacional que você usará em produção.

Observações

  • Não dá suporte ao uso da PMML (Predictive Model Markup Language) para criar modelos de mineração.

  • Dá suporte ao uso de modelos de mineração OLAP.

  • Não dá suporte à criação de dimensões de mineração de dados.

  • Permite detalhamento por meio de drill-through.

Consulte Também

Algoritmos de mineração de dados (Analysis Services – Mineração de Dados)
Procurar um modelo usando o Visualizador de Séries Temporais da Microsoft
Referência técnica do algoritmo de série temporal da Microsoft
Exemplos de consulta de modelo de série temporal
Conteúdo do modelo de mineração para modelos de série temporal (Analysis Services – Mineração de dados)