Compartilhar via


Exemplos de consulta de modelo de série temporal

Ao criar uma consulta em relação a um modelo de mineração de dados, você pode criar uma consulta de conteúdo, que fornece detalhes sobre os padrões descobertos na análise, ou você pode criar uma consulta de previsão, que usa os padrões no modelo para fazer previsões para novos dados. Por exemplo, uma consulta de conteúdo para um modelo de série temporal pode fornecer detalhes adicionais sobre as estruturas periódicas detectadas, enquanto uma consulta de previsão pode fornecer previsões para as próximas 5 a 10 fatias de tempo. Você também pode recuperar metadados sobre o modelo usando uma consulta.

Esta seção explica como criar ambos os tipos de consultas para modelos baseados no algoritmo Microsoft Time Series.

Consultas de conteúdo

Recuperando sugestões de periodicidade para o modelo

Recuperando a equação para um modelo ARIMA

Recuperando a equação para um modelo ARTxp

Consultas de previsão

Noções básicas sobre quando substituir e quando estender dados de série temporal

Fazendo previsões com EXTEND_MODEL_CASES

Fazendo previsões com REPLACE_MODEL_CASES

Substituição de valor ausente em modelos de série temporal

Obtendo informações sobre um modelo de série temporal

Uma consulta de conteúdo de modelo pode fornecer informações básicas sobre o modelo, como os parâmetros usados quando o modelo foi criado, a hora em que o modelo foi processado pela última vez. O exemplo a seguir ilustra a sintaxe básica para consultar o conteúdo do modelo usando os conjuntos de linhas de esquema de mineração de dados.

Consulta de exemplo 1: Recuperando dicas de periodicidade para o modelo

Você pode recuperar as periodicidades encontradas na série temporal consultando a árvore ARIMA ou a árvore ARTXP. No entanto, as periodicidades no modelo concluído podem não ser iguais aos períodos especificados como dicas quando você criou o modelo. Para recuperar as dicas fornecidas como parâmetros ao criar o modelo, você pode consultar o conjunto de linhas de esquema de conteúdo do modelo de mineração usando a seguinte instrução DMX:

SELECT MINING_PARAMETERS   
FROM $system.DMSCHEMA_MINING_MODELS  
WHERE MODEL_NAME = '<model name>'  

Resultados parciais:

PARÂMETROS_DE_MINERAÇÃO
COMPLEXITY_PENALTY=0,1,MINIMUM_SUPPORT=10,PERIODICITY_HINT={1,3},....

A dica de periodicidade padrão é {1} e aparece em todos os modelos; esse modelo de exemplo foi criado com uma dica adicional que pode não estar presente no modelo final.

Observação

Os resultados foram truncados aqui para facilitar a leitura.

Consulta de exemplo 2: recuperando a equação para um modelo ARIMA

Você pode recuperar a equação de um modelo ARIMA consultando qualquer nó em uma árvore individual. Lembre-se de que cada árvore dentro de um modelo ARIMA representa uma periodicidade diferente e, se houver várias séries de dados, cada série de dados terá seu próprio conjunto de árvores de periodicidade. Portanto, para recuperar a equação de uma série de dados específica, você deve identificar a árvore primeiro.

Por exemplo, o prefixo TA informa que o nó faz parte de uma árvore ARIMA, enquanto o prefixo TS é usado para uma árvore ARTXP. Você pode encontrar todas as árvores raiz ARIMA consultando o conteúdo do modelo para nós com um valor de NODE_TYPE de 27. Você também pode usar o valor de ATTRIBUTE_NAME para localizar o nó raiz ARIMA para uma série de dados específica. Este exemplo de consulta localiza os nós ARIMA que representam as quantidades vendidas do modelo R250 na região da Europa.

SELECT NODE_UNIQUE_NAME  
FROM Forecasting.CONTENT  
WHERE ATTRIBUTE_NAME = 'R250 Europe: Quantity"  
AND NODE_TYPE = 27  

Usando este ID do nó, você pode obter informações sobre a equação ARIMA para essa árvore. A instrução DMX a seguir recupera a forma curta da equação ARIMA para a série de dados. Ele também recupera o intercepto da tabela aninhada, NODE_DISTRIBUTION. Neste exemplo, a equação é obtida referenciando a ID exclusiva do nó TA00000007. No entanto, talvez seja necessário usar um ID de nó diferente e obter resultados ligeiramente diferentes do seu modelo.

