Compartir a través de


Lección 5: Extender el modelo de serie temporal

En SQL Server 2014 Enterprise, puede agregar nuevos datos a un modelo de serie temporal e incorporar automáticamente los nuevos datos al modelo. Puede agregar nuevos datos a un modelo de minería de datos de serie temporal de una de estas dos maneras:

  • Utiliza un PREDICTION JOIN para combinar datos de un origen externo con los datos de entrenamiento.

  • Use una consulta de predicción singleton para proporcionar datos de un segmento a la vez.

Por ejemplo, supongamos que entrenó el modelo de minería de datos con los datos de ventas existentes hace unos meses. Al obtener nuevas ventas, es posible que quiera actualizar las predicciones de ventas para incorporar los nuevos datos. Puede hacerlo en un solo paso proporcionando las nuevas cifras de ventas como datos de entrada y generando nuevas predicciones basadas en el conjunto de datos compuesto.

Realizar predicciones con EXTEND_MODEL_CASES

A continuación se muestran ejemplos genéricos de una predicción de series temporales mediante EXTEND_MODEL_CASES. El primer ejemplo le permite especificar el número de predicciones a partir del último paso temporal del modelo original.

SELECT [<model columns>,] PredictTimeSeries(<table column reference>, n, EXTEND_MODEL_CASES)   
FROM <mining model>  
PREDICTION JOIN <source query>  
[WHERE <criteria>]  

El segundo ejemplo le permite especificar el paso de hora en el que se deben iniciar las predicciones y dónde deben terminar. Esta opción es importante cuando extiende los casos del modelo porque, de forma predeterminada, los pasos de tiempo que se usan para las consultas de predicción siempre comienzan al final de la serie original.

SELECT [<model columns>,] PredictTimeSeries(<table column reference>, n-start, n-end, EXTEND_MODEL_CASES)   
FROM <mining model>  
PREDICTION JOIN <source query>  
[WHERE <criteria>}  

En este tutorial, creará ambos tipos de consultas.

Para crear una consulta de predicción única en un modelo de serie temporal

  1. En el Explorador de objetos, haga clic con el botón derecho en la instancia de Analysis Services, seleccione Nueva consulta y, a continuación, haga clic en DMX.

    Se abre el Editor de consultas y contiene una consulta nueva en blanco.

  2. Copie el ejemplo genérico de la declaración singleton en la consulta vacía.

  3. Reemplace lo siguiente:

    SELECT [<model columns>,] PredictTimeSeries(<table column reference>, n, EXTEND_MODEL_CASES)   
    

    con:

    SELECT [Model Region],  
    PredictTimeSeries([Quantity],6, EXTEND_MODEL_CASES) AS PredictQty  
    

    La primera línea recupera un valor del modelo que identifica la serie.

    La segunda línea contiene la función de predicción, que obtiene 6 predicciones para Quantity. Se asigna un alias, PredictQty, a la columna de resultados de predicción para facilitar la comprensión de los resultados.

  4. Reemplace lo siguiente:

    FROM <mining model>  
    

    con:

    FROM [Forecasting_MIXED]  
    
  5. Reemplace lo siguiente:

    PREDICTION JOIN <source query>  
    

    con:

    NATURAL PREDICTION JOIN   
    (  
       SELECT 1 AS [Reporting Date],  
       '10' AS [Quantity],  
       'M200 Europe' AS [Model Region]  
       UNION SELECT  
       2 AS [Reporting Date],  
       15 AS [Quantity]),  
       'M200 Europe' AS [Model Region]  
    ) AS t  
    
  6. Reemplace lo siguiente:

    [WHERE <criteria>]  
    

    con:

    WHERE [ModelRegion] = 'M200 Europe' OR  
    [ModelRegion] = 'M200 Pacific'  
    

    La instrucción completa debe ser la siguiente:

    SELECT [Model Region],  
    PredictTimeSeries([Quantity],6, EXTEND_MODEL_CASES) AS PredictQty  
    FROM  
       [Forecasting_MIXED]  
    NATURAL PREDICTION JOIN   
       SELECT 1 AS [ReportingDate],  
      '10' AS [Quantity],  
      'M200 Europe' AS [ModelRegion]  
    UNION SELECT  
      2 AS [ReportingDate],  
      15 AS [Quantity]),  
      'M200 Europe' AS [ModelRegion]  
    ) AS t  
    WHERE [ModelRegion] = 'M200 Europe' OR  
    [ModelRegion] = 'M200 Pacific'  
    
  7. En el menú Archivo , haga clic en Guardar DMXQuery1.dmx Como.

  8. En el cuadro de diálogo Guardar como , vaya a la carpeta adecuada y asigne al archivo Singleton_TimeSeries_Query.dmxel nombre .

  9. En la barra de herramientas, haga clic en el botón Ejecutar .

    La consulta devuelve predicciones de cantidad de ventas para la bicicleta M200 en las regiones de Europa y Pacífico.

Entender la Predicción Comienza con EXTEND_MODEL_CASES

Ahora que ha creado predicciones basadas en el modelo original y con nuevos datos, puede comparar los resultados para ver cómo la actualización de los datos de ventas afecta a las predicciones. Antes de hacerlo, revise el código que acaba de crear y observe lo siguiente:

  • Ha proporcionado nuevos datos solo para la región de Europa.

  • Ha proporcionado solo dos meses de datos nuevos.

En la tabla siguiente se muestra cómo afectan las predicciones a los nuevos valores proporcionados para M200 Europa. No proporcionó ningún dato nuevo para el producto M200 en la región del Pacífico, pero esta serie se presenta para su comparación:

Producto y región: M200 Europa

Modelo existente (PredictTimeSeries) Modelo con datos de ventas actualizados (PredictTimeSeries con EXTEND_MODEL_CASES)
M200 Europa 25/7/2008 12:00:00 AM 77 10
M200 Europa 25/8/2008 12:00:00 AM 64 15
M200 Europa 25/9/2008 12:00:00 AM 59 72
M200 Europa 25/10/2008 12:00:00 AM 56 69
M200 Europa 25/11/2008 12:00:00 AM 56 68
M200 Europa 25/12/2008 12:00:00 AM 74 89

Producto y región: M200 Pacífico

Modelo existente (PredictTimeSeries) Modelo con datos de ventas actualizados (PredictTimeSeries con EXTEND_MODEL_CASES)
M200 Pacífico 25/7/2008 12:00:00 AM 41 41
M200 Pacífico 25/8/2008 12:00:00 AM 44 44
M200 Pacífico 25/9/2008 12:00:00 AM 38 38
M200 Pacífico 25/10/2008 12:00:00 AM 41 41
M200 Pacífico 25/11/2008 12:00:00 AM 36 36
M200 Pacífico 25/12/2008 12:00:00 AM 39 39

A partir de estos resultados, puede ver dos cosas:

  • Las dos primeras predicciones de la serie M200 Europa son exactamente las mismas que los nuevos datos proporcionados. Por diseño, Analysis Services devuelve los nuevos puntos de datos reales en lugar de realizar una predicción. Esto se debe a que cuando extiende los casos del modelo, los pasos de tiempo que se usan para las consultas de predicción siempre comienzan al final de la serie original. Por lo tanto, si agrega dos nuevos puntos de datos, las dos primeras predicciones se superponen con los nuevos datos.

  • Una vez usados todos los nuevos puntos de datos, Analysis Services realiza predicciones basadas en el modelo actualizado. Por lo tanto, a partir de septiembre de 2005, puede ver la diferencia entre las predicciones de M200 Europa del modelo original, en la columna izquierda y el modelo que usa EXTEND_MODEL_CASES, en la columna derecha. Las predicciones son diferentes porque el modelo se ha actualizado con los nuevos datos.

Uso de los pasos de hora de inicio y finalización para controlar las predicciones

Al extender un modelo, los nuevos datos siempre se adjuntan al final de la serie. Sin embargo, para el propósito de la predicción, los segmentos de tiempo utilizados para las consultas de predicción comienzan al final de la serie original. Si desea obtener solo las nuevas predicciones al agregar los nuevos datos, debe especificar el punto inicial como un número de segmentos de tiempo. Por ejemplo, si va a agregar dos nuevos puntos de datos y desea realizar cuatro predicciones nuevas, haría lo siguiente:

  • Cree una PREDICTION JOIN en un modelo de serie temporal y especifique dos meses de datos nuevos.

  • Solicite predicciones para cuatro segmentos de tiempo, donde el punto inicial es 3 y el punto final es el segmento de tiempo 6.

En otras palabras, si los nuevos datos contienen n segmentos de tiempo y solicita predicciones para los pasos de tiempo de 1 a n, las predicciones coincidirán con el mismo período que los nuevos datos. Para obtener nuevas predicciones durante períodos de tiempo no cubiertos por los datos, debe iniciar predicciones en el segmento de tiempo n+1 después de la nueva serie de datos o asegurarse de solicitar segmentos de tiempo adicionales.

Nota:

No puede realizar predicciones históricas al agregar nuevos datos.

En el ejemplo siguiente se muestra la instrucción DMX que permite obtener solo las nuevas predicciones de las dos series del ejemplo anterior.

SELECT [Model Region],  
PredictTimeSeries([Quantity],3,6, EXTEND_MODEL_CASES) AS PredictQty  
FROM  
   [Forecasting_MIXED]  
NATURAL PREDICTION JOIN   
   SELECT 1 AS [ReportingDate],  
  '10' AS [Quantity],  
  'M200 Europe' AS [ModelRegion]  
UNION SELECT  
  2 AS [ReportingDate],  
  15 AS [Quantity]),  
  'M200 Europe' AS [ModelRegion]  
) AS t  
WHERE [ModelRegion] = 'M200 Europe'  

Los resultados de la predicción comienzan en el segmento 3 de tiempo, que es después de los 2 meses de nuevos datos proporcionados.

Producto y región: M200 Europa

Modelo con datos actualizados (PredictTimeSeries con EXTEND_MODEL_CASES)

M200 Europa 25/9/2008 12:00:00 AM 72
M200 Europa 25/10/2008 12:00:00 AM 69
M200 Europa 25/11/2008 12:00:00 AM 68
M200 Europa 25/12/2008 12:00:00 AM 89

Realización de predicciones con REPLACE_MODEL_CASES

Reemplazar los casos de modelo es útil cuando desea entrenar un modelo en un conjunto de casos y, a continuación, aplicar ese modelo a una serie de datos diferente. En la lección 2: Creación de un escenario de previsión (Tutorial intermedio de minería de datos) se presenta un tutorial detallado de este escenario.

Véase también

Ejemplos de consultas del modelo de serie temporal
PredictTimeSeries (DMX)