Practica Calificada 1

Juan Alberto Zapata May 27, 2020

1. Importe los datos de la serie de precios desde con fecha inicio ’2019-01-01’ y fecha de fin ’2020-01-01’.(1pt)

## [[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')  #DATOS DE S&P500
tsNASDAQ <- NASDAQdata[,4]

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

2. Calcule los retornos: 1) Continuos 2) Discretos.(1pt)

Retornos

*(Discretos)

d_NASDAQ <- diff(tsNASDAQ1)/tsNASDAQ1[-length(tsNASDAQ1)]

Retornos

*(Continuo)

l_NASDAQ<-diff(log(tsNASDAQ1))

3. Haciendo uso de los retornos continuos. Realice un analisis descriptivo: media (mu), varianza (s2) y desviacion estandar s de la distribucion de los datos.(3pts)

mean(l_NASDAQ)
## [1] 0.001183922
var(l_NASDAQ)
##              ^IXIC.close
## ^IXIC.close 0.0000978898
sd(l_NASDAQ)
## [1] 0.009893928

media (mu)

mu <- mean(l_NASDAQ)

varianza (s2)

s2<-var(l_NASDAQ)

Desviacion estandad (s)

s<-sd(l_NASDAQ)

4. Realice un grafico de la distribucion de los retornos (continuos) y comparelo con una distribucion normal simulada a partir de la media y varianza de los retornos obtenidos en la pregunta anterior: ¿La distribucion de los datos, se asemeja a una distribucion normal? Analice sus resultados.(3pts)

x<-seq(-0.1,0.1,by=0.01)
hist(
     l_NASDAQ,prob=TRUE,ylim=c(0,80),xlim = c(-0.1,0.1),breaks = 50,col = "grey94",
     main = c("Histograma de los retornos"),
     xlab = expression(r==ln(P[t]/P[t-1])),
     ylab=c("Densidad"),
    )
lines(density(l_NASDAQ),lwd=1.5,lty=2)
curve(dnorm(x,mean=mu,sd=s),lwd=2,lty=2,col="red",add = T)

Simulacion las probabilidades dadas (0.01) 100000 repeticiones

5. Realice tres test de normalidad 1) Jarque-Bera, 2) Kolmogorov, 3) Spahiro-Wilk, ¿Cual es la hipotesis nula de cada uno de estos test? Interprete sus resultados.(3pts)

  1. Spahiro-Wilk: H0 - normalidad de la variable l_NASDAQ
shapiro.test(l_NASDAQ)
## 
##  Shapiro-Wilk normality test
## 
## data:  l_NASDAQ
## W = 0.95853, p-value = 0.000001278
  1. Kolmogorov-Smirnov: H0 - normalidad de la variable l_NASDAQ Realiza una o dos pruebas de Kolmogorov-Smirnov de muestra.
ks.test(l_NASDAQ, "pnorm", mean=mu, sd=s)
## 
##  One-sample Kolmogorov-Smirnov test
## 
## data:  l_NASDAQ
## D = 0.076839, p-value = 0.1032
## alternative hypothesis: two-sided
  1. Jarque-Bera: H0 - curtosis y asimetria de una normal de la variable l_NASDAQ es un test de bondad de ajuste para observar si una muestra de datos tiene la asimetría y la curtosis de una distribución normal.
jarque.bera.test(l_NASDAQ)
## 
##  Jarque Bera Test
## 
## data:  l_NASDAQ
## X-squared = 74.388, df = 2, p-value < 0.00000000000000022

6. Para un nivel de significancia de α1 = 0.01, α2 = 0.05, α3 = 0.1 Calcule el Value at Risk, con los siguientes metodos (Exprese sus resultados en terminos monetarios para para una cartera de 100 000 dolares).(6pts)

  1. Value at Risk de con datos historicos para cada
W<-100000

alpha <- 0.01
q1 <- quantile(x=l_NASDAQ, alpha)
mean(exp(q1)-1)
## [1] -0.03030498
VAR1 <- W*(exp(q1)-1)
W<-100000

alpha <- 0.05
q1 <- quantile(x=l_NASDAQ, alpha)
mean(exp(q1)-1)
## [1] -0.01512554
VAR1 <- W*(exp(q1)-1)
W<-100000

alpha <- 0.1
q1 <- quantile(x=l_NASDAQ, alpha)
mean(exp(q1)-1)
## [1] -0.01105111
VAR1 <- W*(exp(q1)-1)
  1. Value at Risk asumiendo una que los datos se distribuyen como una normal con media
set.seed(1000)
simulacion <- rnorm(10000,mean = mu,sd = s)
VARsim<-quantile(simulacion,0.01);VARsim
##          1% 
## -0.02170762
exp(VARsim)-1
##         1% 
## -0.0214737
  1. Value at Risk - Montecarlo Para cada realice las siguiente simulacion:
VAR.mc <- numeric()
for (i in 1:1000) {
  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.q <- quantile(sim.R,0.01,na.rm = T)
  sim.VAR <- exp(sim.q)-1
  VAR.mc[i] <- sim.VAR
}
mean(VAR.mc)
## [1] -0.02094656
sd(VAR.mc)
## [1] 0.002084594
plot(density(VAR.mc))

quantile(VAR.mc,0.025)
##        2.5% 
## -0.02534959
quantile(VAR.mc,0.975)
##       97.5% 
## -0.01721036

7. Estime un modelo GARCH(1, 1), a partir de los resultados obtenidos calcule la varianza incondicional y la prevalencia. Interprete sus resultados.(3pts)

Modelos de Volatilidad

options(scipen=999)
pkges<-c("pdfetch","tseries","tidyverse","forecast")
#install.packages(pkges)
lapply(pkges,"library",character.only=T)
## [[1]]
##  [1] "forecast"  "forcats"   "stringr"   "dplyr"     "purrr"     "readr"    
##  [7] "tidyr"     "tibble"    "ggplot2"   "tidyverse" "tseries"   "pdfetch"  
## [13] "stats"     "graphics"  "grDevices" "utils"     "datasets"  "methods"  
## [19] "base"     
## 
## [[2]]
##  [1] "forecast"  "forcats"   "stringr"   "dplyr"     "purrr"     "readr"    
##  [7] "tidyr"     "tibble"    "ggplot2"   "tidyverse" "tseries"   "pdfetch"  
## [13] "stats"     "graphics"  "grDevices" "utils"     "datasets"  "methods"  
## [19] "base"     
## 
## [[3]]
##  [1] "forecast"  "forcats"   "stringr"   "dplyr"     "purrr"     "readr"    
##  [7] "tidyr"     "tibble"    "ggplot2"   "tidyverse" "tseries"   "pdfetch"  
## [13] "stats"     "graphics"  "grDevices" "utils"     "datasets"  "methods"  
## [19] "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"
R1 <- diff(log(tsNASDAQ))
R1 <- na.omit(R1)

