setwd("/Users/brendanobrien/Downloads")
BAC.data=read.csv("/Users/brendanobrien/Downloads/BAC.csv", header = T)
BAC.ts<-ts(BAC.data$Adj.Close, frequency=252, start=c(2013,1))
require("fGarch")
## Loading required package: fGarch
## Loading required package: timeDate
## Loading required package: timeSeries
## Loading required package: fBasics
library(fGarch)
gfit.BA1 <- garchFit(data = BAC.ts,cond.dist = "std")
##
## Series Initialization:
## ARMA Model: arma
## Formula Mean: ~ arma(0, 0)
## GARCH Model: garch
## Formula Variance: ~ garch(1, 1)
## ARMA Order: 0 0
## Max ARMA Order: 0
## GARCH Order: 1 1
## Max GARCH Order: 1
## Maximum Order: 1
## Conditional Dist: std
## h.start: 2
## llh.start: 1
## Length of Series: 1259
## Recursion Init: mci
## Series Scale: 6.149958
##
## Parameter Initialization:
## Initial Parameters: $params
## Limits of Transformations: $U, $V
## Which Parameters are Fixed? $includes
## Parameter Matrix:
## U V params includes
## mu -32.04605891 32.04606 3.204606 TRUE
## omega 0.00000100 100.00000 0.100000 TRUE
## alpha1 0.00000001 1.00000 0.100000 TRUE
## gamma1 -0.99999999 1.00000 0.100000 FALSE
## beta1 0.00000001 1.00000 0.800000 TRUE
## delta 0.00000000 2.00000 2.000000 FALSE
## skew 0.10000000 10.00000 1.000000 FALSE
## shape 1.00000000 10.00000 4.000000 TRUE
## Index List of Parameters to be Optimized:
## mu omega alpha1 beta1 shape
## 1 2 3 5 8
## Persistence: 0.9
##
##
## --- START OF TRACE ---
## Selected Algorithm: nlminb
##
## R coded nlminb Solver:
##
## 0: 1797.1622: 3.20461 0.100000 0.100000 0.800000 4.00000
## 1: 1740.4572: 2.75526 0.166377 0.219703 0.891098 4.00668
## 2: 1457.7027: 2.71274 0.116653 0.210475 0.796505 4.00486
## 3: 1086.4070: 2.54588 0.0308699 0.221875 0.757971 4.00422
## 4: 843.06138: 2.44176 1.00000e-06 0.249043 0.755235 4.00501
## 5: 840.31974: 2.44201 0.00332209 0.249080 0.755267 4.00502
## 6: 831.44334: 2.45372 0.00304434 0.243994 0.753072 4.00480
## 7: 814.83495: 2.52293 1.00000e-06 0.250200 0.756572 4.00529
## 8: 801.89142: 2.52281 0.00260866 0.250231 0.756600 4.00529
## 9: 794.02909: 2.50638 0.00233806 0.251120 0.756823 4.00530
## 10: 787.82541: 2.50072 1.00000e-06 0.259827 0.762566 4.00603
## 11: 769.56548: 2.50004 0.00198692 0.271313 0.767684 4.00669
## 12: 738.30264: 2.49748 0.00137239 0.318004 0.787960 4.00963
## 13: 730.06023: 2.51497 1.00000e-06 0.321316 0.781552 4.01064
## 14: 726.85155: 2.51492 0.000520381 0.321322 0.781557 4.01064
## 15: 726.07758: 2.51481 0.000424743 0.321685 0.781273 4.01086
## 16: 725.44336: 2.51444 0.000248806 0.322886 0.780341 4.01166
## 17: 724.97404: 2.51412 0.000329758 0.324101 0.779391 4.01243
## 18: 695.59300: 2.48298 0.000397707 0.478253 0.657585 4.11469
## 19: 684.62448: 2.51152 0.000316574 0.587194 0.565979 4.28442
## 20: 665.02232: 2.50760 0.000848948 0.577594 0.570130 4.72769
## 21: 657.21791: 2.48995 1.00000e-06 0.529579 0.612332 5.16459
## 22: 634.78994: 2.48669 0.000742260 0.687014 0.440692 5.54188
## 23: 600.67191: 2.50683 0.000773845 1.00000 0.131868 7.13347
## 24: 588.13741: 2.50291 0.000755867 1.00000 0.222363 7.80979
## 25: 576.23622: 2.48917 0.000835143 1.00000 0.132816 9.48325
## 26: 571.84580: 2.49957 0.000868920 1.00000 0.157897 10.0000
## 27: 571.65575: 2.49606 0.000854906 1.00000 0.162319 10.0000
## 28: 571.65289: 2.49607 0.000850859 1.00000 0.161268 10.0000
## 29: 571.65044: 2.49610 0.000842096 1.00000 0.161396 10.0000
## 30: 571.64950: 2.49611 0.000834379 1.00000 0.162276 10.0000
## 31: 571.64944: 2.49611 0.000833495 1.00000 0.162603 10.0000
## 32: 571.64944: 2.49611 0.000833567 1.00000 0.162651 10.0000
## 33: 571.64944: 2.49611 0.000833581 1.00000 0.162651 10.0000
##
## Final Estimate of the Negative LLH:
## LLH: 2858.554 norm LLH: 2.270496
## mu omega alpha1 beta1 shape
## 15.35096757 0.03152768 0.99999999 0.16265128 10.00000000
##
## R-optimhess Difference Approximated Hessian Matrix:
## mu omega alpha1 beta1 shape
## mu -816.8008603 -7326.68505 7.260749 -97.23600 -0.2515685
## omega -7326.6850550 -25555.74785 -476.628013 -6284.33490 52.0782207
## alpha1 7.2607489 -476.62801 -516.033613 -650.72515 -11.7973951
## beta1 -97.2359982 -6284.33490 -650.725151 -1089.43522 -15.3121878
## shape -0.2515685 52.07822 -11.797395 -15.31219 -1.3882460
## attr(,"time")
## Time difference of 0.04724002 secs
##
## --- END OF TRACE ---
## Warning in sqrt(diag(fit$cvar)): NaNs produced
##
## Time to Estimate Parameters:
## Time difference of 0.28531 secs
coef(gfit.BA1)
## mu omega alpha1 beta1 shape
## 15.35096757 0.03152768 0.99999999 0.16265128 10.00000000
summary(gfit.BA1)
##
## Title:
## GARCH Modelling
##
## Call:
## garchFit(data = BAC.ts, cond.dist = "std")
##
## Mean and Variance Equation:
## data ~ garch(1, 1)
## <environment: 0x7f8d9dc804a8>
## [data = BAC.ts]
##
## Conditional Distribution:
## std
##
## Coefficient(s):
## mu omega alpha1 beta1 shape
## 15.350968 0.031528 1.000000 0.162651 10.000000
##
## Std. Errors:
## based on Hessian
##
## Error Analysis:
## Estimate Std. Error t value Pr(>|t|)
## mu 15.35097 0.03108 493.983 < 2e-16 ***
## omega 0.03153 NA NA NA
## alpha1 1.00000 0.07269 13.758 < 2e-16 ***
## beta1 0.16265 0.03628 4.483 7.37e-06 ***
## shape 10.00000 0.92841 10.771 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Log Likelihood:
## -2858.554 normalized: -2.270496
##
## Description:
## Thu Nov 29 15:28:09 2018 by user:
##
##
## Standardised Residuals Tests:
## Statistic p-Value
## Jarque-Bera Test R Chi^2 149.3179 0
## Shapiro-Wilk Test R W 0.8001343 0
## Ljung-Box Test R Q(10) 8070.729 0
## Ljung-Box Test R Q(15) 10882.73 0
## Ljung-Box Test R Q(20) 13100.57 0
## Ljung-Box Test R^2 Q(10) 20.17633 0.02762835
## Ljung-Box Test R^2 Q(15) 28.95116 0.01631913
## Ljung-Box Test R^2 Q(20) 55.08226 3.991514e-05
## LM Arch Test R TR^2 22.42096 0.03306394
##
## Information Criterion Statistics:
## AIC BIC SIC HQIC
## 4.548934 4.569339 4.548903 4.556602
rm(gfit.BA1)
gfit.BA2 <- garchFit(data = BAC.ts,formula =~arma(5,1,0) +garch(1,1),cond.dist = "QMLE", trace = FALSE)
coef(gfit.BA2)
## mu ar1 ar2 ar3 ar4
## 0.032049599 0.999999990 -0.018367445 0.052204831 -0.070564720
## ar5 omega alpha1 beta1
## 0.035608555 0.001092902 0.052295049 0.938579706
summary(gfit.BA2)
##
## Title:
## GARCH Modelling
##
## Call:
## garchFit(formula = ~arma(5, 1, 0) + garch(1, 1), data = BAC.ts,
## cond.dist = "QMLE", trace = FALSE)
##
## Mean and Variance Equation:
## data ~ arma(5, 1, 0) + garch(1, 1)
## <environment: 0x7f8d9deaed50>
## [data = BAC.ts]
##
## Conditional Distribution:
## QMLE
##
## Coefficient(s):
## mu ar1 ar2 ar3 ar4 ar5
## 0.0320496 1.0000000 -0.0183674 0.0522048 -0.0705647 0.0356086
## omega alpha1 beta1
## 0.0010929 0.0522950 0.9385797
##
## Std. Errors:
## robust
##
## Error Analysis:
## Estimate Std. Error t value Pr(>|t|)
## mu 0.032050 0.035904 0.893 0.3720
## ar1 1.000000 0.034049 29.369 <2e-16 ***
## ar2 -0.018367 0.051719 -0.355 0.7225
## ar3 0.052205 0.045970 1.136 0.2561
## ar4 -0.070565 0.041787 -1.689 0.0913 .
## ar5 0.035609 0.030386 1.172 0.2413
## omega 0.001093 0.027592 0.040 0.9684
## alpha1 0.052295 0.078640 0.665 0.5061
## beta1 0.938580 0.066962 14.017 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Log Likelihood:
## -219.1543 normalized: -0.1740701
##
## Description:
## Thu Nov 29 15:28:11 2018 by user:
##
##
## Standardised Residuals Tests:
## Statistic p-Value
## Jarque-Bera Test R Chi^2 402.6578 0
## Shapiro-Wilk Test R W 0.9724935 9.545554e-15
## Ljung-Box Test R Q(10) 9.371617 0.4972359
## Ljung-Box Test R Q(15) 11.68084 0.7030089
## Ljung-Box Test R Q(20) 14.54721 0.8017039
## Ljung-Box Test R^2 Q(10) 16.652 0.08242773
## Ljung-Box Test R^2 Q(15) 21.32049 0.1268982
## Ljung-Box Test R^2 Q(20) 25.5174 0.1823486
## LM Arch Test R TR^2 15.82834 0.1992257
##
## Information Criterion Statistics:
## AIC BIC SIC HQIC
## 0.3624373 0.3991670 0.3623361 0.3762403
rm(gfit.BA2)
gfit.BA3 <- garchFit(data = BAC.ts,formula =~arma(3,1,0) +garch(1,1),cond.dist = "QMLE", trace = FALSE)
coef(gfit.BA3)
## mu ar1 ar2 ar3 omega
## 0.031076334 0.999999990 -0.015905506 0.014852504 0.001169848
## alpha1 beta1
## 0.053375579 0.936687633
summary(gfit.BA3)
##
## Title:
## GARCH Modelling
##
## Call:
## garchFit(formula = ~arma(3, 1, 0) + garch(1, 1), data = BAC.ts,
## cond.dist = "QMLE", trace = FALSE)
##
## Mean and Variance Equation:
## data ~ arma(3, 1, 0) + garch(1, 1)
## <environment: 0x7f8d9fd618b0>
## [data = BAC.ts]
##
## Conditional Distribution:
## QMLE
##
## Coefficient(s):
## mu ar1 ar2 ar3 omega alpha1
## 0.0310763 1.0000000 -0.0159055 0.0148525 0.0011698 0.0533756
## beta1
## 0.9366876
##
## Std. Errors:
## robust
##
## Error Analysis:
## Estimate Std. Error t value Pr(>|t|)
## mu 0.03108 0.03567 0.871 0.384
## ar1 1.00000 0.03424 29.209 <2e-16 ***
## ar2 -0.01591 0.05030 -0.316 0.752
## ar3 0.01485 0.03253 0.457 0.648
## omega 0.00117 0.02661 0.044 0.965
## alpha1 0.05338 0.07100 0.752 0.452
## beta1 0.93669 0.06030 15.534 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Log Likelihood:
## -220.5722 normalized: -0.1751964
##
## Description:
## Thu Nov 29 15:28:11 2018 by user:
##
##
## Standardised Residuals Tests:
## Statistic p-Value
## Jarque-Bera Test R Chi^2 405.4613 0
## Shapiro-Wilk Test R W 0.9716999 5.475332e-15
## Ljung-Box Test R Q(10) 12.32656 0.2637951
## Ljung-Box Test R Q(15) 14.60577 0.4801693
## Ljung-Box Test R Q(20) 17.28748 0.6342353
## Ljung-Box Test R^2 Q(10) 16.96318 0.0751827
## Ljung-Box Test R^2 Q(15) 21.35949 0.1257313
## Ljung-Box Test R^2 Q(20) 25.34146 0.1886785
## LM Arch Test R TR^2 16.04094 0.1893679
##
## Information Criterion Statistics:
## AIC BIC SIC HQIC
## 0.3615127 0.3900802 0.3614513 0.3722484
rm(gfit.BA3)
gfit.BA4 <- garchFit(data = BAC.ts,formula =~arma(2,1)+garch(1,1),cond.dist = "QMLE", trace = FALSE)
coef(gfit.BA4)
## mu ar1 ar2 ma1 omega alpha1
## 0.045954794 0.522518534 0.475931122 0.509684065 0.001158219 0.052914348
## beta1
## 0.937172829
summary(gfit.BA4)
##
## Title:
## GARCH Modelling
##
## Call:
## garchFit(formula = ~arma(2, 1) + garch(1, 1), data = BAC.ts,
## cond.dist = "QMLE", trace = FALSE)
##
## Mean and Variance Equation:
## data ~ arma(2, 1) + garch(1, 1)
## <environment: 0x7f8d9e956588>
## [data = BAC.ts]
##
## Conditional Distribution:
## QMLE
##
## Coefficient(s):
## mu ar1 ar2 ma1 omega alpha1
## 0.0459548 0.5225185 0.4759311 0.5096841 0.0011582 0.0529143
## beta1
## 0.9371728
##
## Std. Errors:
## robust
##
## Error Analysis:
## Estimate Std. Error t value Pr(>|t|)
## mu 0.045955 0.052335 0.878 0.37989
## ar1 0.522519 0.193402 2.702 0.00690 **
## ar2 0.475931 0.193619 2.458 0.01397 *
## ma1 0.509684 0.186548 2.732 0.00629 **
## omega 0.001158 0.026560 0.044 0.96522
## alpha1 0.052914 0.070586 0.750 0.45347
## beta1 0.937173 0.060131 15.585 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Log Likelihood:
## -220.132 normalized: -0.1748467
##
## Description:
## Thu Nov 29 15:28:12 2018 by user:
##
##
## Standardised Residuals Tests:
## Statistic p-Value
## Jarque-Bera Test R Chi^2 384.4945 0
## Shapiro-Wilk Test R W 0.9728097 1.194795e-14
## Ljung-Box Test R Q(10) 10.04873 0.4362286
## Ljung-Box Test R Q(15) 12.38127 0.6499709
## Ljung-Box Test R Q(20) 14.96994 0.7781252
## Ljung-Box Test R^2 Q(10) 17.3925 0.06611765
## Ljung-Box Test R^2 Q(15) 21.77667 0.113795
## Ljung-Box Test R^2 Q(20) 26.02472 0.1649969
## LM Arch Test R TR^2 16.34145 0.1760928
##
## Information Criterion Statistics:
## AIC BIC SIC HQIC
## 0.3608133 0.3893808 0.3607519 0.3715490
rm(gfit.BA4)
This Garch model performs better than the previous models I used on this data in terms of AIC and BIC. However, not all of the coefficients are significant in this model.