Cette macro calcule l'index de douleur, défini comme la moyenne des 'drawdowns' (bisses cumulées) sur la période d'analyse. Elle diffère de l'Ulcer Index car les drawdowns ne sont pas mis au carré, et du drawdown moyen car le dénominateur est le nombre total d'observations. Elle dépend des macros externes %get_number_column_names, %ranname et %drawdowns.
Analyse des données
Type : EXTERNE
Les données sont fournies via le paramètre de macro 'returns'. Le traitement dépend également de macros utilitaires externes.
1 Bloc de code
MACRO DEFINITION
Explication : Définition de la macro, déclaration des variables locales et initialisation des noms de tables temporaires via %ranname. Récupération des colonnes numériques via %get_number_column_names.
Copié !
%macro pain_index(returns,
method= DISCRETE,
dateColumn= DATE,
outData= painindex);
%local vars drawdown stat_mean i;
%let vars= %get_number_column_names(_table= &returns, _exclude= &dateColumn);
%put VARS IN Pain_Index: (&vars);
%let drawdown= %ranname();
%let stat_mean= %ranname();
%let i = %ranname();
Explication : Transformation des données : suppression de la première observation et prise de la valeur absolue des drawdowns pour le calcul de la moyenne.
Copié !
data &drawdown(drop=&i);
set &drawdown(firstobs=2);
array ret[*] &vars;
do &i= 1 to dim(ret);
ret[&i]= abs(ret[&i]);
end;
run;
1
DATA &drawdown(drop=&i);
2
SET &drawdown(firstobs=2);
3
array ret[*] &vars;
4
5
DO &i= 1 to dim(ret);
6
ret[&i]= abs(ret[&i]);
7
END;
8
RUN;
4 Bloc de code
PROC MEANS Data
Explication : Calcul de la moyenne des drawdowns (valeurs absolues) pour obtenir l'Index de Douleur.
Copié !
proc means data= &drawdown mean noprint;
output out= &stat_mean mean=;
run;
1
2
PROC MEANS
3
DATA= &drawdown mean noprint;
4
OUTPUT out= &stat_mean mean=;
5
RUN;
6
5 Bloc de code
DATA STEP Data
Explication : Formatage de la table de sortie finale, ajout d'une étiquette '_STAT_'.
Copié !
data &outData (keep=_stat_ &vars);
format _STAT_ $32.;
set &stat_mean;
_STAT_= 'Pain Index';
run;
1
DATA &outData (keep=_stat_ &vars);
2
FORMAT _STAT_ $32.;
3
SET &stat_mean;
4
_STAT_= 'Pain Index';
5
RUN;
6 Bloc de code
PROC DATASETS
Explication : Nettoyage des tables temporaires générées et fin de la macro.
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Informations de Copyright : Copyright (c) 2015 by The Financial Risk Group, Cary, NC, USA.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.