En este artículo quiero tomar una página de un libro de científicos de datos y explorar una barrera importante que la comunidad de ciencia de datos ha implementado como parte de su proceso de modelado: definir la estabilidad del modelo independientemente del rendimiento del modelo.
Con el auge del big data, la cantidad de variables disponibles para modelar un problema determinado ha crecido exponencialmente. Por ejemplo, los modelos utilizados para identificar canciones o películas ya no solo usan variables genéricas como películas vistas anteriormente o canciones que me gustan, etc. Ahora podemos incluir una gran cantidad de métricas que hacen que el perfil del usuario sea más dinámico: hora del día, clima, historia, estado de ánimo potencial, canciones que le gustan pero que no se vuelven a escuchar, etc. La lista puede crecer a perpetuidad y probablemente así sea. Cada día tenemos la menor cantidad de datos que jamás tendremos, la mayor cantidad que jamás hayamos tenido. Cada día se descubren más correlaciones. Algunas son causales y otras no.
¿Cómo sabemos qué variables usar y cuáles ignorar? ¿Qué pasa si algunas variables son significativas para predecir el comportamiento de un usuario pero no tanto para otro?
Afortunadamente, a la ciencia de datos se le ocurrió la idea de definir la estabilidad del modelo. Es otra forma de definir el rendimiento del modelo, pero no depende completamente de la precisión del pronóstico. “Estabilidad” es un término tan fluido que su significado depende del modelo en cuestión; De manera más general, es una medida de cómo aprende un modelo (estabilidad) y no de lo que aprende (precisión). Al controlar la precisión, queremos elegir un modelo que sea más “estable”: se pueda aplicar a la mayoría de los usuarios, sea capaz de identificar un conjunto relevante de variables de manera consistente y mantenga la ordinalidad de relevancia de las variables. Todo esto para decir: entre dos modelos muy precisos, queremos elegir uno que pueda aplicarse de manera más general y uno que no se salga de control si cambiamos las cosas aunque sea ligeramente. Por ejemplo, un algoritmo de negociación de alta frecuencia complejo, preciso y pragmático puede estropearse si los precios de los valores se vuelven muy volátiles. Tanto es así que NASDAQ tuvo que implementar disyuntores para detener el comercio si surgiera un evento de este tipo y así ha sido. La explosión más reciente ocurrió el 9 de marzo de 2020. Si bien hubo muchos factores que condujeron a la activación de los disyuntores, el hecho es que, después de un cierto umbral, no se podía confiar en que los modelos tomaran decisiones precisas o estables. Entonces, si bien la ciencia de datos es consciente de separar la estabilidad de la precisión, me pregunto si la econometría debería trabajar activamente para construir modelos que tengan en cuenta la precisión y la estabilidad. Y si lo hacemos, ¿cómo deberíamos definir la estabilidad?
Una vez que comenzamos a definir la estabilidad, resulta fácil matizarla cada vez más. Muchos modelos de aprendizaje automático utilizan validación cruzada de k o n veces para medir la estabilidad o las variables elegidas y podemos adaptar fácilmente estos métodos para el modelado econométrico. Sin embargo, dado que la econometría trabaja principalmente en el dominio de la “frecuencia”, es decir, los datos utilizados para entrenar modelos tienen relaciones temporales, nos correspondería examinar más de cerca cómo podemos definir la estabilidad en este nuevo espacio variable.
Para empezar, a diferencia de la validación cruzada de k/n veces, no podemos subconjuntos de datos aleatoriamente sin perder relaciones temporales. Los modelos que utilizamos para pronosticar a menudo dependen del supuesto de que un valor en el momento t podría estar causalmente correlacionado con sus rezagos {t-1, t-2,…, tn}. Además, en función de cómo decidimos modelar estas relaciones temporales, utilizamos diferentes representaciones de estructuras de series temporales: ARIMAX, espacio de estados exponencial, representación de base de Fourier, representación de base radial, etc. Cada una de ellas explota las relaciones temporales de forma ligeramente diferente. Esto significa que el mecanismo de aprendizaje (estabilidad) no puede medirse mediante una técnica de validación cruzada generalizada.
Para los propósitos de este artículo, quiero centrarme solo en una representación temporal: las estructuras AR y qué tan estable es el algoritmo implícito en la función “auto.arima” en R. La función es parte del paquete de pronóstico. Espero que los lectores presenten ideas sobre cómo definir mejor la estabilidad para otras estructuras que mencioné.
Un proceso ARMA se puede representar de la siguiente manera:
Los coeficientes para cada uno de los retrasos de X y Epsilon se pueden calibrar utilizando un criterio de información (AIC), que inherentemente funciona para reducir el error (mejorar la precisión). Sin embargo, AIC no contiene información sobre la estabilidad de la estructura y solo evalúa qué tan eficiente es un modelo para retener información de los datos con los que entrena.
Si AIC es el criterio de selección de valores de coeficientes y retrasos, entonces quizás podamos medir la estabilidad de un modelo ARMA observando:
El valor del coeficiente asignado a cada retraso: un modelo preciso y estable debería poder calcular el coeficiente correcto y luego hacerlo cada vez que agregamos otro punto de datos para entrenar. La reacción del modelo a medida que agregamos perturbaciones aleatorias a los datos: si intentamos engañar al modelo agregando datos que no provienen de la misma población que nuestros datos de entrenamiento, idealmente un modelo estable no sería engañado tan fácilmente, incluso a costa de la precisión; **** En lugar de eso, no debería intentar predecir los shocks.
Otra característica importante de la medición de la estabilidad es la idea de que todas las mediciones deben realizarse en subconjuntos de los mismos datos de muestra. Dada la naturaleza temporal de nuestros datos, debemos cambiar ligeramente estas técnicas para preservar la información temporal de nuestros modelos. Una solución es utilizar la validación continua. A menudo lo usamos como una forma de medir la precisión del pronóstico fuera de la muestra, pero aquí podemos utilizar la misma maquinaria; simplemente haga que la máquina mida diferentes métricas mientras funciona.
[ For a quick catch-up on rolling validation readers can visit Rob J. Hyndman’s blog]
Podemos simular fácilmente un proceso de AR. Sabremos a priori cuáles son los coeficientes de rezago. A continuación, podemos entrenar el algoritmo auto.arima utilizando el método de validación continua y ver con qué rapidez y frecuencia el algoritmo auto.arima detecta retrasos y coeficientes correctos. Consulte a continuación una representación visual del proceso de AR:

