Publicado el :
ETL EXTERNA

Descarga de los factores Fama-French 3

Este código también está disponible en: Deutsch English Français
En espera de validación
Esta macro, `download_ff3`, está diseñada para automatizar el proceso de descarga y preparación de los datos de los factores Fama-French 3. Utiliza `PROC HTTP` para recuperar un archivo ZIP que contiene los datos diarios desde la URL especificada. Luego, un `DATA STEP` lee el archivo CSV contenido en el ZIP, aplica los formatos e informatos apropiados, divide los valores de los factores (Mkt_RF, SMB, HML, RF) por 100 para expresarlos en porcentajes, y crea un conjunto de datos SAS© de salida. Los filerefs temporales son liberados posteriormente.
Análisis de datos

Type : EXTERNA


Los datos se descargan desde una URL externa: 'http://mba.tuck.dartmouth.edu/pages/faculty/ken.french/ftp/F-F_Research_Data_Factors_daily_CSV.zip'. Luego son procesados y almacenados en un conjunto de datos SAS interno.

1 Bloque de código
DEFINICIÓN DE MACRO
Explicación :
Define la macro `download_ff3` con un parámetro `outData` para especificar el nombre del conjunto de datos de salida (por defecto 'ff3'). Declara variables locales `fn`, `rsp`, `ff` y les asigna nombres de archivo únicos aleatorios para los filerefs temporales utilizados para la descarga y el acceso al ZIP.
¡Copiado!
1%macro download_ff3(outData=ff3);
2
3%local fn rsp ff;
4 
5%let fn = %ranname()._zip;
6%let rsp = %ranname();
7%let ff = %ranname();
2 Bloque de código
PROC HTTP
Explicación :
Asigna un fileref (`&rsp`) al nombre de archivo temporal (`&fn`) para el archivo ZIP descargado. `PROC HTTP` se utiliza luego para realizar una solicitud GET a la URL especificada y descargar el contenido (el archivo ZIP) en el archivo asociado al fileref `&rsp`.
¡Copiado!
1filename &rsp "&fn";
2 
3PROC HTTP method="GET"
4 url="http://mba.tuck.dartmouth.edu/pages/faculty/ken.french/ftp/F-F_Research_Data_Factors_daily_CSV.zip"
5 out=&rsp;
6QUIT;
3 Bloque de código
DATA STEP Data
Explicación :
Asigna un fileref (`&ff`) al archivo ZIP descargado para acceder a él como una biblioteca ZIP. Se inicia un `DATA STEP` para crear el conjunto de datos especificado por `&outData`. La instrucción `INFILE` lee el archivo CSV 'F-F_Research_Data_Factors_daily.CSV' dentro del ZIP, utilizando la coma como delimitador, gestionando los valores faltantes y leyendo desde la primera línea. Se definen informatos para las variables de fecha y numéricas. Las variables se leen y una condición `if ^missing(date)` filtra los registros con una fecha faltante. Se utiliza un bucle `ARRAY` para dividir por 100 las cuatro variables de factores (Mkt_RF, SMB, HML, RF) para convertirlas en porcentajes. La variable de iteración `i` se elimina posteriormente.
¡Copiado!
1filename &ff zip "&fn";
2 
3DATA &outData;
4INFILE &ff(F-F_Research_Data_Factors_daily.CSV) delimiter = ',' MISSOVER DSD lrecl=32767 firstobs=1 ;
5 informat Date yymmdd8.;
6 informat Mkt_RF best32. ;
7 informat SMB best32. ;
8 informat HML best32. ;
9 informat RF best32. ;
10 FORMAT Date date9. ;
11 FORMAT Mkt_RF best12. ;
12 FORMAT SMB best12. ;
13 FORMAT HML best12. ;
14 FORMAT RF best12. ;
15INPUT
16 Date
17 Mkt_RF
18 SMB
19 HML
20 RF
21;
22 
23IF ^missing(date);
24 
25array vars[4] Mkt_RF
26 SMB
27 HML
28 RF;
29DO i=1 to 4;
30 vars[i] = vars[i]/100;
31END;
32drop i;
33 
34RUN;
4 Bloque de código
LIMPIEZA
Explicación :
Libera los filerefs `&rsp` y `&ff` que se utilizaron para los archivos temporales, asegurando una limpieza de los recursos. `%mend` marca el final de la definición de la macro.
¡Copiado!
1filename &rsp clear;
2filename &ff clear;
3%mend;
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.