Referencia técnica del algoritmo de serie temporal de Microsoft

El algoritmo de serie temporal de Microsoft incluye dos algoritmos independientes:

  • El algoritmo ARTXP, que se introdujo en SQL Server 2005, se ha optimizado para predecir el siguiente valor probable de una serie.

  • El algoritmo ARIMA se ha agregado en SQL Server 2008 para mejorar la exactitud de la predicción a largo plazo.

De forma predeterminada, Analysis Services utiliza cada algoritmo por separado para entrenar el modelo y, a continuación, combina los resultados para obtener la mejor predicción de un número variable de predicciones. También puede decidir utilizar solo uno de los algoritmos, dependiendo de los datos y los requisitos de la predicción. En SQL Server 2008 Enterprise, también puede personalizar el punto límite que controla la combinación de algoritmos durante la predicción.

En este tema se proporciona información adicional sobre cómo se implementa cada algoritmo y cómo se puede personalizar el algoritmo estableciendo los parámetros para ajustar el análisis y los resultados de la predicción.

Implementación de los algoritmos de serie temporal

Microsoft Research desarrolló el algoritmo ARTXP y lo basó en el algoritmo de árboles de decisión de Microsoft, que es un modelo de árbol con regresión automática que permite representar los datos periódicos de una serie temporal. El algoritmo ARTXP relaciona un número variable de elementos pasados con cada elemento actual que se predice. El nombre, ARTXP, deriva del hecho de que el algoritmo ART, o método de árbol de regresión automática, se aplica a varios estados anteriores desconocidos. Para obtener una explicación detallada del algoritmo ARTXP, vea Autoregressive Tree Models for Time-Series Analysis.

El algoritmo ARIMA se usa para la predicción a largo plazo. Es una implementación del algoritmo ARIMA desarrollada por Box y Jenkins. ARIMA (Autoregressive Integrated Moving Average), o promedio móvil integrado con regresión automática, es un método conocido para determinar dependencias en observaciones tomadas secuencialmente en el tiempo. También admite la estacionalidad multiplicativa. El algoritmo ARIMA utiliza tanto condiciones de regresión automática como de promedio móvil.

Aunque el algoritmo ARTXP admite la predicción cruzada, el algoritmo ARIMA no la admite. Por consiguiente, la predicción cruzada solo está disponible cuando se utiliza una combinación de algoritmos o cuando se configura el modelo para utilizar solo ARTXP.

Personalizar el algoritmo de serie temporal de Microsoft

El algoritmo de serie temporal de Microsoft admite varios parámetros que afectan al comportamiento, el rendimiento y la precisión del modelo de minería de datos resultante.

Detección de la estacionalidad

Ambos algoritmos admiten la detección de estacionalidad o periodicidad. Analysis Services utiliza la transformación rápida de Fourier para detectar la estacionalidad antes de realizar el entrenamiento.

Para lograr los mejores resultados, puede controlar la detección de la estacionalidad estableciendo parámetros de algoritmo. Al cambiar el valor de AUTODETECT_SEASONALITY, puede influir en el número de posibles segmentos de tiempo que se generan. Al establecer un valor o varios valores para PERIODICITY_HINT, puede proporcionar información al algoritmo sobre los períodos de repetición conocidos y aumentar la exactitud de la detección.

[!NOTA]

Los algoritmos ARTXP y ARIMA tienen en cuenta las sugerencias de estacionalidad. Por consiguiente, si se proporciona una sugerencia equivocada, puede afectar adversamente a los resultados.

Combinar los algoritmos

De forma predeterminada, Analysis Services combina y pondera equitativamente los algoritmos. Sin embargo, en SQL Server 2008 Enterprise, puede personalizar la combinación de los resultados seleccionando la opción MIXED y estableciendo un parámetro que pondere los resultados hacia la predicción a corto o a largo plazo.

Si desea utilizar la predicción cruzada, debe utilizar la opción ARTXP o MIXED, porque ARIMA no la admite.

Para controlar la elección de algoritmo, establezca el parámetro FORECAST_METHOD. De forma predeterminada, el parámetro FORECAST_METHOD se establece en MIXED y Analysis Services utiliza ambos algoritmos para, a continuación, ponderar sus valores con el fin de obtener el máximo partido de cada algoritmo. Sin embargo, puede establecer FORECAST_METHOD en ARTXP, si desea utilizar solo el algoritmo ARTXP, o en ARIMA si desea utilizar solo el algoritmo ARIMA.

