Se analiza la serie diaria TRM desde 1991-11-27, hasta 2017-02-15

Datos_TRM<-read.csv(file = "TRM.csv", header = TRUE)

head(Datos_TRM)
##        Fecha    TRM
## 1 27/11/1991 693.32
## 2 28/11/1991 693.99
## 3 29/11/1991 694.70
## 4 30/11/1991 694.70
## 5 01/12/1991 643.42
## 6 02/12/1991 643.42
class(Datos_TRM[,"Fecha"])
## [1] "factor"
#Convertir a formato de fecha la columna "Fecha"

Datos_TRM[,"Fecha"]<-as.Date(Datos_TRM[,"Fecha"],format = "%d/%m/%Y")
class(Datos_TRM[,"Fecha"])
## [1] "Date"

1 graficar datos

plot(Datos_TRM[,"Fecha"],Datos_TRM[,"TRM"], type = "l", main = "Serie Historica TRM")

plot(Datos_TRM[-1,"Fecha"],diff(log(Datos_TRM[,"TRM"])), type = "l", main = "Serie Historica rendimientos diarios TRM")

2 Distribución de frecuencias

hist(Datos_TRM[,"TRM"], breaks = 30, col = "gray", main = "histograma de precios", freq = FALSE)

Rtos_TRM<-diff(log(Datos_TRM[,"TRM"]))

hist(Rtos_TRM, breaks = 50, col = "gray", main = "histograma de rendimientos", freq = FALSE, xlim = c(-0.02,0.02))

3 Estadisticas Basicas

max(Datos_TRM[,"TRM"])
## [1] 3434.89
min(Datos_TRM[,"TRM"])
## [1] 620.62
print("media de la TRM")
## [1] "media de la TRM"
mean(Datos_TRM[,"TRM"])
## [1] 1882.481
print("desviación estandar de la TRM")
## [1] "desviación estandar de la TRM"
sd(Datos_TRM[,"TRM"])
## [1] 680.0618
#install.packages("moments")
library(moments)
## Warning: package 'moments' was built under R version 3.2.3
print("Sesgo")
## [1] "Sesgo"
skewness(Datos_TRM[,"TRM"])
## [1] -0.2084888
print("curtosis")
## [1] "curtosis"
kurtosis(Datos_TRM[,"TRM"])
## [1] 2.185359
#Percentiles
quantile(Datos_TRM[,"TRM"],c(0.01,0.05,0.1,0.5,0.75,0.90,0.95,0.99))
##       1%       5%      10%      50%      75%      90%      95%      99% 
##  642.000  758.732  821.040 1934.440 2324.690 2819.466 2939.920 3172.030

4 Rendimientos

max(Rtos_TRM)
## [1] 0.05107289
min(Rtos_TRM)
## [1] -0.0766824
print("media Rendimientos de la TRM")
## [1] "media Rendimientos de la TRM"
mean(Rtos_TRM)
## [1] 0.00015412
print("desviación estandar rendimientos de la TRM")
## [1] "desviación estandar rendimientos de la TRM"
sd(Rtos_TRM)
## [1] 0.005079765
skewness(Rtos_TRM)
## [1] -0.272372
print("curtosis")
## [1] "curtosis"
kurtosis(Rtos_TRM)
## [1] 22.42398
quantile(Rtos_TRM,c(0.01,0.05,0.1,0.5,0.75,0.90,0.95,0.99))
##           1%           5%          10%          50%          75% 
## -0.014878032 -0.007021664 -0.004160333  0.000000000  0.001048556 
##          90%          95%          99% 
##  0.004722974  0.007923559  0.016527393

5 Aplicaciones de asignación de probabilidad basada en frecuencia

5.1 Estimación de un intervalo de predicción del 90% para los rendimientos de la TRM

quantile(Rtos_TRM, c(0.05,0.95))
##           5%          95% 
## -0.007021664  0.007923559

5.2 ¿que probabilidad hay de tener una perdida mayor al 1% en un dia?

breaks<-c(min(Rtos_TRM)-0.0000001,-0.01)
corte<-cut(Rtos_TRM,breaks)
tabla<-table(corte)
print(tabla)
## corte
## (-0.0767,-0.01] 
##             233
probabilidad<-tabla/length(Rtos_TRM)
print(probabilidad)
## corte
## (-0.0767,-0.01] 
##       0.0252931

6 Supuesto de normalidad

¿Que tipo de distribución teorica siguen los rendimientos diarios de la TRM? ¿Es valido el supuesto de normalidad para los rendimientos diarios de la TRM?

