¿Es necesario reducir y descifrar datos de series temporales cuando se utilizan métodos de aprendizaje automático?


9

Por ejemplo:

Quiero pronosticar valores futuros de una serie temporal basados ​​en valores previos de múltiples series temporales 'utilizando un ANN y / o SVM. Las entradas serán valores rezagados de cada serie de tiempo, y las salidas serán pronósticos de un paso adelante (los pronósticos con horizontes adicionales se realizarán "haciendo avanzar" las predicciones usando predicciones anteriores).

Ahora, ¿no deberían los SVM y ANN ser capaces de aprender tendencias y ciclos? ¿No podrían aprender cosas como "si todo lo demás es igual, la salida de esta serie debería ser 2 veces la salida anterior?" O, si proporciono una variable categórica para el mes, "dado que es enero, divida la predicción que habría hecho entre 2".

¿Intentar descifrar y reducir la tendencia de los datos implicaría imponer más sesgos de los necesarios?


1
Desde el punto de vista del aprendizaje automático y la predicción, pruébelo de varias maneras y vea qué funciona mejor, es decir, produce la mejor predicción.
B_Miner

Respuestas:


6

Con los algoritmos de aprendizaje automático, a menudo es beneficioso usar el ajuste de escala o la normalización de funciones para ayudar al algoritmo a converger rápidamente durante el entrenamiento y para evitar que un conjunto de funciones dominen a otro. Tomemos, por ejemplo, el problema de predecir los precios de las acciones. Si incluye acciones de alto precio como Apple o Microsoft junto con algunas acciones de centavo, las características de alto valor que necesariamente extraerá de Apple y los precios de Microsoft abrumarán a las que extraiga de las acciones de centavo, y no estará entrenando en un base manzana a manzana (¡sin juego de palabras!), y el modelo entrenado resultante podría no generalizarse muy bien.

Sin embargo, imho "intentar descifrar y eliminar la tendencia de los datos" sería algo muy bueno. Extraer los diversos componentes cíclicos y de tendencia y normalizarlos restando sus medios respectivos y dividiéndolos por sus desviaciones estándar colocaría todos los datos para todas las series de tiempo en el mismo rango aproximado, y luego estaría entrenando en datos similares que, cuando reescalado al revertir la normalización, probablemente se generalizaría mucho mejor con fines predictivos.

Además, para cualquier serie de tiempo, podría ser el caso que la tendencia empape el componente cíclico, por lo que podría terminar entrenando con datos de tendencia que casi seguramente no funcionarán bien en series de tiempo cíclicas, y viceversa. Al separar los dos componentes y entrenar en cada uno con SVM o NN separados y luego recombinar las dos predicciones, puede terminar con un algoritmo más preciso y más fácil de generalizar.


Sí, olvidé que la mayoría (¿todos?) Los métodos de estandarización y regularización asumen distribuciones estacionarias. Separar componentes y construir modelos aditivos también es un buen consejo.
ektrules 01 de

1
Sin embargo, ahora me pregunto acerca de la pérdida de información que acompaña a las transformaciones estacionarias. ¿Qué pasa cuando importan los valores reales no diferenciados? Por ejemplo, si tiene una serie temporal de deuda y PIB, entonces diferencie ambos, el método ML solo puede hacer que aprenda los efectos de los cambios, y los efectos pueden ser diferentes si la deuda es del 10% del PIB frente al 200%. (por supuesto, puede agregar una función de PIB / deuda).
ektrules 01 de

2

¿Qué tan lejos está pronosticando en comparación con los plazos en que operan las tendencias o ciclos? Zhang, Qi 2005 - 'El pronóstico de la red neuronal para series temporales estacionales y de tendencia' encuentra beneficioso la desestacionalización y la tendencia (DSDT), pero sus escalas temporales de predicción son similares a sus escalas temporales / estacionales. Por el contrario, he estado trabajando en datos en los que hago predicciones de escalas de tiempo cortas (por ejemplo, 1 día) y la tendencia / estacionalidad solo actúa en escalas de tiempo mucho más largas. DSDT todavía mejora mi precisión predictiva hasta cierto punto, pero el ML puede hacer frente razonablemente bien sin DSDT ya que la tendencia / estacionalidad es efectivamente irrelevante para los últimos puntos de datos.


1

Estoy bastante seguro de que estás usando herramientas incorrectas aquí.

Los métodos ML se crean para la interpolación (como predecir series temporales A a partir de series temporales B y C); para extrapolaciones tenemos cadenas de Markov y amigos.

El problema con su enfoque es que es terriblemente fácil sobreajustar el modelo en estas condiciones y, lo que es peor, es difícil detectar esto (la validación cruzada normal fallará, por lo que es muy difícil ajustar los parámetros de la manera adecuada, etc. .).
Agregar tiempo explícito a los predictores también es una mala idea: he visto modelos ajustados solo en tiempo y decisión con un 90% de precisión en la validación cruzada y adivinanzas aleatorias en las pruebas de datos posteriores al entrenamiento. Si necesita tiempo, es mejor incluirlo como una serie de descriptores de ciclo, como el día de la semana o segundos después de la medianoche, obviamente, nunca excediendo o incluso acercándose a la duración de su serie de entrenamiento.


Puede tener razón sobre el uso de las herramientas incorrectas, IDK. Realmente no he encontrado ningún material en línea utilizando el mismo procedimiento que estoy pensando. De hecho, estoy tratando de predecir una serie temporal de varias otras series temporales (durante el mismo período), pero también me gustaría predecir en el futuro (¿de qué sirve predecir un valor cuando ya está disponible en el tiempo de predicción? Sin embargo, para hacer las predicciones continuas, tendré que predecir cada serie de tiempo. Supongo que lo que intento hacer es algo así como Autoregresión vectorial, pero con enfoques de ML. ¿Este enfoque no funcionará bien?
ektrules

¿Por qué el tiempo como variable predictiva (para pronosticar la tendencia en lugar de la ciclicidad) funciona tan mal?
max

1
Como escribí: 1 / ML es malo en la extrapolación, 2 / tiempo identifica de manera única cada objeto, lo que permite un sobreajuste severo e inhibe la búsqueda de interacciones reales.

1
@mbq Para (1), pensé que solo los métodos locales son terribles para la extrapolación, mientras que los métodos globales podrían estar bien. Pero puedo ver cómo las series de tiempo / MC podrían ser más apropiadas. Para (2) sin embargo, no estoy de acuerdo. El uso de un identificador único llevaría a un buen puntaje de entrenamiento pero a un puntaje CV horrible . Entonces deberías poder detectar modelos malos. Creo que el problema es que es posible que aún se sobreajuste con el CV tradicional, ya que usa el tiempo futuro. Quizás una prueba de tren dividida por el tiempo, con una prueba al final, tendría más sentido.
max

@max Sí, estaba pensando en un CV que divide momentos al azar; El uso de bloques de tiempo continuos ayudará.
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.