En SQL Server 2008 Enterprise, también puede personalizar el modo en que Analysis Services realiza la combinación de los algoritmos ARIMA y ARTXP. Puede controlar tanto el punto inicial para la combinación como la tasa de cambio estableciendo el parámetro PREDICTION_SMOOTHING:

  • Si establece PREDICTION_SMOOTHING en 0, el modelo se vuelve ARTXP puro.

  • Si establece PREDICTION_SMOOTHING en 1, el modelo se vuelve ARIMA puro.

  • Si establece set PREDICTION_SMOOTHING en un valor entre 0 y 1, el modelo pondera el algoritmo ARTXP como una función exponencialmente decreciente de los pasos de predicción. Al mismo tiempo, el modelo también pondera el algoritmo ARIMA como complemento a uno del peso de ARTXP. El modelo usa la normalización y una constante de estabilización para suavizar las curvas.

En general, si predice hasta cinco intervalos de tiempo, ARTXP casi siempre es la mejor opción. Sin embargo, cuando aumenta el número de intervalos de tiempo que predecir, ARIMA suele funcionar mejor.

En el diagrama siguiente se muestra cómo el modelo combina los algoritmos cuando PREDICTION_SMOOTHING se establece en el valor predeterminado, 0,5. ARIMA y ARTXP se ponderan equitativamente al principio, pero a medida que el número de pasos de predicción aumenta, la ponderación de ARIMA es mayor.

curva predeterminada de la mezcla de los algoritmos de serie temporal

Por el contrario, el diagrama siguiente ilustra la combinación de los algoritmos cuando PREDICTION_SMOOTHING se establece en 0,2. En el paso 0, el modelo pondera ARIMA como 0,2 y ARTXP como 0,8. Posteriormente, el peso de ARIMA aumenta exponencialmente y el de ARTXP disminuye exponencialmente.

curva de caída de la mezcla del modelo de serie temporal

Establecer parámetros del algoritmo

En la tabla siguiente se describen los parámetros que se pueden utilizar con el algoritmo de serie temporal de Microsoft.

Parámetro

Descripción

AUTO_DETECT_PERIODICITY

Especifica un valor numérico entre 0 y 1 que detecta la periodicidad. El valor predeterminado es 0,6.

Si el valor está más próximo a 0, la periodicidad solo se detecta en datos con una periodicidad muy marcada.

Cuando este valor está más próximo a 1, se favorece la detección de varios patrones que son casi periódicos y la generación automática de sugerencias de periodicidad.

NotaNota
Un gran número de sugerencias de periodicidad puede aumentar significativamente el tiempo de entrenamiento de los modelos, pero puede proporcionar modelos más precisos.

COMPLEXITY_PENALTY

Controla el crecimiento del árbol de decisión. El valor predeterminado es 0,1.

Al disminuir este valor, aumenta la posibilidad de una división. Al aumentar este valor, disminuye la posibilidad de una división.

NotaNota
Este parámetro solo está disponible en SQL Server Enterprise.

FORECAST_METHOD

Especifica qué algoritmo se ha de utilizar para el análisis y la predicción. Los valores posibles son ARTXP, ARIMA o MIXED. El valor predeterminado es MIXED.

HISTORIC_MODEL_COUNT

Especifica el número de modelos históricos que se generarán. El valor predeterminado es 1.

NotaNota
Este parámetro solo está disponible en SQL Server Enterprise.

HISTORICAL_MODEL_GAP

Especifica el intervalo de tiempo entre dos modelos históricos consecutivos. El valor predeterminado es 10. El valor representa varias unidades de tiempo, donde el modelo define la unidad.

Por ejemplo, si establece este valor en g, se generarán modelos históricos para datos truncados por segmentos de tiempo a intervalos de g, 2*g, 3*g, etc.

NotaNota
Este parámetro solo está disponible en SQL Server Enterprise.

INSTABILITY_SENSITIVITY

Controla el punto en el que la varianza de la predicción supera un cierto umbral y el algoritmo ARTXP suprime las predicciones. El valor predeterminado es 1.

NotaNota
Este parámetro solo se aplica a ARTXP y, por consiguiente, no se aplica a los modelos que se crean utilizando solo el algoritmo ARIMA. Si se aplica a un modelo MIXED, el parámetro solo se aplica a la parte ARTXP del modelo.

El valor predeterminado 1 proporciona el mismo comportamiento para los modelos ARTXP que en SQL Server 2005. Analysis Services supervisa la desviación estándar normalizada para cada predicción. En cuanto las desviaciones normalizadas para cualquier predicción superan el umbral, el algoritmo de serie temporal devuelve un valor NULL y detiene el proceso de predicción.

El valor 0 detiene la detección de inestabilidad. Esto significa que puede crear un número infinito de predicciones, independientemente de la varianza.

NotaNota
Este parámetro solo se puede modificar en SQL Server Enterprise. En SQL Server Standard, Analysis Services utiliza solo el valor predeterminado 1.

MAXIMUM_SERIES_VALUE

Especifica el valor máximo que utilizar en las predicciones. Este parámetro se usa, junto con MINIMUM_SERIES_VALUE, para restringir las predicciones a algún intervalo esperado. Por ejemplo, puede especificar que la cantidad de ventas previstas para cualquier día nunca debe superar el número de productos en inventario.

