Scénario de test & Cas d'usage
Analyse et prévision de séries temporelles univariées.
Découvrir toutes les actions de uniTimeSeriesCréation d'une table de ventes mensuelles sur 5 ans avec une tendance positive et une saisonnalité sur 12 mois.
| 1 | DATA casuser.ventes_mensuelles; |
| 2 | DO year = 2020 to 2024; |
| 3 | DO month = 1 to 12; |
| 4 | date_mensuelle = mdy(month, 1, year); |
| 5 | t = (year - 2020) * 12 + month; |
| 6 | saison = 1 + sin( (month-1) * 2 * constant('pi') / 12 + constant('pi')/2 ); |
| 7 | ventes = 1000 + 15*t + 500*saison + rannor(123)*100; |
| 8 | OUTPUT; |
| 9 | END; |
| 10 | END; |
| 11 | FORMAT date_mensuelle monyy.; |
| 12 | RUN; |
| 1 | |
| 2 | PROC CASUTIL; |
| 3 | load |
| 4 | DATA=casuser.ventes_mensuelles outcaslib='casuser' casout='ventes_mensuelles' replace; |
| 5 | RUN; |
| 6 |
| 1 | PROC CAS; |
| 2 | uniTimeSeries.arima TABLE={name='ventes_mensuelles'}, |
| 3 | timeId={name='date_mensuelle'}, |
| 4 | interval='month', |
| 5 | seasonality=12, |
| 6 | series={{name='ventes', model={{estimate={p=1, q=1, diff=1, sP=1, sQ=1, sDiff=1, method='ML'}, forecast={lead=12, alpha=0.95}}}}}, |
| 7 | outFor={name='previsions_ventes', replace=true}, |
| 8 | outEst={name='estimations_params', replace=true}, |
| 9 | outStat={name='stats_ajustement', replace=true}; |
| 10 | RUN; |
| 1 | |
| 2 | PROC CAS; |
| 3 | TABLE.fetch / TABLE={name='previsions_ventes'}, to=12; |
| 4 | RUN; |
| 5 |
L'action doit s'exécuter sans erreur et ajuster un modèle SARIMA. Les trois tables de sortie (`previsions_ventes`, `estimations_params`, `stats_ajustement`) doivent être créées dans la caslib `casuser`. La table `previsions_ventes` doit contenir 12 lignes de prévisions pour l'année 2025, avec des valeurs prédites, des limites de confiance, et des erreurs standards. Les prévisions doivent visiblement suivre le cycle saisonnier observé dans les données d'origine.