Modelo StatesSpace.SARIMAX: por qué el modelo usa todos los datos para entrenar, y predice el rango de un modelo de tren.

Seguí el tutorial para estudiar el modelo SARIMAX: https://www.digitalocean.com/community/tutorials/a-guide-to-time-series-forecasting-with-arima-in-python-3 . El rango de fechas de los datos es 1958-2001.

mod = sm.tsa.statespace.SARIMAX(y, order=(1, 1, 1), seasonal_order=(1, 1, 1, 12), enforce_stationarity=False, enforce_invertibility=False) results = mod.fit() 

cuando estoy ajustando un modelo de serie temporal ARIMA, encontré al autor todos los datos del rango de fechas para ajustar el parámetro del modelo. Pero al validar los pronósticos, el autor usó la fecha que comenzó desde 1998-01-01 como una parte del rango de fechas de los datos para ajustar el modelo.

 pred = results.get_prediction(start=pd.to_datetime('1998-01-01'), dynamic=False) 

Sé que en el modelo de aprendizaje automático, los datos de entrenamiento y los datos de validación (prueba) son diferentes, me refiero a diferentes rangos. Quiero decir que el autor tiene razón? ¿Por qué hacer esto (me refiero a la razón para usar todos los datos del tren)? Soy uno nuevo para el modelo SARIMAX.

¿Me podrían decir más sobre este modelo? Por ejemplo, ¿qué hay de predecir días o semanas no solo un mes? Quiero decir cómo configurar el parámetro de orden = (1,1,1), seasonal_order = (1, 1, 1, 12 ). ¡Gracias!

El autor tiene razón. Cuando realiza una regresión (lineal, de orden superior o logística, no importa), es absolutamente aceptable tener desviaciones de sus datos de entrenamiento (por ejemplo, la regresión logística incluso en los datos de entrenamiento puede darle un falso positivo).

Lo mismo significa series de tiempo. Creo que de esta manera el autor quiso mostrar que el modelo está construido correctamente.

 seasonal_order=(1, 1, 1, 12) 

Si observa la documentación de estadísticas de sa, verá que si desea operar con datos trimestrales, debe asignar el último parámetro (s) – valor de 4. Mensual – 12. Esto significa que si desea operar con datos semanales temporada_order debe tener este aspecto

 seasonal_order=(1, 1, 1, 52) 

los datos diarios serán

 seasonal_order=(1, 1, 1, 365) 

componente de orden es el parámetro que es responsable de los parámetros no estacionales p, d y q respectivamente. Tienes que encontrarlos dependiendo de tu comportamiento de los datos.

  • pag. Puedes interpretarlo como wether introduzca la descripción de la imagen aquí tiene una influencia en introduzca la descripción de la imagen aquí . O, en otras palabras, si tiene datos diarios yp es 6, puede entenderlos ya que los datos del martes influirán en los datos del domingo.
  • re. Parámetro de diferenciación. Define el nivel de integración de su proceso. Significa cuántas veces debe aplicar el operador de diferenciación de series temporales para que su serie temporal sea estacionaria.
  • q. Puede interpretarlo como cuántos ruidos previos (errores) afectan el valor actual

Aquí hay una buena respuesta sobre cómo encontrar valores de componentes no estacionales.