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]

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

Retornos

*(Discretos)

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

Retornos

*(Continuo)

l_NASDAQ<-diff(log(tsNASDAQ))

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] NA
var(l_NASDAQ)
##             ^IXIC.close
## ^IXIC.close          NA
sd(l_NASDAQ)
## [1] NA

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"),
    )

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)

  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 = NA, p-value = NA
## 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)

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)

W<-100000

alpha <- 0.01 q1 <- quantile(x=l_NASDAQ, alpha) mean(exp(q1)-1) VAR1 <- W*(exp(q1)-1)

W<-100000

alpha <- 0.05 q1 <- quantile(x=l_NASDAQ, alpha) mean(exp(q1)-1) VAR1 <- W*(exp(q1)-1)

W<-100000

alpha <- 0.1 q1 <- quantile(x=l_NASDAQ, alpha) mean(exp(q1)-1) VAR1 <- W*(exp(q1)-1)

set.seed(1000) simulacion <- rnorm(10000,mean = mu,sd = s) VARsim<-quantile(simulacion,0.01);VARsim exp(VARsim)-1

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) sd(VAR.mc) plot(density(VAR.mc)) quantile(VAR.mc,0.025) quantile(VAR.mc,0.975)

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)