L'action expectedRange calcule l'étendue (range) et l'étendue relative mobile pour chaque observation d'une série chronologique dans les données d'entrée. Elle est particulièrement utile pour analyser la volatilité et les variations locales au sein de séries temporelles.
| Paramètre | Description |
|---|---|
| dttmName | Spécifie le nom de la variable contenant les informations de date et d'heure dans la table d'entrée (obligatoire). |
| expectedRangeWindowLength | Définit la longueur de la fenêtre (en nombre d'observations) utilisée pour le calcul de l'étendue attendue. La valeur doit être un entier supérieur ou égal à 1 (obligatoire). |
| rangeWindowLength | Définit la longueur de la fenêtre (en nombre d'observations) pour le calcul de l'étendue initiale. La valeur doit être un entier supérieur ou égal à 1 (obligatoire). |
| timeSeriesTable | Spécifie la table CAS d'entrée contenant les données de la série chronologique à analyser (obligatoire). |
| xVarNames | Spécifie une ou plusieurs variables indépendantes (les séries à analyser) dans la table d'entrée (obligatoire). |
| casOut | Spécifie les paramètres de la table de sortie qui contiendra les résultats des calculs (nom, librairie, remplacement, etc.). |
Nous créons une table CAS nommée 'TSDATA' contenant une variable de temps 'DATE' et une variable de valeur 'VALUE' avec des données aléatoires pour simuler une série.
| 1 | |
| 2 | DATA casuser.tsdata; |
| 3 | FORMAT date date9.; |
| 4 | DO i=1 to 100; |
| 5 | date=intnx('day', '01JAN2023'd, i-1); |
| 6 | value=100 + rannor(1)*5; |
| 7 | OUTPUT; |
| 8 | END; |
| 9 | drop i; |
| 10 | |
| 11 | RUN; |
| 12 |
Cet exemple calcule l'étendue sur la variable 'VALUE' avec une fenêtre d'étendue de 3 jours et une fenêtre d'étendue attendue de 5 jours.
| 1 | |
| 2 | PROC CAS; |
| 3 | timeFilters.expectedRange / timeSeriesTable={name="tsdata", caslib="casuser"} dttmName="date" xVarNames={"value"} rangeWindowLength=3 expectedRangeWindowLength=5 casOut={name="range_results", caslib="casuser", replace=true}; |
| 4 | |
| 5 | RUN; |
| 6 |
Calcul des étendues avec des fenêtres plus larges (5 et 10) pour lisser la volatilité, en spécifiant une étiquette pour la table de sortie.
| 1 | |
| 2 | PROC CAS; |
| 3 | timeFilters.expectedRange / timeSeriesTable={name="tsdata", caslib="casuser"} dttmName="date" xVarNames={"value"} rangeWindowLength=5 expectedRangeWindowLength=10 casOut={name="range_results_detailed", caslib="casuser", replace=true, label="Analyse Volatilité"}; |
| 4 | |
| 5 | RUN; |
| 6 |