Practica Calificada 2

Juan Alberto Zapata Jun 18, 2020

options(scipen=999)
pkges<-c("pdfetch","tseries","tidyverse","forecast")
#Instala paquetes(pkges)
lapply(pkges,"library",character.only=T)
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo

## -- Attaching packages -------------------------------------------------------- tidyverse 1.3.0 --

## v ggplot2 3.3.0     v purrr   0.3.4
## v tibble  3.0.1     v dplyr   0.8.5
## v tidyr   1.1.0     v stringr 1.4.0
## v readr   1.3.1     v forcats 0.5.0

## -- Conflicts ----------------------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()

## [[1]]
## [1] "pdfetch"   "stats"     "graphics"  "grDevices" "utils"     "datasets" 
## [7] "methods"   "base"     
## 
## [[2]]
## [1] "tseries"   "pdfetch"   "stats"     "graphics"  "grDevices" "utils"    
## [7] "datasets"  "methods"   "base"     
## 
## [[3]]
##  [1] "forcats"   "stringr"   "dplyr"     "purrr"     "readr"     "tidyr"    
##  [7] "tibble"    "ggplot2"   "tidyverse" "tseries"   "pdfetch"   "stats"    
## [13] "graphics"  "grDevices" "utils"     "datasets"  "methods"   "base"     
## 
## [[4]]
##  [1] "forecast"  "forcats"   "stringr"   "dplyr"     "purrr"     "readr"    
##  [7] "tidyr"     "tibble"    "ggplot2"   "tidyverse" "tseries"   "pdfetch"  
## [13] "stats"     "graphics"  "grDevices" "utils"     "datasets"  "methods"  
## [19] "base"
NASDAQdata <- pdfetch_YAHOO("^IXIC",from = as.Date("2019-01-01"),
                            to = as.Date("2020-01-01"), interval = '1d')  

tsNASDAQ <- ts(NASDAQdata$`^IXIC.close`,start = c(2019,1),frequency=356.25)

Retornos *(Continuo)

l_NASDAQ <- diff(log(tsNASDAQ))

Media (mu)

mu <- mean(l_NASDAQ)

Varianza (s2)

s2 <- var(l_NASDAQ)

Desviacion estandar (s)

s <- sd(l_NASDAQ)

Para un nivel de significancia de alpha1 = 0.01, alpha2 = 0.05, alpha3 = 0.1 Calcule el Value at Risk, con los siguientes metodos (Exprese sus resultados en terminos monetarios para para una cartera de 100000 dolares).

Value at Risk - Montecarlo Para cada alpha realice las siguiente simulacion: Realice 10000 simulaciones de un movimiento browniano geometrico (GBM) con media mu y varianza s2 (Calculados a partir de los retornos continuos de sus datos) Calcule el VaR de cada simulacion y guarde su resultado en un vector de datos. Grafique la distribucion de los VaR simulados. Calcule el promedio, y su intervalo de confianza con los percentiles 0.025 y 0.975 de los datos simulados.

Alpha1 = 0.01

set.seed(100000)
VAR.mc1 <- numeric()
for (i in 1:10000) {
  changes <- rnorm(length(l_NASDAQ),mean=1+mu,sd=s)
  sim.ts <- cumprod(c(as.numeric(tsNASDAQ[1]),changes))
  sim.R <- diff(log(sim.ts))
  sim.q1 <- quantile(sim.R,0.01,na.rm = T)
  sim.VAR <- exp(sim.q1)-1
  VAR.mc1[i] <- sim.VAR
}
mean(VAR.mc1)
## [1] -0.02114884
sd(VAR.mc1)
## [1] 0.002085875

El Valor en riesgo es:

VAR1a <-  100000*sim.VAR

VAR1a 
##        1% 
## -2149.453

Grafica de la distribucion de los VaR simulado

plot(density(VAR.mc1))

Percentil 0.025

QuaVar1_2.5 <- quantile(VAR.mc1,0.025)

QuaVar1_2.5
##        2.5% 
## -0.02550757

Percentil 0.975

QuaVar1_97.5 <- quantile(VAR.mc1,0.975)

QuaVar1_97.5
##       97.5% 
## -0.01736752

Alpha1 = 0.05

set.seed(100000)
VAR.mc2 <- numeric()
for (i in 1:10000) {
  changes2 <- rnorm(length(l_NASDAQ),mean=1+mu,sd=s)
  sim.ts2 <- cumprod(c(as.numeric(tsNASDAQ[1]),changes2))
  sim.R <- diff(log(sim.ts2))
  sim.q2 <- quantile(sim.R,0.05,na.rm = T)
  sim.VAR2 <- exp(sim.q2)-1
  VAR.mc2[i] <- sim.VAR2
}
mean(VAR.mc2)
## [1] -0.01490407
sd(VAR.mc2)
## [1] 0.001279091

