uniTimeSeries

arima

L'essentiel
L'essentiel
L'action arima, intégrée au set d'actions uniTimeSeries, constitue un levier stratégique pour les analystes de données souhaitant modéliser la dynamique temporelle de leurs actifs. En combinant les processus autorégressifs, l'intégration et les moyennes mobiles, cet outil permet de décomposer des signaux complexes pour en extraire des tendances exploitables et des cycles saisonniers. Que ce soit pour la planification de la demande ou l'analyse économétrique, sa capacité à projeter des valeurs futures avec précision est essentielle dans un environnement SAS Viya. Cette page centralise les interrogations les plus fréquentes pour vous aider à paramétrer vos modèles et interpréter vos résultats de prévision.

Description

L'action `arima` du jeu d'actions `uniTimeSeries` est utilisée pour l'analyse et la prévision de séries temporelles univariées à l'aide de modèles ARIMA (AutoRegressive Integrated Moving Average). Elle permet d'identifier, d'estimer et de prévoir des modèles pour des données temporelles, en prenant en compte les tendances, la saisonnalité et les composantes aléatoires. Cette action est fondamentale en économétrie et en prévision pour modéliser des phénomènes qui évoluent dans le temps.

uniTimeSeries.arima result=<results> status=<rc> / alignId="BEGIN" | "END" | "MIDDLE", auxData={{...}}, boundaryAlign="BOTH" | "END" | "NONE" | "START", casOut={...}, display={...}, interval="string", nlFormat=TRUE | FALSE, nThreads=integer, outEst={...}, outFor={...}, outputTables={...}, outStat={...}, seasonality=integer, series={{...}, {...}}, sumOut={...}, table={...}, tEnd=double | date | datetime, timeId={...}, trimId="BOTH" | "LEFT" | "NONE" | "RIGHT", tStart=double | date | datetime;
Paramètres
ParamètreDescription
alignId Spécifie l'alignement de l'identifiant temporel.
auxData Spécifie les tables de données de séries temporelles auxiliaires.
boundaryAlign Spécifie l'alignement des horodatages de début et de fin.
casOut Nomme la table de données de sortie pour contenir les prévisions des variables.
display Spécifie la liste des tables d'affichage que vous souhaitez que l'action crée.
interval Spécifie l'intervalle de temps (ou la fréquence) de la série.
nlFormat Si VRAI, choisit le meilleur format international pour la variable d'horodatage en fonction de l'intervalle de temps d'accumulation.
nThreads Spécifie le nombre de threads à utiliser par nœud de travail dans une session CAS.
outEst Nomme la table de données de sortie pour contenir les estimations des paramètres du modèle et les statistiques de test associées.
outFor Nomme la table de données de sortie pour contenir les composantes de la série temporelle de prévision (réel, prédit, limites de confiance inférieure et supérieure, erreur de prédiction, erreur standard de prédiction).
outputTables Spécifie la liste des tables d'affichage que vous souhaitez sortir en tant que tables CAS.
outStat Nomme la table de données de sortie pour contenir les statistiques d'ajustement.
seasonality Spécifie le nombre de périodes de temps par cycle saisonnier.
series Spécifie le nom de la série à modéliser et les options de modélisation.
sumOut Nomme la table de données de sortie pour contenir les statistiques récapitulatives et la sommation des prévisions.
table Spécifie la table de données d'entrée.
tEnd Spécifie la fin de la fenêtre temporelle.
timeId Spécifie la variable d'horodatage.
trimId Spécifie comment découper la série temporelle en fonction des valeurs manquantes.
tStart Spécifie le début de la fenêtre temporelle.
Préparation des Données Voir la fiche de ce code dataprep
Création de Données Temporelles

Ce code SAS crée une table CAS nommée `series_data` contenant une série temporelle simple. La série a une variable `date` qui représente le temps et une variable `valeur` qui contient les observations. Ces données sont utilisées pour illustrer comment appliquer un modèle ARIMA.

