Esta macro calcula el índice de dolor, definido como el promedio de los 'drawdowns' (caídas acumuladas) durante el período de análisis. Difiere del Ulcer Index porque los drawdowns no se elevan al cuadrado, y del drawdown promedio porque el denominador es el número total de observaciones. Depende de las macros externas %get_number_column_names, %ranname y %drawdowns.
Análisis de datos
Type : EXTERNE
Los datos se proporcionan a través del parámetro de macro 'returns'. El procesamiento también depende de macros utilitarias externas.
1 Bloque de código
MACRO DEFINITION
Explicación : Definición de la macro, declaración de variables locales e inicialización de nombres de tablas temporales a través de %ranname. Recuperación de columnas numéricas a través de %get_number_column_names.
¡Copiado!
%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();
Explicación : Transformación de los datos: eliminación de la primera observación y toma del valor absoluto de los drawdowns para el cálculo de la media.
¡Copiado!
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 Bloque de código
PROC MEANS Data
Explicación : Cálculo de la media de los drawdowns (valores absolutos) para obtener el Índice de Dolor.
¡Copiado!
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 Bloque de código
DATA STEP Data
Explicación : Formato de la tabla de salida final, añadiendo una etiqueta '_STAT_'.
¡Copiado!
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 Bloque de código
PROC DATASETS
Explicación : Limpieza de las tablas temporales generadas y fin de la macro.
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
Información de copyright : Copyright (c) 2015 by The Financial Risk Group, Cary, NC, USA.
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.