En este casoPara la estimación de los parámetros de la distribución normal, Utilice el promedio aritmetico de los rendimientos de la TRM como estimador del valor esperado y la desvicación estandar historica de los rendimientos como estimador de la desviación

hist(Rtos_TRM, breaks = 50, col = "gray", main = "histograma de rendimientos", freq = FALSE, xlim = c(-0.02,0.02))
curve(dnorm(x,mean=mean(Rtos_TRM),sd=sd(Rtos_TRM)),-0.02,0.02,add = T,col="blue")

6.1 Comparación de cuantiles

qqnorm(Rtos_TRM)
qqline(Rtos_TRM)

6.2 Comparación de percentiles empiricos con los normales teoricos

cuantiles<-c(0.01,0.025,0.05,0.1,0.25,0.40,0.45,0.5,0.75,0.9,0.95,0.975,0.99)
qnorm(cuantiles,mean = mean(Rtos_TRM),sd=sd(Rtos_TRM))
##  [1] -0.0116631796 -0.0098020357 -0.0082013493 -0.0063558603 -0.0032721292
##  [6] -0.0011328237 -0.0004842101  0.0001541200  0.0035803691  0.0066641002
## [11]  0.0085095892  0.0101102756  0.0119714195
quantile(Rtos_TRM, cuantiles)
##            1%          2.5%            5%           10%           25% 
## -0.0148780323 -0.0100404569 -0.0070216642 -0.0041603327 -0.0008228632 
##           40%           45%           50%           75%           90% 
##  0.0000000000  0.0000000000  0.0000000000  0.0010485558  0.0047229741 
##           95%         97.5%           99% 
##  0.0079235590  0.0112320248  0.0165273927

7 Aplicaciones de asignación de probabilidad bajo el supuesto de que los rendimientos de la TRM siguen una distribución normal

7.1 Estimación de un intervalo de predicción del 90% para los rendimientos de la TRM

qnorm(c(0.05,0.95),mean = mean(Rtos_TRM),sd=sd(Rtos_TRM))
## [1] -0.008201349  0.008509589

7.2 ¿que probabilidad hay de tener una perdida mayor al 1% en un dia?

pnorm(-0.01,mean =mean(Rtos_TRM),sd=sd(Rtos_TRM))
## [1] 0.02280769

8 Simulación de montecarlo

Suponga Que los rendimientos diarios de la TRM siguen una distribución normal y que la media es estimada como el promedio de los rendimientos diarios observados de la TRM y que la desviación estandar es estimada como la volatilidad historica de los rendimientos diarios

8.1 Realice unqa simulación con 10.0000 iteraciones para el valor de la TRM para el viernes 17 de febrero de 2017 (dos dias adelante de la ultima fecha de la muestra).

Numero_iteraciones=10000
TRM_SIMULADA=matrix(,3,Numero_iteraciones)
TRM_Inicial=Datos_TRM[length(Datos_TRM[,"TRM"]), "TRM"]

TRM_SIMULADA[1,]=TRM_Inicial

for(j in 1:Numero_iteraciones){
  for(i in 2:3){
    TRM_SIMULADA[i,j]=TRM_Inicial*exp(rnorm(1,mean = mean(Rtos_TRM),sd=sd(Rtos_TRM)))
  }
}


matplot(TRM_SIMULADA,type = "l", col = "gray", main="TRM  SIMULADA")

hist(TRM_SIMULADA[2,],15, main = "HISTOGRAMA SIMULACIÓN TRM 16 DE FEBRERO DE 2017", col ="gray")

hist(TRM_SIMULADA[3,],15, main = "HISTOGRAMA SIMULACIÓN TRM 16 DE FEBRERO DE 2017", col ="gray")

9 Preguntas

Responda las siguientes preguntas asignando probabildad basada en frecuencia y bajo el supuesto de que los rendimientos siguen una distribución normal

*¿Si usted invierte 10.000.000 COP cual es la probabilidad de obtener perdidas entre -500.000 Y 500.000 COP en un dia?

Simulacón de montecarlo

Usted toma una posición corta en 10 contratos de futuros de la TRM que vencen en septiembre de 2017 y que tienen un precio actual de 2900 COP por cada USD. Sabiendo que cada contrato es de 50.000 USD y que usted deposita 150.000.000 de COP en la cuenta de margen, realice una simulación de montecarlo con 10.000 iteraciones bajo el supuesto de que los rendimientos continuos mensuales del futuro, siguen una distribución normal con media de 1% y desviación estandar del 3%, para determinar: