This note book is for the seminar in 2017/5/21

library(quantmod)
library(PerformanceAnalytics)
library(car)
library(FinTS)
library(rugarch)

Import Samsung DATA from google

samsung <- getSymbols('KRX:005930', src = "google")
samsung <- `KRX:005930`
colnames(samsung) <- c("open", "high", "low", "close", "volume")
samsung$ret <- dailyReturn(samsung$close)
samsung$var <- samsung$ret^2
samsung$abs <- abs(samsung$ret)

Plot Samsung Return Data with its unconditional mean and vairance

plot(samsung$ret)
abline(h=mean(samsung$ret),col='blue', lwd=3)
abline(h=sd(samsung$ret),col='red', lwd=3)

mean <- mean(samsung$ret)
std <- sqrt(var((samsung$ret)))
hist(samsung$ret, freq = FALSE)
curve(dnorm(x, mean=mean, sd=std), 
      col="darkblue", lwd=2, add=TRUE)

Plot returns with squared and abs returns

dataToplot = cbind(samsung$close, samsung$ret, samsung$var)
dataToplot = dataToplot[-1,]
plot.zoo(dataToplot, main="Samsung",col="black")

Compute the summary statistics for samsung return

table.Stats(samsung$ret)

plot autocorrelations of returns, returns^2 and abs(returns)

par(mfrow=c(2,1))
  acf(samsung$ret)
  acf(samsung$ret^2)
par(mfrow=c(1,1))

Simulate GARCH(1,1) process

specify GARCH(1,1) model

garch11.spec = ugarchspec(variance.model = list(garchOrder=c(1,1)), 
                          mean.model = list(armaOrder=c(0,0)),
                          fixed.pars=list(mu = 0, omega=0.1, alpha1=0.1,
                                          beta1 = 0.7))
set.seed(123)
garch11.sim1=ugarchpath(garch11.spec, n.sim=1000)

Use the plot method to plot simulated series and conditional volatility

par(mfrow=c(2,1))
  plot(garch11.sim1, which=2)
  plot(garch11.sim1, which=1)
par(mfrow=c(1,1))

Use qqPlot() function

qqPlot(garch11.sim1@path$seriesSim, ylab="GARCH(1,1) Returns")

par(mfrow=c(3,1))
  acf(garch11.sim1@path$seriesSim, main="Returns")
  acf(garch11.sim1@path$seriesSim^2, main="Returns^2")
  acf(abs(garch11.sim@path$seriesSim), main="abs(Returns)")
par(mfrow=c(1,1))

Testing for ARCH/GARCH effects in returns

Use Box.text from stats package

Box.test(coredata(samsung$ret^2), type="Ljung-Box", lag = 12)

    Box-Ljung test

data:  coredata(samsung$ret^2)
X-squared = 408.95, df = 12, p-value < 2.2e-16

Use ArchTest() function from FinTS package fro Engle’s LM test

ArchTest(samsung$ret)

    ARCH LM-test; Null hypothesis: no ARCH effects

data:  samsung$ret
Chi-squared = 209.08, df = 12, p-value < 2.2e-16

Estimate GARCH(1,1)

Specify GARCH(1,1) model with only constant in mean equation

garch11.spec = ugarchspec(variance.model = list(garchOrder=c(1,1)), 
                          mean.model = list(armaOrder=c(0,0)))
samsung.garch11.fit = ugarchfit(spec=garch11.spec, data=samsung$ret, solver.control = list(trace=1))

Iter: 1 fn: -6605.1768   Pars:  0.000810500 0.000005324 0.041645457 0.943992461
Iter: 2 fn: -6605.1768   Pars:  0.000809909 0.000005323 0.041641540 0.944001687
solnp--> Completed in 2 iterations
class(samsung.garch11.fit)
[1] "uGARCHfit"
attr(,"package")
[1] "rugarch"
slotNames(samsung.garch11.fit)
[1] "fit"   "model"
names(samsung.garch11.fit@fit)
 [1] "hessian"         "cvar"            "var"            
 [4] "sigma"           "condH"           "z"              
 [7] "LLH"             "log.likelihoods" "residuals"      