NotaNota
Este parámetro solo está disponible en SQL Server Enterprise.

MINIMUM_SERIES_VALUE

Especifica el valor mínimo que se puede predecir. Este parámetro se usa, junto con MAXIMUM_SERIES_VALUE, para restringir las predicciones a algún intervalo esperado. Por ejemplo, puede especificar que la cantidad de ventas previstas nunca debe ser un número negativo.

NotaNota
Este parámetro solo está disponible en SQL Server Enterprise.

MINIMUM_SUPPORT

Especifica el número mínimo de segmentos de tiempo necesarios para generar una división en cada árbol de serie temporal. El valor predeterminado es 10.

MISSING_VALUE_SUBSTITUTION

Especifica cómo se llenan los espacios en los datos históricos. De forma predeterminada, no se permiten espacios en los datos.

En la siguiente tabla se muestran los posibles valores para este parámetro.

ValorDescripción
PreviousRepite el valor del intervalo de tiempo anterior.
MeanUtiliza un promedio móvil de los intervalos de tiempo que se usan para el entrenamiento.
Numeric constantUtiliza el número especificado para reemplazar todos los valores que faltan.
NoneReemplaza los valores que faltan por los valores trazados a lo largo de la curva del modelo entrenado. Es el valor predeterminado.

Si los datos contienen varias series, las series tampoco pueden tener bordes irregulares. Es decir, todas las series deben tener los mismos puntos inicial y final.

Analysis Services también utiliza el valor de este parámetro para rellenar los espacios en los datos nuevos cuando se realiza una operación PREDICTION JOIN en el modelo de serie temporal.

PERIODICITY_HINT

Proporciona una sugerencia al algoritmo en cuanto a la periodicidad de los datos. Por ejemplo, si las ventas varían por año y la unidad de medida en la serie son los meses, la periodicidad es 12. Este parámetro toma el formato {n [, n]}, donde n es cualquier número positivo.

La letra n de los corchetes [] es opcional y puede repetirse con la frecuencia que sea necesaria. Por ejemplo, para proporcionar varias sugerencias de periodicidad para los datos suministrados mensualmente, se puede escribir {12, 3, 1} para detectar patrones durante un año, trimestre o mes. Sin embargo, la periodicidad influye significativamente en la calidad del modelo. Si la sugerencia que se proporciona difiere de la periodicidad real, los resultados pueden verse afectados negativamente.

El valor predeterminado es {1}.

NotaNota
Las llaves son obligatorias. Además, este parámetro tiene un tipo de datos de cadena. Por consiguiente, si se escribe este parámetro como parte de una instrucción de Extensiones de minería de datos (DMX), el número y las llaves se deben poner entre comillas.

PREDICTION_SMOOTHING

Especifica cómo se debe combinar el modelo para optimizar el pronóstico. Se puede escribir cualquier valor entre 0 y 1, o utilizar uno de los valores siguientes:

NotaNota
Utilice el parámetro FORECAST_METHOD para controlar el entrenamiento.
ValorDescripción
0Especifica que la predicción solo utiliza ARTXP. El pronóstico se optimiza para un menor número de predicciones.
1Especifica que la predicción solo utiliza ARIMA. Un pronóstico se optimiza para un gran número de predicciones.
0.5(Valor predeterminado) Especifica que se deben utilizar ambos algoritmos y combinar los resultados para la predicción.
NotaNota
Este parámetro solo está disponible en SQL Server Enterprise.

Marcadores de modelado

El algoritmo de serie temporal de Microsoft admite los marcadores de modelado siguientes. Al crear la estructura o el modelo de minería de datos, se definen los marcadores de modelado que especifican cómo se tratan los valores de cada columna durante el análisis. Para obtener más información, vea Marcadores de modelado (Minería de datos).

Marcador de modelado

Descripción

NOT NULL

Indica que la columna no puede contener un valor NULL. Se producirá un error si Analysis Services encuentra un valor NULL durante el entrenamiento del modelo.

Se aplica a las columnas de la estructura de minería de datos.

MODEL_EXISTENCE_ONLY

Significa que la columna se tratará como si tuviera dos estados posibles: ausente y existente. Un valor NULL es un valor ausente.

Se aplica a las columnas del modelo de minería de datos.

Requisitos

Un modelo de serie temporal debe contener una columna de clave temporal que contenga valores únicos, columnas de entrada y al menos una columna de predicción.

Columnas de entrada y de predicción

El algoritmo de serie temporal de Microsoft admite los tipos de contenido de columna de entrada, tipos de contenido de columna de predicción y marcadores de modelado específicos que se indican en esta tabla.

Columna

Tipos de contenido

Atributo de entrada

Continuous ,Key, Key Time y Table

Atributo de predicción

Continuous y Table

[!NOTA]

Se admiten los tipos de contenido cíclicos y ordenados, pero el algoritmo los trata como valores discretos y no realiza un procesamiento especial.