ts.garch <- garch(R1, c(1,1))
## 
##  ***** ESTIMATION WITH ANALYTICAL GRADIENT ***** 
## 
## 
##      I     INITIAL X(I)        D(I)
## 
##      1     8.810082e-05     1.000e+00
##      2     5.000000e-02     1.000e+00
##      3     5.000000e-02     1.000e+00
## 
##     IT   NF      F         RELDF    PRELDF    RELDX   STPPAR   D*STEP   NPRELDF
##      0    1 -1.036e+03
##      1    7 -1.036e+03  2.86e-04  9.48e-04  1.0e-04  9.8e+09  1.0e-05  4.66e+06
##      2    8 -1.036e+03  7.05e-05  9.59e-05  9.3e-05  2.0e+00  1.0e-05  1.55e+00
##      3   16 -1.039e+03  2.81e-03  4.85e-03  4.7e-01  2.0e+00  8.8e-02  1.56e+00
##      4   19 -1.041e+03  1.46e-03  1.04e-03  6.9e-01  9.8e-01  2.3e-01  8.25e-03
##      5   21 -1.046e+03  5.55e-03  3.44e-03  4.5e-01  2.0e+00  4.6e-01  2.81e+00
##      6   23 -1.047e+03  7.61e-04  1.61e-03  3.0e-02  1.9e+00  4.6e-02  3.65e-03
##      7   24 -1.048e+03  9.76e-04  2.14e-03  3.0e-02  1.9e+00  4.6e-02  3.28e-02
##      8   31 -1.048e+03  4.25e-07  3.30e-05  5.8e-05  2.0e+00  8.6e-05  4.09e-04
##      9   32 -1.048e+03  1.73e-05  2.05e-05  2.9e-05  2.0e+00  4.3e-05  2.47e-05
##     10   35 -1.048e+03  1.38e-07  3.17e-07  3.3e-04  1.7e+00  5.0e-04  2.38e-06
##     11   36 -1.048e+03  4.18e-07  4.55e-07  4.8e-04  7.3e-01  1.0e-03  6.84e-07
##     12   37 -1.048e+03  1.12e-07  3.31e-07  5.3e-04  8.1e-01  1.0e-03  5.60e-07
##     13   38 -1.048e+03  1.90e-07  1.98e-07  5.5e-04  5.4e-01  1.0e-03  2.43e-07
##     14   52 -1.048e+03 -4.47e-14  2.05e-14  7.0e-15  5.0e+05  1.0e-14  3.19e-08
## 
##  ***** FALSE CONVERGENCE *****
## 
##  FUNCTION    -1.048322e+03   RELDX        6.983e-15
##  FUNC. EVALS      52         GRAD. EVALS      14
##  PRELDF       2.050e-14      NPRELDF      3.189e-08
## 
##      I      FINAL X(I)        D(I)          G(I)
## 
##      1    7.322641e-06     1.000e+00    -2.074e+03
##      2    1.833333e-01     1.000e+00    -1.290e-01
##      3    7.417722e-01     1.000e+00    -5.975e-02
summary(ts.garch)
## 
## Call:
## garch(x = R1, order = c(1, 1))
## 
## Model:
## GARCH(1,1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.9971 -0.3604  0.1917  0.7754  2.6166 
## 
## Coefficient(s):
##       Estimate  Std. Error  t value             Pr(>|t|)    
## a0 0.000007323 0.000003433    2.133             0.032927 *  
## a1 0.183333268 0.049790401    3.682             0.000231 ***
## b1 0.741772214 0.063917969   11.605 < 0.0000000000000002 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Diagnostic Tests:
##  Jarque Bera Test
## 
## data:  Residuals
## X-squared = 44.569, df = 2, p-value = 0.0000000002099
## 
## 
##  Box-Ljung test
## 
## data:  Squared.Residuals
## X-squared = 0.4746, df = 1, p-value = 0.4909
ts.garch$residuals
##   [1]           NA  2.616614253  0.549824722  0.524332308  0.471522017
##   [6]  0.252089759 -0.143473634 -0.734189441  1.398515451  0.118994189
##  [11]  0.611775055  0.953201625 -1.826688120  0.061178416  0.604975549
##  [16]  1.232763090 -1.023009747 -0.750273730  2.109980927  1.035953292
##  [21] -0.188417005  0.987245418  0.645663538 -0.338729804 -1.217801640
##  [26]  0.132812152  0.144603087  1.730047667  0.078460503  0.098897330
##  [31]  0.746220136  0.240446354  0.041305540 -0.564899174  1.334353406
##  [36]  0.475010632 -0.095165575  0.102108625 -0.453555938  1.321585515
##  [41] -0.333916525 -0.023839077 -1.465744209 -1.547941719 -0.214033274
##  [46]  2.582940262  0.388473890  0.674562425 -0.169650560  0.858064646
##  [51]  0.389839043  0.152382015  0.087071405  2.024817052 -2.834268939
##  [56] -0.049418233  0.586213966 -0.565006453  0.326950967  0.832155494
##  [61]  1.397763782  0.252838280  0.655881096 -0.055178410  0.747051398
##  [66]  0.245869125 -0.773631938  0.957470522 -0.286321906  0.660769522
##  [71] -0.148199832  0.463761797 -0.081315479  0.040391750  0.362267829
##  [76]  2.234363345 -0.289572866  0.274967101  0.484232677  0.278747628
##  [81] -1.257791661 -0.794205575 -0.224098733  2.325746795 -0.537853218
##  [86] -2.275387537 -0.220526680 -0.394993034  0.083884714 -3.997149407
##  [91]  0.675139655  0.725129692  0.666702472 -0.775642249 -1.157904406
##  [96]  0.835176316 -0.364527179 -1.433876326  0.094803985 -0.362026083
## [101] -0.809569205  0.284844335 -1.757541149 -1.579225826  2.254651930
## [106]  0.420416690  0.385816355  1.340697180  0.800802030 -0.006207162
## [111] -0.348111534  0.569777453 -0.554967500  0.705628773  1.632113430
## [116]  0.430385817  0.886831791 -0.274438060 -0.395972482 -1.981961598
## [121]  0.330452060  0.820876202  0.554961201  1.284357828  0.250969354
## [126]  0.925132028 -0.126678218 -1.034014427  0.685352280  0.980665233
## [131] -0.102049476  0.810936248  0.235646335 -0.629195862 -0.681035155
## [136]  0.401813379 -1.148602305  1.012797054  0.793525724  1.170446078
## [141] -1.302289978  1.326049242 -0.491723458 -0.281872498 -1.525218650
## [146] -0.888919051 -1.511292868 -3.589451270  0.784850194  0.228828762
## [151]  1.527172517 -0.627765225 -0.827119506  1.386910886 -2.077533492
## [156] -0.050920566  1.021865324  0.847802557 -0.451682949  0.661518982
## [161] -0.285858416 -2.697868455  0.792855172 -0.220486433  0.278644075
## [166]  1.205283260 -0.105039960 -1.003694138  1.169727933  1.530200536
## [171] -0.134724530 -0.172346226 -0.040341172  1.159647965  0.321683900
## [176] -0.250854497 -0.355615785  0.531121320 -0.146578696  0.099016936
## [181] -1.242292319 -0.090950898 -2.215558163  1.164212801 -0.623027290
## [186] -1.292503055  0.794835280 -1.247170603 -1.630275945  1.007301930
## [191]  1.267696196 -0.285958906 -1.622151273  0.863860813  0.522347595
## [196]  1.268697651 -0.094769918  1.253353540 -0.290921188  0.426246392
## [201] -0.950289168  1.034703780 -0.812330019  0.219911907  1.012718886
## [206]  0.854065262  1.233476569 -0.686049007  0.394049001 -0.180110012
## [211]  1.556031990  0.667070616  0.021821630 -0.384097010  0.401886373
## [216]  0.713296079 -0.193001533  0.399937936 -0.075074197 -0.060136366
## [221]  1.238337318  0.163507302  0.387249981 -0.840555755 -0.381511814
## [226]  0.260575508  2.189557974  0.220609496  0.877235035 -0.604155441
## [231] -1.544700972 -0.659678081  0.666712997  0.060181009  1.372977991
## [236] -0.499748885 -0.085935125  0.616709998  1.047499291  0.276611118
## [241]  1.314605841  0.136625286  0.070106254  1.006217746  0.607685608
## [246]  0.338900010  0.123285828  1.233839874 -0.254001231 -1.029228646
## [251]  0.430332426
hhat <- ts(ts.garch$fitted.values[-1,1]^2,start = c(2019,3),frequency = 365.25)
plot.ts(hhat)