[10] "coef"            "robust.cvar"     "scores"         
[13] "se.coef"         "tval"            "matcoef"        
[16] "robust.se.coef"  "robust.tval"     "robust.matcoef" 
[19] "fitted.values"   "convergence"     "kappa"          
[22] "persistence"     "timer"           "ipars"          
[25] "solver"         

Show Garch Fit

samsung.garch11.fit

*---------------------------------*
*          GARCH Model Fit        *
*---------------------------------*

Conditional Variance Dynamics   
-----------------------------------
GARCH Model : sGARCH(1,1)
Mean Model  : ARFIMA(0,0,0)
Distribution    : norm 

Optimal Parameters
------------------------------------
        Estimate  Std. Error  t value Pr(>|t|)
mu      0.000810    0.000347   2.3362 0.019483
omega   0.000005    0.000003   1.7963 0.072445
alpha1  0.041642    0.004227   9.8517 0.000000
beta1   0.944002    0.005477 172.3668 0.000000

Robust Standard Errors:
        Estimate  Std. Error  t value Pr(>|t|)
mu      0.000810    0.000306   2.6440 0.008194
omega   0.000005    0.000010   0.5268 0.598331
alpha1  0.041642    0.013336   3.1225 0.001793
beta1   0.944002    0.015568  60.6354 0.000000

LogLikelihood : 6605.177 

Information Criteria
------------------------------------
                    
Akaike       -5.1331
Bayes        -5.1240
Shibata      -5.1331
Hannan-Quinn -5.1298

Weighted Ljung-Box Test on Standardized Residuals
------------------------------------
                        statistic   p-value
Lag[1]                      5.319 2.109e-02
Lag[2*(p+q)+(p+q)-1][2]    19.143 7.471e-06
Lag[4*(p+q)+(p+q)-1][5]    34.993 1.226e-09
d.o.f=0
H0 : No serial correlation

Weighted Ljung-Box Test on Standardized Squared Residuals
------------------------------------
                        statistic p-value
Lag[1]                      2.168  0.1409
Lag[2*(p+q)+(p+q)-1][5]     5.420  0.1228
Lag[4*(p+q)+(p+q)-1][9]     7.746  0.1444
d.o.f=2

Weighted ARCH LM Tests
------------------------------------
            Statistic Shape Scale P-Value
ARCH Lag[3]     3.809 0.500 2.000 0.05097
ARCH Lag[5]     5.636 1.440 1.667 0.07311
ARCH Lag[7]     6.485 2.315 1.543 0.11184

Nyblom stability test
------------------------------------
Joint Statistic:  0.8879
Individual Statistics:              
mu     0.06285
omega  0.14879
alpha1 0.51393
beta1  0.37188

Asymptotic Critical Values (10% 5% 1%)
Joint Statistic:         1.07 1.24 1.6
Individual Statistic:    0.35 0.47 0.75

Sign Bias Test
------------------------------------
                   t-value   prob sig
Sign Bias          0.01287 0.9897    
Negative Sign Bias 1.50815 0.1316    
Positive Sign Bias 0.16337 0.8702    
Joint Effect       3.47889 0.3235    


Adjusted Pearson Goodness-of-Fit Test:
------------------------------------
  group statistic p-value(g-1)
1    20     69.06    1.318e-07
2    30     66.09    1.020e-04
3    40    110.71    8.649e-09
4    50    100.08    2.311e-05


Elapsed time : 0.3922601 

Use extractor functions

estimating coefficients

coef(samsung.garch11.fit)
          mu        omega       alpha1        beta1 
8.099093e-04 5.322766e-06 4.164154e-02 9.440017e-01 

unconditional mean in mean equation

uncmean(samsung.garch11.fit)
[1] 0.0008099093

unconditional variance: omega/(alpha1 + beta1)

