uniTimeSeries

arima

##set_unitimeseries

Description

L'action 'arimaModèle statistique de séries temporelles utilisé dans SAS Viya pour l'analyse et la prévision. Il combine processus autorégressifs, moyenne mobile et différenciation pour traiter des données stables.' de l'ensemble 'uniTimeSeries' permet de modéliser et de prévoir des séries chronologiques à l'aide de modèles ARIMAModèle statistique de séries temporelles utilisé dans SAS Viya pour l'analyse et la prévision. Il combine processus autorégressifs, moyenne mobile et différenciation pour traiter des données stables. et SARIMAExtension du modèle ARIMA incluant la saisonnalité. Sur SAS Viya, il permet de modéliser et prévoir des séries temporelles complexes présentant des cycles périodiques réguliers.. Elle est hautement optimisée pour traiter des données massives en parallèle sur SAS Viya. Que vous cherchiez à prédire les ventes de baguettes ou le trafic web, cette action est votre boule de cristal statistique !

Syntaxe Officielle
proc cas;
uniTimeSeries.arima /
table={name="nom_table_entree"}
interval="MONTH"
timeId={name="colonne_temps"}
series={{
name="colonne_cible",
model={{
estimate={method="CLS", p={factor=1}, q={factor=1}, diff={1}},
forecast={{lead=12}}
}}
}}
casOut={name="nom_table_sortie", replace=true};
run;
quit;

Paramètres Clés

Nom du paramètre Description
table Spécifie la table CAS contenant les données historiques d'entrée. Paramètre requis.
interval Définit la fréquence temporelle des données, comme 'MONTH', 'DAY' ou 'YEAR'. Paramètre requis.
timeId Spécifie la variable temporelle de la table. Essentiel pour ordonner chronologiquement la série.
series Définit la variable cible à modéliser, ses options d'accumulation et la configuration exacte du modèle ARIMA (ordres p, d, q, méthodes d'estimation, options de prévision). Paramètre requis.
outFor Table détaillée contenant les composantes de prévision (valeurs réelles, prédites, limites de confiance supérieure et inférieure).
outEst Table de sortie contenant les estimations des paramètres du modèle ARIMA et les statistiques de test associées.
outStat Table de sortie contenant les statistiques d'ajustement du modèle (fit statistics).
seasonality Définit le nombre de périodes par cycle saisonnier (par exemple 12 pour des données mensuelles).

Préparation des données

Création de données de ventes mensuelles simulées

Nous générons une table CAS contenant des ventes mensuelles fictives avec une tendance linéaire et un bruit aléatoire pour tester notre action.

1DATA mycas.ventes;
2 date = '01JAN2020'd;
3 DO i = 1 to 48;
4 ventes = 100 + 2*i + rand('normal')*5;
5 OUTPUT;
6 date = intnx('month', date, 1);
7 END;
8 FORMAT date date9.;
9RUN;

Exemples d'utilisation

Modèle ARIMA simple (Autorégressif d'ordre 1 avec Différenciation)

Cet exemple ajuste un modèle ARIMA(1,1,0) sur notre série de ventes et génère des prévisions pour les 6 prochains mois.

1PROC CAS;
2 uniTimeSeries.arima /
3 TABLE={name='ventes'}
4 interval='MONTH'
5 timeId={name='date'}
6 series={{
7 name='ventes',
8 model={{
9 estimate={p={factor=1}, diff={1}, method='ML'},
10 forecast={{lead=6}}
11 }}
12 }}
13 outFor={name='ventes_prev', replace=true};
14RUN;
15QUIT;
Résultat Attendu :
Une table CAS 'ventes_prev' est créée, contenant la série historique ajustée et les 6 mois de prévisions (lead=6) avec leurs intervalles de confiance.
Modèle SARIMA complet avec statistiques avancées et gestion des valeurs manquantes

Nous allons plus loin en paramétrant un modèle ARIMA avec gestion des valeurs manquantes (setMiss='AVG'), une méthode des moindres carrés conditionnels ('CLS') et l'exportation de multiples tables d'ajustement. Idéal pour briller en présentation ! %%https://go.documentation.sas.com/doc/en/pgmsascdc/v_069/casactecon/cas-unitimeseries-arima.htm#SAS.cas-unitimeseries-arima-outstat%%

1PROC CAS;
2 uniTimeSeries.arima /
3 TABLE={name='ventes'}
4 interval='MONTH'
5 timeId={name='date'}
6 seasonality=12
7 series={{
8 name='ventes',
9 setMiss='AVG',
10 model={{
11 estimate={p={factor=1}, q={factor=1}, diff={1}, method='CLS'},
12 forecast={{lead=12, alpha=0.05}}
13 }}
14 }}
15 outFor={name='out_for', replace=true}
16 outEst={name='out_est', replace=true}
17 outStat={name='out_stat', replace=true}
18 sumOut={name='out_sum', replace=true};
19RUN;
20QUIT;
Résultat Attendu :
Le moteur distribué de SAS Viya traite la série et génère quatre tables de sortie riches en informations : 'out_for' (prévisions détaillées), 'out_est' (estimations des paramètres), 'out_stat' (statistiques d'ajustement globales) et 'out_sum' (statistiques descriptives de la série).