I want to predict future returns over a 20 days horizon using an ARMA-GARCH model fitted to my data. The goal is to estimate different risk measures like VaR or CVar. In particular say I use AR(1) GARCH(1,1). The smaple I use for estimation has 500 observation of daily logreturns. That's what I usually do:

  1. Estimate AR, ARCH and GARCH coefficients
  2. Calculate standardized residual by dividing residuals by estimated conditional variances
  3. The standardized residuals constitute my INVARIANTS that is the i.i.d. series from which I extract bootstrap samples to generate scenarios.

The bootstrap samples are extracted by simulating a uniform between 1 and the sample size (500 in this case) and then taking the value corresponding to that position in the vector of the standardized residuals.

The problem is that I have only 500 standardized residuals and I think 500 is the maximum size of bootstrap samples I can extract.

My colleague instead extracts 100000 observations out of the original sample of $N=500$ observations.

I feel that this is somehow incorrect conceptually. Simulating only one step forward would produce exactly the same scenario as the initial one, but with repeted values that add no information.

My colleague claims that if he wants to project over a longer period, e.g. 20 days horizon, the 100000 extractions from the original sample of N=500 obs. would produce many different scenarios at the final horizon, providing a CDF that is smooth. Actually thit is true because, although the values are simply repeated in the first step, after that they can sum up in many different ways.

That being said I don't feel this is right. I proposed an alternative that is:

  1. From the standardized residuals create a smoothed empirical CDF, say kernel
  2. Exctract uniforms between 0 and 1 and feed it to the empirical smoothed CDF, i.e. inverse transform.

This way I feel more confortable to say that I can generate a bootstrab sample of size greater than the original one, but still I am not sure.

I am studying bootstrap theory on a book from Efron

Efron, Tibshirani - An Introduction to the Bootstrap - Springer US (1993)

but there are many concepts that I don't understand yet.

My question are:

  1. Would you give your opinion on the problem I just showed below?
  2. Would you suggest any valid matherial for studying bootstrap other than the book I mentioned?
  3. I think that this application of bootstrap is somehow different to the one explained in Efron's bookm, that is evaluating confidence intervals for estimated paramenters. What do you think about it?

Any comment would be much appreciated

I apologize for the length of the post but I tried to be as much concise as I could. Thank you


2 Answers 2


The objective of bootstrapping is (usually) to get some idea of the distribution of the parameter estimate(s). Since the parameter estimates were formed on the basis of a sample of size $N$, their distribution is conditional upon that sample size. Resampling to larger or smaller sample sizes will, consequently. give a more distorted view of the distribution of the parameter estimates than resampling with a sample size of $N$.

In this case, however, you are not actually performing the Efron bootstrap. You are simply generating simulated values of the sample path based upon the 500 estimated errors. Consequently, the issue with whether or not you can generate more than 500 such sample paths is moot; you can, as Johan points out, generate as many as you want.

Since you are basing all your results on the one set of initial parameter estimates, the sample paths are conditional upon that set being correct. The variability in the end result does not take into account parameter uncertainty, and it is this additional variability that the Efron bootstrap is designed to help with. A process that incorporates the bootstrap might be:

  1. Select a sample (with replacement) of 500 values from the initial set of standardized residuals (this 500 is the "500" that gave you so much trouble in your thinking about the problem and that Efron refers to in the book,)
  2. Calculate a simulated version of the original series using those standardized residuals and your initial parameter estimates,
  3. Re-estimate the parameters using the simulated version of the original series,
  4. Use the standardized residuals from the re-estimated parameters and the original data to generate some (smallish) number $M$ of future sample paths,
  5. If you've generated enough overall sample paths, exit, else go to 1.

Steps 1 through 3 are where the Efron bootstrap comes into play. Step 4 is the simulation as it is currently performed. Note that at each iteration you are generating new standardized residuals for use in the simulator; this will lessen the dependence of the results on the initial set of parameter estimates / standardized residuals and take into account, to some extent, the inaccuracy in the parameter estimates themselves.

