Actualmente estoy trabajando en algunos datos de series temporales, sé que puedo usar el modelo LOESS / ARIMA.
Los datos se escriben en un vector cuya longitud es 1000, que es una cola, que se actualiza cada 15 minutos,
Por lo tanto, los datos antiguos aparecerán mientras los nuevos datos ingresan en el vector.
Puedo volver a ejecutar todo el modelo en un planificador, por ejemplo, volver a entrenar el modelo cada 15 minutos, es decir, usar todo el valor 1000 para entrenar el modelo LOESS, sin embargo, es muy ineficiente, ya que cada vez que solo se inserta un valor mientras se usan otros 999 valores sigue igual que la última vez.
Entonces, ¿cómo puedo lograr un mejor rendimiento?
Muchas gracias
Respuestas:
Permítanme reformular esto en algo más familiar para mí. El ARIMA es una aproximación análoga a PID. Yo es integral. MA es P. el AR puede expresarse como ecuaciones de diferencia que son el término D. LOESS es un análogo al ajuste de mínimos cuadrados (hermano mayor de alta tecnología realmente).
Entonces, si quisiera mejorar un modelo de segundo orden (PID), ¿qué podría hacerse?
Una de las preguntas que no he podido hacer es "¿qué significa el rendimiento?". Si no tenemos una medida de bondad claramente establecida, entonces no hay forma de saber si un método candidato "mejora". Parece que desea un mejor modelado, un tiempo de cómputo más corto y un uso más eficiente de la información. Tener efemérides sobre los datos reales también puede informar esto. Si está modelando el viento, puede saber dónde buscar modelos de aumento o encontrar transformaciones para sus datos que sean útiles.
fuente
Esta es una pregunta diferente dependiendo de si está utilizando un modelo loess o ARIMA. Contestaré solo la pregunta de loess por ahora, ya que sospecho que hay pocas eficiencias posibles en el caso de ARIMA además de tener un buen conjunto de valores iniciales.
Un modelo loess funciona ajustando una regresión ponderada a diferentes subconjuntos de datos. Solo se utiliza una proporción de los datos para cada ajuste. Por lo tanto, cada vez que vuelva a colocar el modelo después de haber dejado un punto de datos en un extremo y agregado otro en el extremo opuesto, técnicamente solo necesita ajustar las regresiones locales que usan el primer y el último punto. Todas las regresiones locales intermedias serán las mismas. La cantidad exacta de estas regresiones locales sin impacto dependerá de su parámetro de suavizado en el loess.
Podrías hackear cualquier paquete que estés usando para ajustar tu modelo para que pueda tomar la mayoría de las regresiones locales de un ajuste anterior, y solo ajustar las que se necesitan al principio y al final de los datos.
Sin embargo, me parece que esto solo valía la pena si el costo en tiempo de programación adicional es materialmente menor que el costo en tiempo de computadora de solo ajustar el modelo desde cero cada 15 minutos. Con solo 1000 puntos de datos, seguramente no es tan importante adaptar el modelo desde cero cada vez.
fuente