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.