Feeds:
Posts

## BASIC LINEAR MODEL EXERCISE: DO MULTIVARIATE MULTILAG MODELS HAVE SUPERIOR OUT-SAMPLE PERFORMANCE?

### zulfikar.ahmed@gmail.com<zulfikar.ahmed@gmail.com>

12:49 AM (15 hours ago)

 to jfrenkel, jhansen, jharrington, jharris, jhp, jhricko_4, jhs, jhutasoi, jianjunp, jinha, jjbrehm, jlind, jlondon, jlw, jmateo, jmerseth, jmetcalf, jmg, jmogel, joel, joelms, john.aldrich, john.beatty, johncrawford53, jose.oliveira

Here we present a basic solid result for daily stock volatility prediction.  We consider the question of whether a multilag multivariate basic standard linear model significantly improves predictive ability for volatility over a lag-1 univariate model.  This is a very basic question and provides a baseline result.  This is interesting because a univariate lag-1 model for volatility is quite good with mean in-sample R^2 of 0.92 +/- 0.02 (over a sample of 49 stocks).  Our definition of volatility is log(return^2).  We find that there is a significant improvement out-of-sample for a basic linear model with the following variables:

[‘av1′,’lr2_1′,’av2′,’lr2_2′,’lv2_2′,’lr2_3’,
‘lr2_4′,’lr2_5′,’lr2_6′,’lr2_7′,’lr2_8′,’lr2_9’,
‘lr2_10′,’lr2_11′,’lr2_12’]

Here the number after the underscore is the lag and ‘av’ is aggregate volatility (average of log(return^2)), ‘lr2’ are the lags of log(return^2), and ‘lv’ is the log(volume).

The main result is that in-sample R^2 improvement is

>>> np.mean(x[‘R2imp’])
0.033000034736010216
>>> np.std(x[‘R2imp’])
0.008637413636906309

The attached file gives per-stock the log-likelihood in-sample for M1 (lag-1 model) M2 (multivariate linear model), the R^2 as well as out-of-sample MAD.  This last improves as follows:

2.0893499000250007
1.6253664815384081

which is a nice 22% reduction in out-of-sample error.  Attached are some of the graphs of the out-of-sample residuals (red is the lag-1 univariate black the multivariate linear model).

​ This is a solid result employing completely classical linear model without any fancy structure that gets us to an average R^2 = 0.957 (+/-0.012) in-sample and the attached graphs gives the out-sample errors without any re-estimation of parameters.

29 Attachments

Preview attachment lm-volpred-outsample-residuals-OC.png

Preview attachment lm-volpred-outsample-residuals-FNSR.png

Preview attachment lm-volpred-outsample-residuals-TITN.png

Preview attachment lm-volpred-outsample-residuals-BKD.png

Preview attachment lm-volpred-outsample-residuals-SCSS.png

Preview attachment lm-volpred-outsample-residuals-ACGL.png

Preview attachment lm-volpred-outsample-residuals-KNL.png

Preview attachment lm-volpred-outsample-residuals-HTZ.png

Preview attachment lm-volpred-outsample-residuals-DF.png

Preview attachment lm-volpred-outsample-residuals-ITRI.png

Preview attachment lm-volpred-outsample-residuals-HBI.png

Preview attachment lm-volpred-outsample-residuals-MM.png

Preview attachment lm-volpred-outsample-residuals-SRI.png

Preview attachment lm-volpred-outsample-residuals-SIRO.png

Preview attachment lm-volpred-outsample-residuals-OEH.png

Preview attachment lm-volpred-outsample-residuals-RRGB.png

Preview attachment lm-volpred-outsample-residuals-GOV.png

Preview attachment lm-volpred-outsample-residuals-CVO.png

Preview attachment lm-volpred-outsample-residuals-ELNK.png

Preview attachment lm-volpred-outsample-residuals-RTEC.png

Preview attachment lm-volpred-outsample-residuals-KND.png

Preview attachment lm-volpred-outsample-residuals-G.png

Preview attachment lm-volpred-outsample-residuals-IRBT.png

Preview attachment lm-volpred-outsample-residuals-PRE.png

Preview attachment lm-volpred-outsample-residuals-NGPC.png

Preview attachment univariate-vs-multivariate-vol-models.csv

Preview attachment totv-vol-px.py

Preview attachment shist.tar.gz