0
$\begingroup$

is anyone here familiar with loss functions like MSE? I have basically 1000 simulated return matrices (T x N where T=700 and N = 5 stocks). Now I have to calculate the one step ahead volatility forecasts on the simulated returns using different models for eg multivariate EWMA,DCC GARCH and input these forecasts into the loss function to select a superior model. I have two questions regarding how to proceed from here:

1) should I calculate the one step ahead volatility forecasts based on the last period's return only? Because both the models mentioned above predict a different covariance forecast for each time period based on the previous time period's forecast.

2) When it comes to choosing a volatility proxy to input in the loss function, the paper I am following mentions that they have used the outer product of error terms (Et' * Et). Now my understanding of loss functions is fairly limited but as far as I know I have to compare the forecasts with the real volatility denoted by the proxy so I am assuming I should take the outer product of error terms on the real return data (as opposed to the simulated returns) but since I have only simulated returns for 700 periods while the actual return data I have is for 1000 periods, should I take the time into consideration when taking the outer product because each time period has a different covariance matrix (1000 periods vs 700 periods)?

Thanks in advance!

$\endgroup$
  • $\begingroup$ With simulated returns, you know the true underlying volatility. Use it. Using some proxy instead would be inefficient. $\endgroup$ – Richard Hardy May 4 '17 at 13:01
  • $\begingroup$ Can you please elaborate how I can calculate the true underlying volatility? I'm afraid i am totally new to this so need clarification regarding the implementation. I would really appreciate if you could also tell me why I know the true underlying proxy with simulated returns $\endgroup$ – Hsk May 4 '17 at 13:03
  • $\begingroup$ You know the true volatility, not a proxy. How do you simulate? You must specify the data generating process when you simulate (it is impossible to do without it). The volatility is part of the specification of the data generating process. Since you specify it, you know it. $\endgroup$ – Richard Hardy May 4 '17 at 14:11
  • $\begingroup$ Oh okay, now I understand what you meant, thanks for clarifying. Yes I have specified the DGP as DCC GARCH and simulated using the sd calculated by univariate GARCH. However, this paper that I am following has used the outer product of error terms as proxy for the loss function and since I am trying to replicate their study, that's why I want to use the proxy they have used. $\endgroup$ – Hsk May 4 '17 at 15:22
  • $\begingroup$ That will be a very noisy proxy. Does the study you are refering to give a good reason for using a proxy when they know the true value? Sounds like wasting statistical power. $\endgroup$ – Richard Hardy May 4 '17 at 15:32
1
$\begingroup$
  1. Choose whether you will use a rolling window or an expanding window and what the length of the first window will be. E.g. choose a rolling window of size 200.
    Then estimate the model on the data from 1 to 200 and forecast one step ahead. Save the forecast.
    Roll the window to the period from 2 to 201, estimate the model, and forecast one step ahead.
    Continue rolling and forecasting until and including the period from 500 to 699.
    Now you have 500 forecasts. Compare those to the actual values which you know since you have simulated the data. If you insist (in the comments) on using a volatility proxy instead of the true value, well, then compare the forecasts to the volatility proxy.
    This is a bit more than you ask in (1) but it should leave no ambiguity as to what the answer is.
  2. Act as if the simulated data is the real data. Use the outer product of the estimated errors (if the conditional mean model is "empty", then just the raw returns) $\varepsilon_{t+1} \varepsilon_{t+1}'$ when assessing the forecast of $\sigma_{t+1}^2$.
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.