Está en la página 1de 6

PONTIFICIA UNIVERSIDAD CATLICA DE CHILE

ESCUELA DE ADMINISTRACIN
Primer Semestre 2016
Ayudanta Stata 2 - Finanzas I
18 de Marzo de 2016
Profesores: Felipe Aldunate
Ayudante: Miguel Prez

Comandos
1. Relaciones

2. Lgicos:

=: Igual a
>: Mayor que
<: Menor que
>=: Mayor o igual que
<=: Menor o igual que
!=: Distinto que

if: si
&: y
|: o
: no

3. Aritmticos

+: Suma
-: Resta
*: Multiplicacin
/: Divisin
^: Elevado a
nmero

cierto

4. Comandos descriptivos:

describe: Da una descripcin sobre el origen, definicin y forma de los datos. No


es una descripcin estadstica.
codebook: Entrega una descripcin de cada variable incluyendo algunos
estadgrafos muestrales as como algunos elementos computacionales.
summ o Sum: Computa el nmero de observaciones, la media, la desviacin
estndar, el mnimo, y el mximo de cada variable. Sum,d: entrega detalles
distintos como percentiles, kurtosis, skewness, etc. (Ej: sum ret,d nos
entregara los detalles del retorno)
list: hace una lista de las observaciones
tab: muestra la frecuencia de las variables.

5. Otros comandos comunes:

sort: ordena las columnas en orden ascendente de la variable sealada.


order: pone la colmna sealada en primer lugar.
clear: limpia la zona de trabajo
gen: sirve para crear o generar nuevas variables: Sintaxis: gen variable = f ( )
collapse: genera una nueva base de datos segn la sintaxis usada. Sintaxis:
collapse xxx, by (yyy)

tsset: definir la base de datos como datos de panel (series de tiempo), datos que
contienen observaciones para muchos individuos (empresas) a la vez y
repetidos en el tiempo. Sintaxis tsset xxx yyy donde xxx es la variable que
identifica a los individuos e yyy es la variable de tiempo.

l.variable: es la observacion de la variable en el periodo anterior (t-1). Ojo que


es una ele no un uno.
help: muestra la ayuda de los comandos. Sintaxis: help comando. Muy usado.

Ejercicio
Usando el archivo chile_stocks_19902009.dtade la tarea 1 en la pgina web, realizar
las siguientes operaciones en Stata:

1. Defina la base de datos como un panel con la variable date como el indicador de
tiempo y la variable firm_number como la variable de panel.
2. Obtenga una
mencionados.

descripcin

de

algunas

variables

usando

los

comandos

3. Cree la variable infl que contenga la inflacin de cada periodo.


4. Obtenga una descripcin de la variable inflacin dado que el precio de la accin
de Calichera subi.
5. Cree la variable ret_nom que contenga el retorno nominal de cada accin en
cada periodo
6. Cree la variable ret_real que contenga el retorno real de cada accin en cada
periodo.
7. Cree la variable ret_real_mkt que contengan el retorno real del mercado en cada
periodo.
8. Calcule el retorno promedio real y nominal para el mercado.
9. Aplique el comando collapse para encontrar el retorno promedio de cada accin.

Preparacin Tarea 1:
Para partir
1. Definir la base de datos como datos de panel (series de tiempo). La variable
date es un contador de tiempo. Con el siguiente comando, Stata identifica a las
empresas con la variable firm_number y la variable tiempo como date
tsset firm_number date

Operadores de series de tiempo. Ejemplo: Si escribimos l.dividend, Stata


entiende que nos referimos a los dividendos del periodo pasado para esta
empresa. Si queremos los dividendos 2 periodos ms atrs, escribimos
l2.dividend. Si queremos los dividendos del prximo periodo escribimos
f.dividend (f de forward).
2. Generar retornos nominales segn la frmula de clases.

Calculamos retornos reales, para esto dividimos los retornos nominales por la
inflacin (de manera correcta).
Luego, calculamos retornos de las acciones por sobre el mercado.
3. Ver un resumen de las estadsticas de una variable: escribir en Stata, por
ejemplo, para la variable retorno:
sum retr, d

As pueden ver la media, la mediana, desviacin estndar, distribucin por


percentiles, mximos y mnimos, etc.
Ahora, haga lo mismo pero para que Stata le d las estadsticas del retorno slo
para la accin del equipo de ftbol ms grande de Chile.
4. Reemplazar outliers: hay algunos datos que implican retornos muy curiosos,
probablemente son errores de tipeo cuando se junto la base original. Una
manera de disminuir el impacto de estos datos es con un complemento de Stata
llamado Winsor y que se instala en Stata.
ssc install winsor

5. Lo que hace el programa es reemplazar los extremos de la distribucin por el


valor del percentil ms cercano. Por ejemplo, si winsoreamos al 1%, estamos
reemplazando los valores bajo el percentil 1 por el valor del perecentil 1, y los
valores por sobre el percentil 99, por el percentil 99. El comando crea una nueva
variable que es igual a la variable original pero con los nuevos extremos, y que
ser la variable con la que trabajaremos (sin eliminar la original). Por ejemplo,
para retornos:
winsor retr, gen(retrw) p(.01)

donde se le damos el nombre retrw a la variable winsoreada. El p() del final dice
el percentil que estoy usando para winsorear. Hagan un su retrw y comprenlo
con su retr para que vean lo que pas.