El proceso anterior tiene 4 rezagos con el vector de coeficientes = {0,7, -0,2,0,5, -0,8} respectivamente y tiene una duración de 1000 períodos. La validación/entrenamiento continuo comienza en n=20 y a continuación se muestra una representación de los coeficientes calculados en cada iteración. Al menos para este conjunto de datos simulado, el algoritmo auto.arima necesita aproximadamente 400 puntos de datos para acercarse a una solución numéricamente estable y aceptablemente precisa para los coeficientes (Fig. 1). Pero observe cómo la precisión fuera de la muestra del modelo calibrado incluso para los primeros 200 puntos de datos, donde el modelo es muy volátil, es comparable a los puntos de datos posteriores (Fig. 2); la única diferencia es que el modelo calibrado posteriormente es mucho más robusto frente a cada nuevo punto de datos agregado para que el algoritmo se entrene.


Para profundizar más en la precisión versus la estabilidad, otro problema común en el pronóstico de series de tiempo es cuando los datos de entrenamiento contienen discontinuidades aleatorias que no necesariamente siguen la misma dinámica subyacente que la propia serie de tiempo. A menudo, y si somos capaces de identificar con precisión estos shocks, buscamos eliminar por completo los puntos de datos de los datos de entrenamiento o elegimos suavizarlos para reducir su sesgo en el modelo. Sin embargo, si somos capaces de medir la solidez de nuestros métodos/algoritmos, podemos tomar una decisión mucho más informada sobre cuánto debemos modificar los datos sin procesar o diseñarlos antes de poder modelarlos. Esto no quiere decir que la ingeniería de características sea un enfoque de modelado ineficaz, pero debemos detenernos a reflexionar sobre si nos ayuda a mejorar el modelo o simplemente a complicarlo. En mi opinión, la parsimonia no debería cambiarse por modelos que parecen complejos y que ofrecen poca o ninguna mejora en los conocimientos que extraemos de ellos.
Para probar la estabilidad de auto.arima queremos perturbar ligeramente los datos agregando impactos aleatorios que no provengan de la misma distribución que los datos que deseamos pronosticar. Sabemos que auto.arima logra estabilidad, para este conjunto de datos, en alrededor de 400 puntos de datos; podemos ejecutar una validación continua en una versión perturbada de la misma serie temporal y ver cómo se compara con su serie de pares que no fue perturbada. Vea a continuación la misma serie temporal pero con discontinuidades aleatorias:

Y a continuación se muestra cómo se compara la precisión de auto.arima con la versión anterior imperturbable de nuestros datos (las líneas amarillas muestran dónde se agregó la discontinuidad):

Es fácil ver que el algoritmo de pronóstico, de hecho, se vuelve relativamente menos preciso cuando aplicamos choques aleatorios a los datos de entrenamiento. Lo que la gente tiende a olvidar es que, si bien la estabilidad puede ser independiente de la precisión, la afecta directamente. Consulte a continuación los coeficientes calculados para este nuevo conjunto de datos:




La leyenda muestra el verdadero valor del coeficiente al que sabemos que converge el modelo, y con precisión, en los datos no perturbados. Sin embargo, cuando los mismos datos se modifican aleatoriamente, se desvían por completo los valores de los coeficientes evidentes en las líneas rojas. Unos pocos shocks no correlacionados en los datos cambiaron por completo la representación estimada del modelo. Un algoritmo estable no debería verse influenciado demasiado por un impacto sin fundamento en los datos.
Lo interesante aquí es que el algoritmo es inestable y, por lo tanto, inexacto tanto en términos de los coeficientes calculados (los valores AR1, AR2, AR3 y AR4 son muy diferentes del conjunto de datos original) como en el número de coeficientes calculados (los datos originales no tienen términos MA1 o MA2 a los que el algoritmo, incorrectamente, asigna valores distintos de cero para nuestro conjunto de datos perturbados). Si auto.arima elige la representación del modelo incorrecta (coeficientes), entonces, por construcción, el pronóstico que produce utilizando esos coeficientes estará más alejado de los valores reales en comparación con el modelo con datos no perturbados.
Quiero que los lectores se detengan y piensen un poco en los resultados anteriores: cuando termina un ejercicio de pronóstico y el software muestra el resultado, ¿qué valores cree que le muestra su algoritmo? ¿La línea negra o la línea roja? Dado que sólo vemos el valor final y no cómo convergió hacia él, se pierde el matiz de estabilidad. Su respuesta determinará los pasos de ingeniería de funciones que debe seguir para asegurarse de haber modelado un proceso econométrico de manera responsable.
En este caso, auto.arima sacrificó la estabilidad y, a su vez, la precisión. Desafortunadamente, según mi experiencia, separar la estabilidad de la precisión no forma parte del flujo de trabajo econométrico convencional. Si medimos la precisión y la estabilidad como dos métricas diferentes en datos sin procesar y procesados, entonces podremos tomar una decisión mucho más informada sobre si debemos diseñar los datos sin procesar o no. Hay muchas formas de diseñar para reducir el sesgo de una sola medición e incluso más algoritmos para elegir para pronosticar; Es imperativo que tengamos un marco coherente y riguroso que nos ayude a elegir cada uno de ellos.
Recuerde, con este artículo apenas hemos arañado la superficie de la medición de la estabilidad econométrica, pero ya podemos brindar apoyo adecuado y pragmático para muchas decisiones de modelización que a menudo se basan en conjeturas “educadas” o, peor aún, corazonadas.
¡Espero que los lectores se sientan inspirados para encontrar nuevas formas de explorar el tema!
Vedant Bedi es analista de Mastercard y trabaja en el equipo de desarrollo de cartera de NAM. Vedant tiene una licenciatura en Matemáticas y Economía de la Universidad de Nueva York (promoción magna cum laude de 2019) y tiene un ávido interés en la ciencia de datos, la econometría y sus numerosas aplicaciones en las finanzas.
Vedant también es miembro incorporado de Phi Beta Kappa (capítulo de Nueva York), la sociedad de honores académicos más antigua de los Estados Unidos.