timeFilters

expectedRange

##set_timefilters

Description

L'action expectedRange du set d'actions timeFilters calcule la plage (range) et la plage relative mobile pour chaque observation d'une série temporelleSuite d'observations recueillies à intervalles réguliers au cours du temps. Utilisée pour identifier des tendances, des cycles et effectuer des prévisions (via proc TSMODEL ou FORECAST).. Cette action est particulièrement utile pour analyser la volatilité et les changements de comportement au sein de vos données temporelles. Elle permet de définir des bornes de variations 'normales' pour vos indicateurs, un peu comme si vous vérifiez que votre série ne fait pas trop de hors-piste !

Syntaxe Officielle
timeFilters.expectedRange /
casOut={caslib="string", compress=true|false, indexVars={"variable-name"}, label="string", name="table-name", replace=true|false},
dttmName="string",
expectedRangeWindowLength=64-bit-integer,
rangeWindowLength=64-bit-integer,
timeSeriesTable={caslib="string", name="table-name", where="string"},
xVarNames={"variable-name-1", "variable-name-2"};

Paramètres Clés

Nom du paramètre Description
casOut Spécifie les paramètres de la table de sortie qui contiendra les résultats des calculs de plages.
dttmName Indique le nom de la variable de type date, heure ou datetime identifiant la chronologie de la série.
expectedRangeWindowLength Définit la longueur de la fenêtre mobile utilisée pour le calcul de la plage attendue (doit être >= 1).
rangeWindowLength Définit la longueur de la fenêtre mobile utilisée pour le calcul de la plage de base (doit être >= 1).
timeSeriesTable Spécifie la table CAS d'entrée contenant les données de séries temporelles.
xVarNames Liste des noms des variables indépendantes (numériques) sur lesquelles appliquer le calcul de plage.

Préparation des données

Création d'une série temporelle de ventes simulées

Génère une table CAS avec une série de 365 jours comportant une tendance et un bruit aléatoire pour tester les plages.

1DATA casuser.ventes_test; DO i=1 to 365; date=intnx('day', '01jan2023'd, i); ventes=100 + (i*0.1) + rannor(123)*5; OUTPUT; END; FORMAT date date9.; RUN;

Exemples d'utilisation

Calcul de plage basique

Calcule la plage sur une fenêtre de 5 jours avec une plage attendue sur 10 jours.

1PROC CAS; timeFilters.expectedRange / timeSeriesTable={name='ventes_test'}, dttmName='date', xVarNames={'ventes'}, rangeWindowLength=5, expectedRangeWindowLength=10, casOut={name='res_plage_simple', replace=true}; RUN; QUIT;
Résultat Attendu :
Une nouvelle table 'res_plage_simple' est créée dans la caslib par défaut contenant les indicateurs de plage calculés.
Analyse complète avec options de table de sortie

Exemple utilisant des paramètres de compression et de libellé pour la table de sortie, tout en filtrant les données d'entrée.

1PROC CAS; timeFilters.expectedRange / timeSeriesTable={name='ventes_test', where='ventes > 50'}, dttmName='date', xVarNames={'ventes'}, rangeWindowLength=7, expectedRangeWindowLength=30, casOut={caslib='casuser', name='res_plage_complet', replace=true, compress=true, label='Résultats Expected Range Ventes'}; RUN; QUIT;
Résultat Attendu :
Calcul des plages sur les ventes supérieures à 50, avec une sortie compressée et documentée dans la table 'res_plage_complet'.