uniTimeSeries arima

Previsión de Demanda Minorista con Estacionalidad Semanal

Scénario de test & Cas d'usage

Contexto empresarial

Una cadena de supermercados necesita prever las ventas diarias de un producto de alta rotación para optimizar la gestión de inventario y evitar roturas de stock. Los datos históricos muestran una clara estacionalidad semanal, con picos de venta los fines de semana.
Sobre el conjunto : uniTimeSeries

Análisis y pronóstico de series temporales univariantes.

Descubrir todas las acciones de uniTimeSeries
Preparación de datos

Crea una tabla de ventas diarias para un año. Se simula una tendencia base, una estacionalidad semanal (ventas más altas los viernes y sábados) y ruido aleatorio.

¡Copiado!
1DATA mycas.ventas_diarias;
2 FORMAT fecha date9.;
3 DO i = 0 to 364;
4 fecha = '01jan2024'd + i;
5 dia_semana = weekday(fecha);
6 factor_semanal = 0;
7 IF dia_semana in (6, 7) THEN factor_semanal = 200; /* Viernes y Sábado */
8 ventas = 1000 + (i * 1.5) + factor_semanal + rannor(123)*50;
9 OUTPUT;
10 END;
11RUN;

Étapes de réalisation

1
Carga de la tabla de ventas en la sesión de CAS.
¡Copiado!
1PROC CAS;
2 TABLE.loadTable /
3 caslib='CASUSER' path='ventas_diarias.sashdat'
4 casOut={name='ventas_diarias', replace=true};
5RUN;
2
Ejecución de la acción arima para ajustar un modelo SARIMA(1,1,0)(0,1,1) con estacionalidad de 7 días. Se utiliza el método de estimación de Máxima Verosimilitud (ML) y se solicitan las tablas de pronóstico, estimaciones y estadísticas de ajuste.
¡Copiado!
1uniTimeSeries.arima /
2 TABLE={name='ventas_diarias'},
3 timeId={name='fecha'},
4 interval='day',
5 seasonality=7,
6 series={
7 {name='ventas', model={
8 {estimate={p=1, diff={1,7}, q={{factor=1, s=7}}, method='ML'}},
9 {forecast={lead=14}}
10 }}
11 },
12 outFor={name='pronostico_ventas', replace=true},
13 outEst={name='estimaciones_modelo', replace=true},
14 outStat={name='estadisticas_ajuste', replace=true};
3
Verificación de las tablas de salida generadas.
¡Copiado!
1TABLE.fetch / TABLE={name='pronostico_ventas'};
2RUN;
3TABLE.fetch / TABLE={name='estimaciones_modelo'};
4RUN;
5TABLE.fetch / TABLE={name='estadisticas_ajuste'};
6RUN;
7QUIT;

Resultado esperado


La acción debe completarse con éxito. Se deben crear tres tablas en CAS: `pronostico_ventas` con 14 días de pronósticos que reflejen la tendencia y la estacionalidad semanal, `estimaciones_modelo` con los coeficientes del modelo SARIMA, y `estadisticas_ajuste` con métricas como AIC y BIC. El pronóstico debe mostrar valores más altos para los fines de semana.