Copié !
1DATA casuser.series_data;
2 DO i = 1 to 100;
3 date = intnx('month', '01jan2020'd, i-1);
4 valeur = 50 + 2*i + 10*sin(i/6) + rannor(12345);
5 OUTPUT;
6 END;
7 FORMAT date monyy.;
8RUN;

Exemples

Cet exemple exécute un modèle ARIMA simple sur la série `valeur`. Il utilise une différenciation d'ordre 1 et un modèle autorégressif d'ordre 1 (p=1) et à moyenne mobile d'ordre 1 (q=1).

Code SAS® / CAS Validé
Copié !
1PROC CAS;
2 uniTimeSeries.arima TABLE={name='series_data', caslib="CASUSER"},
3 timeId={name='date'},
4 interval='month',
5 series={{name='valeur', model={{estimate={p=1, q=1, diff=1}}}}};
6RUN;
Résultat :

L'action exécute le modèle ARIMA et affiche les tables de résultats, y compris les estimations des paramètres, les statistiques d'ajustement et les prévisions.

Cet exemple ajuste un modèle ARIMA saisonnier plus complexe. Il inclut une différenciation saisonnière (sDiff=12), des termes autorégressifs et à moyenne mobile saisonniers (sP=1, sQ=1), et demande 24 périodes de prévision. Les résultats des prévisions sont stockés dans la table `arima_forecasts` et les estimations des paramètres dans `arima_estimates`.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1PROC CAS;
2 uniTimeSeries.arima TABLE={name='series_data'},
3 timeId={name='date'},
4 interval='month',
5 seasonality=12,
6 series={{name='valeur', model={{estimate={p=1, q=1, diff=1, sP=1, sQ=1, sDiff=12, method='ML'}, forecast={lead=24, alpha=0.95}}}},
7 outFor={name='arima_forecasts', replace=true},
8 outEst={name='arima_estimates', replace=true};
9RUN;
Résultat :
L'action ajuste le modèle ARIMA saisonnier, génère 24 prévisions et sauvegarde les résultats dans les tables CAS `arima_forecasts` et `arima_estimates`. Les tables de résultats standards sont également affichées.

FAQ

À quoi sert l'action `arima` dans le jeu d'actions `uniTimeSeries` ?
Que spécifie le paramètre `alignId` ?
Comment utiliser le paramètre `auxData` ?
Quel est le rôle du paramètre `boundaryAlign` ?
Comment spécifier la table de sortie pour les prévisions ?
Comment obtenir les estimations des paramètres du modèle dans une table de sortie ?
Est-il possible de sortir les composantes de la prévision dans une table séparée ?
Comment obtenir les statistiques d'ajustement du modèle ?
Quel est le but du paramètre `interval` et est-il obligatoire ?
Comment définir les ordres de différenciation pour un modèle ARIMA ?
Comment spécifier les ordres d'un modèle ARIMA, comme p et q ?
Quelle méthode d'estimation est utilisée par défaut par l'action `arima` ?
Comment appliquer une transformation à la série chronologique avant la modélisation ?
Comment générer des prévisions après l'estimation d'un modèle ?

Scénarios associés

Cas d'usage
Prévision des Ventes Saisonnières pour la Gestion de Stock

Une entreprise de vente au détail souhaite optimiser ses niveaux de stock en prévoyant les ventes mensuelles d'un produit phare. Les données historiques montrent une forte saiso...

Cas d'usage
Modélisation Haut Volume de la Consommation Énergétique Horaire

Un fournisseur d'énergie doit modéliser la demande d'électricité horaire d'une métropole pour anticiper les pics de consommation. Le volume de données est très important (plusie...

Cas d'usage
Robustesse du Modèle face à des Données de Capteur Manquantes

Une usine utilise des capteurs pour surveiller la pression d'une machine en continu. Les capteurs étant peu fiables, les données transmises contiennent des valeurs manquantes, à...