Capítulo 3 Introducción a teoría de portafolio

IMPORTANTE: Aún no está del todo listo el formato en pdf, por lo que recomiendo verlo online.

3.1 Librería IntroCompFinR

Para la teoría de portfolio vamos a utilzar la librería IntroCompFinR (Intro to Computational Finance in R) creado por el profesor Eric Zivot.

  1. Debemos instalar primero las librerías que utiliza IntroCompFinR:
if(!require("pacman")) install.packages("pacman")
p_load("PerformanceAnalytics","quadprog","xts")
  1. Ya instaladas las dependencias, descargamos IntroCompFinR :
install.packages("IntroCompFinR", repos="http://R-Forge.R-project.org")

3.1.1 Funciones útiles de IntroCompFinR

Funciones Descripciones
getPortfolio Crea un portafolio (objeto)
globalMin.portfolio Computa el portafolio de mímina varianza
efficient.portfolio Computa el portafolio de mímina varianza sujeto a un retorno
tangency.portfolio Computa el portafolio tangente
efficient.frontier Computa la frontera eficiente

3.2 Cargando la librería y la base de datos

Una vez la instalada la librería, procedemos a cargarla en conjunto con aquellas que utilizaremos en esta ayudantía:

if(!require("pacman")) install.packages("pacman")
p_load("IntroCompFinR","readxl","tidyverse")

Como ya está cargado readxl cargamos el archivo stocks.xlsx, que ya posee los retornos10.

# acá están los retornos ya calculados, para replicarlos vean el apunte
stocks <- read_xlsx("datasets/stocks.xlsx")

Considerando tres activos riesgosos (Starbucks, Nordstrom y Microsoft), definimos un vector columna 3x1 el que tendrá los retornos y los pesos:

R=(RaRbRc),x=(xaxbxc)

El vector de retornos esperados es:

E[R]=E[(RaRbRc)]=(E[Ra]E[Rb]E[Rc])=(μaμbμc)=μ

La matriz 3x3 de varianza y covarianza de los retornos es:

var[R]=(σa2σabσacσabσb2σbcσacσbcσc2)=Σ

Notar que la matriz de covarianza es simétrica (Σ=Σ).

Para construir las matrices anteriores en R:

# Promedio
mean <- apply(stocks[2:4], 2 , function(x) mean(x)) 
# Desviación Estandar
sd   <- apply(stocks[2:4], 2 , function(x) sd(x))
# Covarianza
cov  <- cov(stocks[2:4])   

  1. si quieren replicarlo vean los videos