El Valor en riesgo es:

VAR2a <- 100000*sim.VAR2
VAR2a
##        5% 
## -1623.044

Grafica de la distribucion de los VaR simulado

plot(density(VAR.mc2))

Percentil 0.025

QuaVar2_2.5 <- quantile(VAR.mc2,0.025)

QuaVar2_2.5
##        2.5% 
## -0.01747957

Percentil 0.975

QuaVar2_97.5 <- quantile(VAR.mc2,0.975)

QuaVar2_97.5
##     97.5% 
## -0.012496

Alpha1 = 0.1

set.seed(100000)
VAR.mc3 <- numeric()
for (i in 1:10000) {
  changes <- rnorm(length(l_NASDAQ),mean=1+mu,sd=s)
  sim.ts <- cumprod(c(as.numeric(tsNASDAQ[1]),changes))
  sim.R <- diff(log(sim.ts))
  sim.q3 <- quantile(sim.R,0.1,na.rm = T)
  sim.VAR3 <- exp(sim.q3)-1
  VAR.mc3[i] <- sim.VAR3
}
mean(VAR.mc3)
## [1] -0.01139559
sd(VAR.mc3)
## [1] 0.00105652

El Valor en riesgo es:

VAR3a <-  100000*sim.VAR3

VAR3a
##       10% 
## -1288.076

Grafica de la distribucion de los VaR simulado

plot(density(VAR.mc3))

Percentil 0.025

QuaVar3_2.5 <- quantile(VAR.mc3,0.025)

QuaVar3_2.5
##        2.5% 
## -0.01347667

Percentil 0.975

QuaVar3_97.5 <- quantile(VAR.mc3,0.975)

QuaVar3_97.5
##        97.5% 
## -0.009372769

Tabla de datos

id.VaR <- data.frame(
  Nomb.VaR= c("VAR1a","VAR2a","VAR3a"),
  ALPHA = c(0.01,0.05,0.1), 
  cuantil_2.5  = c(QuaVar1_2.5,QuaVar2_2.5,QuaVar3_2.5), 
  cuantil_97.5 = c(QuaVar1_97.5,QuaVar2_97.5,QuaVar3_97.5), 
  VaR = c(VAR1a,VAR2a,VAR3a), 
  stringsAsFactors = FALSE
)

Imprimir el marco de datos.

print(id.VaR) 
##     Nomb.VaR ALPHA cuantil_2.5 cuantil_97.5       VaR
## 1%     VAR1a  0.01 -0.02550757 -0.017367515 -2149.453
## 5%     VAR2a  0.05 -0.01747957 -0.012495996 -1623.044
## 10%    VAR3a  0.10 -0.01347667 -0.009372769 -1288.076

Analice e interprete sus resultados

ALPHA 0.01

El resultado del análisis monte carlo con un tamaño de muestra de 100,000.00 repite 10000 veces con el propósito de tomar una estimación de la desviación estándar, con un 99% de valor en riesgo (VAR1a) significa hay un 1 % de probabilidad de que el precio actual podría perder $ 2149.453. El valor en riesgo del cuantil 2.5%, con una confianza de 97.5% es de -0.02550757 estimando una perdida de 2.55% del tamaño de la muestra. El valor en riesgo del cuantil 97.5%, con una confianza de 2.5% es de -0.017367515 estimando una perdida de 1.73% del tamaño de la muestra.

ALPHA 0.05

Con un 95% de valor en riesgo (VAR2a) significa hay un 5 % de probabilidad de que el precio actual podría perder $ 1623.044. El valor en riesgo del cuantil 2.5%, con una confianza de 97.5% es de -0.01747957 estimando una perdida de 1.75% del tamaño de la muestra. El valor en riesgo del cuantil 97.5%, con una confianza de 2.5% es de -0.012495996 estimando una perdida de 1.25% del tamaño de la muestra.

ALPHA 0.10

Con un 95% de valor en riesgo (VAR3a) significa hay un 5 % de probabilidad de que el precio actual podría perder $ 1288.076 El valor en riesgo del cuantil 2.5%, con una confianza de 97.5% es de -0.01347667 estimando una perdida de 1.35% del tamaño de la muestra. El valor en riesgo del cuantil 97.5%, con una confianza de 2.5% es de -0.009372769 estimando una perdida de 0.94% del tamaño de la muestra.