If you generate $K$ bootstrap estimates in steps 1 and 2, you will have generated $KM$ total sample paths at the end of the exercise. How you should divide those between $K$ and $M$ depends to some extent on the various computational burdens involved but also upon how the contributions to randomness are split between parameter estimation error and sample path variability. As a general rule, the more accurate your parameter estimates are, the smaller $K$ can be; conversely, the less the sample paths vary for a given value of the parameter estimates, the smaller $M$ can be.

  • $\begingroup$ This is crystal clear now, thank you for looking into it and taking the time to understand my problem, but mainly to give the connection between the "Efron bootstrap" and the "standard bootstrap" $\endgroup$
    – gioxc88
    Jan 31, 2018 at 6:58
  • 1
    $\begingroup$ @HardCore, the terminology might be inverse, i.e. the Efron bootstrap might be the standard one. I am not sure if this is correct, though. $\endgroup$ Jan 31, 2018 at 15:06
  • $\begingroup$ @RichardHardy - it's a professional difference in nomenclature, I believe. What we think of in the stats community as the "bootstrap" is what I refer to here as the "Efron bootstrap" to distinguish it from what, I believe, is the "bootstrap" referred to in Hard Core's world, which looks to us more like "simulation". $\endgroup$
    – jbowman
    Jan 31, 2018 at 16:10

It is perfectly fine to sample more than 500 draws from the empirical distribution.

The 500 standardized residuals make up the empirical distribution from which you sample your realizations of $z_{t+h}$ that is needed for multi-step forecast. In the one-step ahead case no draws are needed since the conditional volatility at time $t+1$ is known based on the informationset at time $t$.

As you correctly do, one samples with replacement from the empirical distribution. Hence, you can obtain as many draws as you want. You just need to think of the empirical distribution in the same way as if you draw from an assumed iid N(0,1).

Simulation based forecasts are based on the mean of the simulated volatility paths. When increasing the number of simulations, the mean will be closer to the "true" forecast. One interesting exercise will be to assume $z_t$ iid N(0,1) and compare it with the analytical GARCH forecast - with a large number of bootstrap samples, the two forecasts will be identical.

An alternative approach is to fit a distribution, either parametric or non-parametric, to the obtained standardized residuals and draw from that.

  • 1
    $\begingroup$ My answer is based on my experience from the GARCH literature. Please let me know the arguments of Efron, why this should be the case. $\endgroup$ Jan 28, 2018 at 21:52
  • 1
    $\begingroup$ @HardCore - I believe you are confusing the sample size of each bootstrap resample, which should not be larger than the original sample size, with the number of bootstrap resamples. As Johan says, it is perfectly fine to generate more bootstrap resamples than the $N=500$ sample size you have, but each one of those $i=1, \dots, M$ resamples should not have $N_i > 500$. $\endgroup$
    – jbowman
    Jan 28, 2018 at 23:06
  • 2
    $\begingroup$ @jbowman thanks for your comment but probably I have not made myself clear. If I have an original sample of $N=500$ I know that I can sample as many bootstrap resample as I want. But each reasample should not have a size grater than the original sample. Johan Stax Jakobsen wrote that "It is perfectly fine to sample more than $500$ draws from the empirical distribution" and that is in contrast with what you said because my empirical distribution has $N=500$ obs. $\endgroup$
    – gioxc88
    Jan 28, 2018 at 23:15
  • 2
    $\begingroup$ After much thought, I think I'm catching up to where you and Johan are. Thanks for your explanations! $\endgroup$
    – jbowman
    Jan 29, 2018 at 1:22
  • 2
    $\begingroup$ @HardCore You can generate as many bootstrap samples as you want with size equal to your forecast horizon. "Bootstrap" when simulating GARCH process is bit different from trying to approximate finite sample properties with a bootstrap procedure. Bootstrapping in the GARCH context is just drawing from the empirical distribution to be able to generate forecasts. $\endgroup$ Jan 29, 2018 at 15:22

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.