uncvariance(samsung.garch11.fit)
[1] 0.0003707495
mean(samsung$ret^2)
[1] 0.0003808573

persistence: alpha1 + beta1

persistence(samsung.garch11.fit)
[1] 0.9856432

residuals: e(t)

plot.ts(residuals(samsung.garch11.fit), ylab="e(t)", col="blue")

plot.ts(sigma(samsung.garch11.fit), ylab="sigma(t)", col="blue")

illustrate plot method

plot(samsung.garch11.fit, which=1)

plot(samsung.garch11.fit, which=3)

plot(samsung.garch11.fit, which=5)

LS0tDQp0aXRsZTogIlNlbWluYXIiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KVGhpcyBub3RlIGJvb2sgaXMgZm9yIHRoZSBzZW1pbmFyIGluIDIwMTcvNS8yMQ0KDQpgYGB7cn0NCmxpYnJhcnkocXVhbnRtb2QpDQpsaWJyYXJ5KFBlcmZvcm1hbmNlQW5hbHl0aWNzKQ0KbGlicmFyeShjYXIpDQpsaWJyYXJ5KEZpblRTKQ0KbGlicmFyeShydWdhcmNoKQ0KYGBgDQpJbXBvcnQgU2Ftc3VuZyBEQVRBIGZyb20gZ29vZ2xlDQpgYGB7cn0NCnNhbXN1bmcgPC0gZ2V0U3ltYm9scygnS1JYOjAwNTkzMCcsIHNyYyA9ICJnb29nbGUiKQ0Kc2Ftc3VuZyA8LSBgS1JYOjAwNTkzMGANCmNvbG5hbWVzKHNhbXN1bmcpIDwtIGMoIm9wZW4iLCAiaGlnaCIsICJsb3ciLCAiY2xvc2UiLCAidm9sdW1lIikNCnNhbXN1bmckcmV0IDwtIGRhaWx5UmV0dXJuKHNhbXN1bmckY2xvc2UpDQpzYW1zdW5nJHZhciA8LSBzYW1zdW5nJHJldF4yDQpzYW1zdW5nJGFicyA8LSBhYnMoc2Ftc3VuZyRyZXQpDQpgYGANClBsb3QgU2Ftc3VuZyBSZXR1cm4gRGF0YSB3aXRoIGl0cyB1bmNvbmRpdGlvbmFsIG1lYW4gYW5kIHZhaXJhbmNlDQpgYGB7cn0NCnBsb3Qoc2Ftc3VuZyRyZXQpDQphYmxpbmUoaD1tZWFuKHNhbXN1bmckcmV0KSxjb2w9J2JsdWUnLCBsd2Q9MykNCmFibGluZShoPXNkKHNhbXN1bmckcmV0KSxjb2w9J3JlZCcsIGx3ZD0zKQ0KYGBgDQoNCmBgYHtyfQ0KbWVhbiA8LSBtZWFuKHNhbXN1bmckcmV0KQ0Kc3RkIDwtIHNxcnQodmFyKChzYW1zdW5nJHJldCkpKQ0KaGlzdChzYW1zdW5nJHJldCwgZnJlcSA9IEZBTFNFKQ0KY3VydmUoZG5vcm0oeCwgbWVhbj1tZWFuLCBzZD1zdGQpLCANCiAgICAgIGNvbD0iZGFya2JsdWUiLCBsd2Q9MiwgYWRkPVRSVUUpDQpgYGANClBsb3QgcmV0dXJucyB3aXRoIHNxdWFyZWQgYW5kIGFicyByZXR1cm5zDQpgYGB7cn0NCmRhdGFUb3Bsb3QgPSBjYmluZChzYW1zdW5nJGNsb3NlLCBzYW1zdW5nJHJldCwgc2Ftc3VuZyR2YXIpDQpkYXRhVG9wbG90ID0gZGF0YVRvcGxvdFstMSxdDQpwbG90LnpvbyhkYXRhVG9wbG90LCBtYWluPSJTYW1zdW5nIixjb2w9ImJsYWNrIikNCmBgYA0KQ29tcHV0ZSB0aGUgc3VtbWFyeSBzdGF0aXN0aWNzIGZvciBzYW1zdW5nIHJldHVybg0KYGBge3J9DQp0YWJsZS5TdGF0cyhzYW1zdW5nJHJldCkNCmBgYA0KcGxvdCBhdXRvY29ycmVsYXRpb25zIG9mIHJldHVybnMsIHJldHVybnNeMiBhbmQgYWJzKHJldHVybnMpDQpgYGB7cn0NCnBhcihtZnJvdz1jKDIsMSkpDQogIGFjZihzYW1zdW5nJHJldCkNCiAgYWNmKHNhbXN1bmckcmV0XjIpDQpwYXIobWZyb3c9YygxLDEpKQ0KYGBgDQpTaW11bGF0ZSBHQVJDSCgxLDEpIHByb2Nlc3MNCg0Kc3BlY2lmeSBHQVJDSCgxLDEpIG1vZGVsDQpgYGB7cn0NCmdhcmNoMTEuc3BlYyA9IHVnYXJjaHNwZWModmFyaWFuY2UubW9kZWwgPSBsaXN0KGdhcmNoT3JkZXI9YygxLDEpKSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgIG1lYW4ubW9kZWwgPSBsaXN0KGFybWFPcmRlcj1jKDAsMCkpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBmaXhlZC5wYXJzPWxpc3QobXUgPSAwLCBvbWVnYT0wLjEsIGFscGhhMT0wLjEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZXRhMSA9IDAuNykpDQpzZXQuc2VlZCgxMjMpDQpnYXJjaDExLnNpbTE9dWdhcmNocGF0aChnYXJjaDExLnNwZWMsIG4uc2ltPTEwMDApDQoNCmBgYA0KVXNlIHRoZSBwbG90IG1ldGhvZCB0byBwbG90IHNpbXVsYXRlZCBzZXJpZXMgYW5kIGNvbmRpdGlvbmFsIHZvbGF0aWxpdHkNCmBgYHtyfQ0KcGFyKG1mcm93PWMoMiwxKSkNCiAgcGxvdChnYXJjaDExLnNpbTEsIHdoaWNoPTIpDQogIHBsb3QoZ2FyY2gxMS5zaW0xLCB3aGljaD0xKQ0KcGFyKG1mcm93PWMoMSwxKSkNCmBgYA0KVXNlIHFxUGxvdCgpIGZ1bmN0aW9uDQpgYGB7cn0NCnFxUGxvdChnYXJjaDExLnNpbTFAcGF0aCRzZXJpZXNTaW0sIHlsYWI9IkdBUkNIKDEsMSkgUmV0dXJucyIpDQpgYGANCg0KYGBge3J9DQpwYXIobWZyb3c9YygzLDEpKQ0KICBhY2YoZ2FyY2gxMS5zaW0xQHBhdGgkc2VyaWVzU2ltLCBtYWluPSJSZXR1cm5zIikNCiAgYWNmKGdhcmNoMTEuc2ltMUBwYXRoJHNlcmllc1NpbV4yLCBtYWluPSJSZXR1cm5zXjIiKQ0KICBhY2YoYWJzKGdhcmNoMTEuc2ltQHBhdGgkc2VyaWVzU2ltKSwgbWFpbj0iYWJzKFJldHVybnMpIikNCnBhcihtZnJvdz1jKDEsMSkpDQpgYGANCg0KVGVzdGluZyBmb3IgQVJDSC9HQVJDSCBlZmZlY3RzIGluIHJldHVybnMNCg0KVXNlIEJveC50ZXh0IGZyb20gc3RhdHMgcGFja2FnZQ0KYGBge3J9DQpCb3gudGVzdChjb3JlZGF0YShzYW1zdW5nJHJldF4yKSwgdHlwZT0iTGp1bmctQm94IiwgbGFnID0gMTIpDQpgYGANClVzZSBBcmNoVGVzdCgpIGZ1bmN0aW9uIGZyb20gRmluVFMgcGFja2FnZSBmcm8gRW5nbGUncyBMTSB0ZXN0DQpgYGB7cn0NCkFyY2hUZXN0KHNhbXN1bmckcmV0KQ0KYGBgDQoNCkVzdGltYXRlIEdBUkNIKDEsMSkNCg0KU3BlY2lmeSBHQVJDSCgxLDEpIG1vZGVsIHdpdGggb25seSBjb25zdGFudCBpbiBtZWFuIGVxdWF0aW9uDQpgYGB7cn0NCmdhcmNoMTEuc3BlYyA9IHVnYXJjaHNwZWModmFyaWFuY2UubW9kZWwgPSBsaXN0KGdhcmNoT3JkZXI9YygxLDEpKSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgIG1lYW4ubW9kZWwgPSBsaXN0KGFybWFPcmRlcj1jKDAsMCkpKQ0Kc2Ftc3VuZy5nYXJjaDExLmZpdCA9IHVnYXJjaGZpdChzcGVjPWdhcmNoMTEuc3BlYywgZGF0YT1zYW1zdW5nJHJldCwgc29sdmVyLmNvbnRyb2wgPSBsaXN0KHRyYWNlPTEpKQ0KY2xhc3Moc2Ftc3VuZy5nYXJjaDExLmZpdCkNCnNsb3ROYW1lcyhzYW1zdW5nLmdhcmNoMTEuZml0KQ0KbmFtZXMoc2Ftc3VuZy5nYXJjaDExLmZpdEBmaXQpDQpgYGANClNob3cgR2FyY2ggRml0DQpgYGB7cn0NCnNhbXN1bmcuZ2FyY2gxMS5maXQNCmBgYA0KVXNlIGV4dHJhY3RvciBmdW5jdGlvbnMNCg0KZXN0aW1hdGluZyBjb2VmZmljaWVudHMNCmBgYHtyfQ0KY29lZihzYW1zdW5nLmdhcmNoMTEuZml0KQ0KYGBgDQp1bmNvbmRpdGlvbmFsIG1lYW4gaW4gbWVhbiBlcXVhdGlvbg0KYGBge3J9DQp1bmNtZWFuKHNhbXN1bmcuZ2FyY2gxMS5maXQpDQpgYGANCnVuY29uZGl0aW9uYWwgdmFyaWFuY2U6IG9tZWdhLyhhbHBoYTEgKyBiZXRhMSkNCmBgYHtyfQ0KdW5jdmFyaWFuY2Uoc2Ftc3VuZy5nYXJjaDExLmZpdCkNCm1lYW4oc2Ftc3VuZyRyZXReMikNCmBgYA0KcGVyc2lzdGVuY2U6IGFscGhhMSArIGJldGExDQpgYGB7cn0NCnBlcnNpc3RlbmNlKHNhbXN1bmcuZ2FyY2gxMS5maXQpDQpgYGANCnJlc2lkdWFsczogZSh0KQ0KYGBge3J9DQpwbG90LnRzKHJlc2lkdWFscyhzYW1zdW5nLmdhcmNoMTEuZml0KSwgeWxhYj0iZSh0KSIsIGNvbD0iYmx1ZSIpDQpwbG90LnRzKHNpZ21hKHNhbXN1bmcuZ2FyY2gxMS5maXQpLCB5bGFiPSJzaWdtYSh0KSIsIGNvbD0iYmx1ZSIpDQpgYGANCmlsbHVzdHJhdGUgcGxvdCBtZXRob2QNCmBgYHtyfQ0KcGxvdChzYW1zdW5nLmdhcmNoMTEuZml0LCB3aGljaD0xKQ0KcGxvdChzYW1zdW5nLmdhcmNoMTEuZml0LCB3aGljaD0zKQ0KcGxvdChzYW1zdW5nLmdhcmNoMTEuZml0LCB3aGljaD01KQ0KYGBgDQoNCg0KDQoNCg0KDQoNCg0K