SELECT FLATTENED NODE_CAPTION as [Short equation],   
(SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE   
FROM NODE_DISTRIBUTION) as t  
FROM Forecasting.CONTENT  
WHERE NODE_NAME = 'TA00000007'  

Resultados do exemplo:

Equação curta t.ATTRIBUTE_NAME t.ATTRIBUTE_VALUE
ARIMA (2,0,7)x(1,0,2)(12) R250 Europa:Quantidade (Interceptação) 15.24....
ARIMA (2,0,7)x(1,0,2)(12) R250 Europa:Quantidade(Periodicidade) 1
ARIMA (2,0,7)x(1,0,2)(12) R250 Europa:Quantidade(Periodicidade) 12

Para obter mais informações sobre como interpretar essas informações, consulte Conteúdo do Modelo de Mineração para Modelos de Série Temporal (Analysis Services – Mineração de Dados).

Consulta de exemplo 3: recuperando a equação para um modelo ARTXP

Para um modelo ARTxp, informações diferentes são armazenadas em cada nível da árvore. Para obter mais informações sobre a estrutura de um modelo ARTxp e como interpretar as informações na equação, consulte o Conteúdo do Modelo de Mineração para Modelos de Série Temporal (Analysis Services – Mineração de Dados).

A instrução DMX a seguir recupera informações de uma parte da árvore ARTxp que representa a quantidade de vendas para o modelo R250 na Europa.

Observação

O nome da coluna de tabela aninhada, VARIANCE, deve ser colocado entre colchetes para distingui-lo da palavra-chave reservada de mesmo nome. As colunas de tabela aninhadas, PROBABILIDADE e SUPORTE, não estão incluídas porque estão em branco na maioria dos casos.

SELECT NODE_CAPTION as [Split information],   
(SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE,  
   [VARIANCE]  
   FROM NODE_DISTRIBUTION) AS t  
FROM Forecasting.CONTENT  
WHERE NODE_ATTRIBUTE_NAME = 'R250 Europe:Quantity'  
AND NODE_TYPE = 15  

Para obter mais informações sobre como interpretar essas informações, consulte Conteúdo do Modelo de Mineração para Modelos de Série Temporal (Analysis Services – Mineração de Dados).

Criando previsões em um modelo de série temporal

A partir do SQL Server 2008 Enterprise, você pode adicionar novos dados a um modelo de série temporal e incorporar automaticamente os novos dados ao modelo. Adicione novos dados a um modelo de mineração de série temporal de duas maneiras:

  • Use um PREDICTION JOIN para unir dados em uma fonte externa aos dados de treinamento.

  • Use uma consulta de previsão singleton para fornecer dados uma fatia de cada vez. Para obter informações sobre como criar uma consulta de previsão singleton, consulte Interfaces de Consulta de Mineração de Dados.

Noções básicas sobre o comportamento de operações de substituição e extensão

Ao adicionar novos dados a um modelo de série temporal, você pode especificar se deseja estender ou substituir os dados de treinamento:

  • Estender: Quando você estende uma série de dados, o Analysis Services adiciona os novos dados ao final dos dados de treinamento existentes. O número de casos de treinamento também aumenta.

    Estender os casos de modelo é útil para atualizar continuamente o modelo com novos dados. Por exemplo, se você quiser fazer o conjunto de treinamento crescer ao longo do tempo, basta estender o modelo.

    Para estender os dados, crie um PREDICTION JOIN modelo de série temporal, especifique a fonte dos novos dados e use o EXTEND_MODEL_CASES argumento.

  • Substituir: Quando você substitui os dados na série de dados, o Analysis Services mantém o modelo treinado, mas usa os novos valores de dados para substituir alguns ou todos os casos de treinamento existentes. Portanto, o tamanho dos dados de treinamento nunca é alterado, mas os casos em si estão continuamente sendo substituídos por dados mais recentes. Se você fornecer dados novos suficientes, poderá substituir os dados de treinamento por uma série completamente nova.

    Substituir os casos de modelo é útil quando você deseja treinar um modelo em um conjunto de casos e, em seguida, aplicar esse modelo a uma série de dados diferente.

    Para substituir os dados, crie um PREDICTION JOIN modelo de série temporal, especifique a fonte dos novos dados e use o REPLACE_MODEL_CASES argumento.