PORTAFOLIOS
1. Quedarse con slo las acciones en las que invertiremos, en este caso, sern

Calichera, Copec, Enersis, Pasur, Cccu e Iansa.

keep if empresa=="Calichera" | empresa=="Copec" |


empresa=="Pasur" | empresa=="Ccu" | empresa=="Iansa"

empresa=="Enersis"

2. Portafolio Equal Weighted: En este tipo de portafolio se da igual ponderacin al


retorno de cada uno de los activos en el portafolio. El retorno es:

nkt

Rkt =
i=1

1
R
nkt ikt

donde nkt es el nmero total de acciones en el portafolio k en el periodo t, y Rikt


es el retorno de cada una de esas acciones. Para hacer esto en Stata hay que
primero:
sort date
by date: egen ret_eqw=mean(retrw)

Este comando genera el retorno promedio para cada mes (suponiendo que en la
base estn slo las acciones que vamos a usar en el portafolio). Despus hay
que comprimir las observaciones a una por mes, dado que el paso anterior
genera ese promedio para todas las acciones presentes en la base. Para esto:
collapse ret_eqw, by(date)

Ahora se puede calcular correctamente la media y otros estadsticos:


sum ret_eqw, d

3. Portafolio PriceWeighted: En este tipo de portafolio pondera el retorno de cada


uno de los activos por su capitalizacin burstil. El retorno es:
nkt

Rkt = wik ,t 1 Rikt


i=1

donde nkt es el nmero total de acciones en el portafolio k en el periodo t, y Rikt


el retorno de cada una de esas acciones, y

w ik , t1=

Pik ,t 1
nkt

Pik, t1
i=1

Fjense que usamos el precio del periodo anterior. Para hacer


primero generar los ponderadores.
sort date
by date: egen sum_p_acc=sum(p_acc)
sort firm_number date
gen lag_weight=l.p_acc/l.sum_p_acc
sort date
by date: egen retr_pw=sum(lag_weight*retrw)
...

esto hay que

Portafolios por caractersticas


1. Timing de variables. En la p. 429 de Fama y French (1992) se explica que para
formar los retornos de portafolios entre Julio del ao t y Junio del ao t+1 se usa
informacin conocida en Diciembre del ao t-1. Tomaremos como ejemplo la
variable pb de la base de datos, que es la razn bolsa-libro de una accin.
Reemplazaremos los bm iguales a cero por missing en la base de datos.
Crearemos 2 portafolios de acuerdo a bm, que correspondern a acciones con
alto y bajo bm. FF crean 10 portafolios, pero en USA hay ms acciones. Primero
calculo los percentiles de bm en Diciembre de cada ao:
replace bm=. if bm==0
sort date
forvaluesi=25(25)75 {
by date: egen pc`i'=pctile(bm) if month==12, p(`i')
}

2. Asignar acciones a portafolios: Respecto a estos percentiles asigno empresas a


portafolios en Diciembre de cada ao:
gen kdic=2 if month==12 &bm!=.
replace kdic=1 if bm<=pc50 & month==12 &bm!=.

Despues asigno los dems meses a portafolios de acuerdo a la asignacin en


Diciembre pasado:
sort firm_number date
gen k=l7.kdic if month==7
replace k=l8.kdic if month==8

hacer esto hasta el mes 12 y despus seguir as:


replace k=l13.kdic if month==1
replace k=l14.kdic if month==2

hasta el mes 6
3. Generar identificador de portafolio: Variable que idenifique cada combinacin de
portafolio y periodo (ejemplo: Portafolio 2 en el ao 1976 mes 12)
gen k_t=k*1000000+year*100+month

Este indicador es 2197612 en este ejemplo.


4. Generar retornos a nivel de portafolio: FF calculan retornos equal-weighted para
cada portafolio, es decir, el promedio simple de retornos de las acciones que
fueron asignadas a cada portafolio (k=1 o 2..o 3). Para hacerlo para cada

portafolio habria que dejar solo el 1 (keep if k==1, y as Stata quedara solo con
los datos de pb bajo) y despus solo con 2 (keep if k==2).

Recomendaciones
1. Guarden el do.file de lo que vayan haciendo. Esto es mejor que guardar la base
de datos modificada por que si se equivocan, no van a poder devolverse. A
dems, la tarea exije mostrar el do.file alfinal, as lo van avanzando altiro.
Cuando lo entregen, corrijan todos los errores que tuvieron en el proceso, sacar
los clear y los comandos que fallaron para dejar un do.file limpio.
2. Despus de escribir un comando en Stata, vean que pas con la base de datos y
vean si les cuadra lo que hicieron, para as no arrastrar un error para el resto de
la pregunta.
3. Vean la lgica de lo que estan haciendo, y aprendan de los resultados obtenidos.
No se desesperen si se demoran mucho en avanzar, es normal.

4. Para instalar winsor ssc install winsor

5. No importa si winsorean el retorno nominal, o el real, van a llegar a resultados


similares. En muchas preguntas no es UNA respuesta correcta, pueden variar un
poco.
6. Traten de hacer una buena Tarea 1, por que sirve para la Tarea 2 y si la tienen
mala, van a tener que hacerla de nuevo bien para la 2.

También podría gustarte