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?
Respuestas:
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.
fuente
¿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.
fuente
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.
fuente