Observação

Você não pode fazer previsões históricas ao adicionar novos dados.

Independentemente de você estender ou substituir os dados de treinamento, as previsões sempre começam no carimbo de data/hora que encerra o conjunto de treinamento original. Em outras palavras, se os novos dados contiverem n fatias de tempo e você solicitar previsões para as etapas de tempo de 1 a n, as previsões coincidirão com o mesmo período que os novos dados e você não obterá novas previsões.

Para obter novas previsões para períodos de tempo que não se sobrepõem aos novos dados, você deve iniciar previsões no momento da fatia n+1 ou garantir que você solicite fatias de tempo adicionais.

Por exemplo, suponha que o modelo existente tenha seis meses de dados. Você deseja estender esse modelo adicionando os números de vendas dos últimos três meses. Ao mesmo tempo, você deseja fazer uma previsão sobre os próximos três meses. Para obter apenas as novas previsões quando você adicionar os novos dados, especifique o ponto inicial como a fatia de tempo 4 e o ponto final como a fatia de tempo 7. Você também pode solicitar um total de seis previsões, mas as fatias de tempo para os três primeiros se sobrepõem aos novos dados recém-adicionados.

Para obter exemplos de consulta e mais informações sobre a sintaxe para usar REPLACE_MODEL_CASES e EXTEND_MODEL_CASES, consulte PredictTimeSeries (DMX).

Fazendo previsões com EXTEND_MODEL_CASES

O comportamento de previsão difere dependendo de você estender ou substituir os casos de modelo. Quando você estende um modelo, os novos dados são anexados ao final da série e o tamanho do conjunto de treinamento aumenta. No entanto, as fatias de tempo usadas para consultas de previsão sempre começam no final da série original. Portanto, se você adicionar três novos pontos de dados e solicitar seis previsões, as três primeiras previsões retornarão incluindo os novos dados. Nesse caso, o Analysis Services retorna os novos pontos de dados reais em vez de fazer uma previsão, até que todos os novos pontos de dados sejam usados. Em seguida, o Analysis Services faz previsões com base na série composta.

Esse comportamento permite adicionar novos dados e mostrar os números reais de vendas no gráfico de previsão, em vez de ver projeções.

Por exemplo, para adicionar três novos pontos de dados e fazer três novas previsões, você faria o seguinte:

  • Crie um PREDICTION JOIN em um modelo de série temporal e especifique a fonte de novos dados de três meses.

  • Solicite previsões para seis fatias de tempo. Para fazer isso, especifique seis fatias de tempo, em que o ponto inicial é a fatia de tempo 1 e o ponto final é a fatia de tempo 7. Isso é verdade apenas para EXTEND_MODEL_CASES.

  • Para obter apenas as novas previsões, especifique o ponto inicial como 4 e o ponto final como 7.

  • Você deve usar o argumento EXTEND_MODEL_CASES.

    Os números reais de vendas são retornados para as três primeiras fatias de tempo e as previsões com base no modelo estendido são retornadas para as próximas três fatias de tempo.

Fazendo previsões com REPLACE_MODEL_CASES

Quando você substitui os casos em um modelo, o tamanho do modelo permanece o mesmo, mas o Analysis Services substitui os casos individuais no modelo. Isso é útil para previsão cruzada e cenários em que manter o conjunto de dados de treinamento em um tamanho consistente é importante.

Por exemplo, uma de suas lojas tem dados de vendas insuficientes. Você pode criar um modelo geral com uma média de vendas para todas as lojas em uma determinada região e, em seguida, treinar um modelo. Em seguida, para fazer previsões para a loja sem dados de vendas suficientes, crie um PREDICTION JOIN com base nos novos dados de vendas apenas para essa loja. Quando você faz isso, o Analysis Services mantém os padrões derivados do modelo regional, mas substitui os casos de treinamento existentes pelos dados do repositório individual. Como resultado, seus valores de previsão estarão mais próximos das linhas de tendência da loja individual.

Quando você usa o argumento, o REPLACE_MODEL_CASES Analysis Services adiciona continuamente novos casos ao final do conjunto de casos e exclui um número correspondente do início do conjunto de casos. Se você adicionar mais dados novos do que estava no conjunto de treinamento original, o Analysis Services descartará os dados mais antigos. Se você fornecer novos valores suficientes, as previsões poderão ser baseadas em dados completamente novos.

