uniTimeSeries

arima

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
alignIdSpécifie l'alignement de l'identifiant temporel.
auxDataSpécifie les tables de données de séries temporelles auxiliaires.
boundaryAlignSpécifie l'alignement des horodatages de début et de fin.
casOutNomme la table de données de sortie pour contenir les prévisions des variables.
displaySpécifie la liste des tables d'affichage que vous souhaitez que l'action crée.
intervalSpécifie l'intervalle de temps (ou la fréquence) de la série.
nlFormatSi VRAI, choisit le meilleur format international pour la variable d'horodatage en fonction de l'intervalle de temps d'accumulation.
nThreadsSpécifie le nombre de threads à utiliser par nœud de travail dans une session CAS.
outEstNomme la table de données de sortie pour contenir les estimations des paramètres du modèle et les statistiques de test associées.
outForNomme 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).
outputTablesSpécifie la liste des tables d'affichage que vous souhaitez sortir en tant que tables CAS.
outStatNomme la table de données de sortie pour contenir les statistiques d'ajustement.
seasonalitySpécifie le nombre de périodes de temps par cycle saisonnier.
seriesSpécifie le nom de la série à modéliser et les options de modélisation.
sumOutNomme la table de données de sortie pour contenir les statistiques récapitulatives et la sommation des prévisions.
tableSpécifie la table de données d'entrée.
tEndSpécifie la fin de la fenêtre temporelle.
timeIdSpécifie la variable d'horodatage.
trimIdSpécifie comment découper la série temporelle en fonction des valeurs manquantes.
tStartSpé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, à...