No puedo ser específico sobre la naturaleza de los datos, ya que son propietarios, pero supongamos que tenemos datos como este: cada mes, algunas personas se suscriben a un servicio. Luego, en cada mes posterior, esas personas pueden actualizar el servicio, descontinuar el servicio o se les puede negar el servicio (por ejemplo, por falta de pago). Para la primera cohorte en nuestros datos, tenemos aproximadamente 2 años de datos (24 meses).
El número de personas que se unen cada mes es grande (en el rango de 100,000) y el número que hace cualquiera de las tres cosas es de miles. Sin embargo, no estamos utilizando los datos de nivel individual (que serían millones de filas) sino datos agregados por mes y cohorte (qué proporción de cada cohorte hace cada cosa cada mes).
Hemos estado modelando datos existentes utilizando splines de regresión adaptativa multivariante (MARS) y encontrando algunos resultados interesantes. Sin embargo, me preocupa usarlos para extrapolar o predecir en el futuro. Mis preocupaciones son porque las predicciones en el futuro están necesariamente fuera del espacio muestral (en términos de tiempo) y las splines pueden volverse inestables para la extrapolación.
¿Es este un método legítimo? ¿Qué preocupaciones hay y pueden abordarse?
fuente
Respuestas:
Según mi interpretación de la pregunta, la pregunta subyacente que hace es si puede o no modelar el tiempo como una spline.
Ahora volvamos a las series de tiempo. Las series de tiempo son un caso bastante especial en el aprendizaje automático. Tienden a tener un poco de estructura, ya sea una variación parcial o uno de los muchos tipos diferentes de subestructuras, y esta estructura puede explotarse. Pero se necesitan algoritmos especiales que puedan explotar esta estructura, desafortunadamente las splines no hacen esto.
Hay un par de cosas que recomendaría que pruebes. El primero sería redes recursivas. Si su serie temporal no es tan larga (y no tiene dependencias a largo plazo), debería poder usar una red recurrente simple. Si quisieras poder entender lo que está sucediendo, puedes usar una unidad lineal rectificada con sesgos como función de activación y eso será equivalente a modelar MARS en el subconjunto de la serie de tiempo y la "memoria" que la red neuronal recurrente sostiene. Sería difícil interpretar cómo la red gestiona la memoria, pero debe tener alguna idea de cómo se maneja el subespacio con respecto a la función lineal generada por partes. Además, si tiene características estáticas que no pertenecen a la serie temporal, es relativamente fácil utilizarlas en la red.
Si la serie de tiempo que tiene es muy larga y puede tener dependencias a largo plazo, le recomiendo usar una de las redes recurrentes cerradas, algo como GRU o LSTM.
En el lado más clásico de la clasificación de series de tiempo, podría usar modelos ocultos de Markov. No profundizaré más en esto, porque no estoy tan familiarizado con ellos.
En conclusión, no recomendaría usar splines por dos razones. Uno, no puede manejar problemas complicados de extrapolación, que parece ser el problema que está describiendo. Y dos, las splines no explotan las subestructuras de series temporales que pueden ser muy poderosas en la clasificación de series temporales.
Espero que esto ayude.
fuente