Por exemplo, você treinou seu modelo em um conjunto de dados de caso que continha 1000 linhas. Em seguida, você adiciona 100 linhas de novos dados. O Analysis Services descarta as primeiras 100 linhas do conjunto de treinamento e adiciona as 100 linhas de novos dados ao final do conjunto para um total de 1000 linhas. Se você adicionar 1100 linhas de novos dados, somente as 1000 linhas mais recentes serão usadas.

Aqui está outro exemplo. Para adicionar três novos meses de dados e fazer três novas previsões, você faria as seguintes ações:

  • Crie um PREDICTION JOIN em um modelo de série temporal e use o argumento REPLACE_MODEL_CASE.

  • Especifique a origem de três meses de novos dados. Esses dados podem ser de uma fonte completamente diferente dos dados de treinamento originais.

  • Solicite previsões para seis fatias de tempo. Para fazer isso, especifique 6 fatias de tempo ou especifique o ponto inicial como a fatia de tempo 1 e o ponto final como a fatia de tempo 7.

    Observação

    Ao contrário de EXTEND_MODEL_CASES, você não pode retornar os mesmos valores que adicionou como dados de entrada. Todos os seis valores retornados são previsões baseadas no modelo atualizado, que inclui dados antigos e novos.

    Observação

    Usando o REPLACE_MODEL_CASES, começando no timestamp 1, você obtém novas previsões com base nos novos dados, que substituem os dados de treinamento antigos.

Para obter exemplos de consulta e mais informações sobre a sintaxe para usar REPLACE_MODEL_CASES e EXTEND_MODEL_CASES, consulte PredictTimeSeries (DMX).

Substituição de valor ausente em modelos de série temporal

Quando você adiciona novos dados a um modelo de série temporal usando uma PREDICTION JOIN instrução, o novo conjunto de dados não pode ter valores ausentes. Se qualquer série estiver incompleta, o modelo deverá fornecer os valores ausentes usando um valor nulo, um meio numérico, uma média numérica específica ou um valor previsto. Se você especificar EXTEND_MODEL_CASES, o Analysis Services substituirá os valores ausentes por previsões baseadas no modelo original. Se você usar REPLACE_MODEL_CASES, o Analysis Services substituirá os valores ausentes pelo valor especificado no parâmetro MISSING_VALUE_SUBSTITUTION .

Lista de funções de previsão

Todos os algoritmos da Microsoft dão suporte a um conjunto comum de funções. No entanto, o algoritmo Microsoft Time Series dá suporte às funções adicionais, listadas na tabela a seguir.

Função de previsão Uso
Latência (DMX) Retorna um número de intervalos de tempo entre a data do caso corrente e a última data do conjunto de treinamento.

Um uso típico dessa função é identificar casos de treinamento recentes para que você possa recuperar dados detalhados sobre os casos.
PredictNodeId (DMX) Retorna a ID do nó para a coluna previsível especificada.

Um uso típico dessa função é identificar o nó que gerou um valor previsto específico para que você possa examinar os casos associados ao nó ou recuperar a equação e outros detalhes.
PredictStdev (DMX) Retorna o desvio padrão das previsões na coluna previsível especificada.

Essa função substitui o argumento INCLUDE_STATISTICS, que não tem suporte para modelos de série temporal.
PredictVariance (DMX) Retorna a variação das previsões para a coluna previsível especificada.

Essa função substitui o argumento INCLUDE_STATISTICS, que não tem suporte para modelos de série temporal.
PredictTimeSeries (DMX) Retorna valores históricos previstos ou valores futuros previstos para uma série temporal.

Você também pode consultar modelos de série temporal usando a função de previsão geral, Predict (DMX).

Para obter uma lista das funções comuns a todos os algoritmos da Microsoft, consulte DMX (Funções de Previsão Geral). Para obter a sintaxe de funções específicas, consulte Referência de função DMX (Extensões de Mineração de Dados).

Consulte Também

Consultas de mineração de dados
Algoritmo de Série Temporal da Microsoft
Referência técnica do algoritmo de série temporal da Microsoft
Conteúdo do modelo de mineração para modelos de série temporal (Analysis Services – Mineração de dados)