Skip to content
All library documents

Resampling Methods for Robust Markowitz Portfolio Weights

Article Quant Q&A · Author: user55753

Summary

The document compares Monte Carlo simulation, daily-return bootstrapping, and block bootstrapping as ways to estimate portfolio weights for monthly rebalancing. It distinguishes simulating correlated returns from fitted distributions, resampling observed daily returns, and sampling contiguous return blocks, then considers averaging the resulting Markowitz portfolios. The response instead organizes the methods by what is resampled and asks which uncertainty the investor wants to address.

For covariance uncertainty, it suggests estimating or cleaning the covariance matrix itself, potentially using resampled data, rather than averaging portfolios. For uncertain expected returns, it cautions that resampling alone may not help and recommends checking whether recent returns relate to future returns. It frames the choice as a comparison between applying the portfolio rule to estimated inputs and averaging portfolios produced from uncertain inputs. Since Markowitz weights depend nonlinearly on expected returns and covariance, sensitivity to input errors matters. The document gives conceptual guidance rather than a tested comparison or a definitive recommendation; its claims about simulation and correlation should be treated cautiously.

Key ideas

  • Choose a resampling method based on whether the main uncertainty lies in expected returns or the covariance matrix.
  • Monte Carlo simulation, daily bootstrapping, and block bootstrapping preserve different features of the observed return data.
  • Resampling portfolios and cleaning the estimated inputs are distinct approaches to handling estimation uncertainty.
  • Markowitz weights can be sensitive to errors in expected returns and covariance because the portfolio mapping is nonlinear.

Tags

Full text
# Monte Carlo vs. Block Bootstrapping vs. Bootstrapping


# Monte Carlo vs. Block Bootstrapping vs. Bootstrapping












Because I can fit e.g. ~25 distributions via empirical cumulative distribution fitting to correlated data (including stable dist.), and then simulate the original data based on correlation (covariance) using the best fitting distribution for each feature, I am planning on the following three approaches regarding MC and bootstrapping for estimating optimal weights for monthly re-balancing (20 trading days).

PROPOSED MONTE CARLO APPROACH

Fetch about 2-4 years of daily price data for the stocks of interest, estimate log-returns, and fit various distributions to the log-returns for each asset. Then, using the correlation between the assets, simulate small blocks of e.g. 20 days (1 month) of log-returns.

Next, use MV minimization (tangency portfolio) with the mean returns and covariance matrix for the 20-day sequence of simulated log-returns, repeat $B=500$ times, and average the weight vectors $\mathbf{w}^{(b)}$, portfolio returns $r_P^{(b)}$ and portfolio variance $\sigma^{2 (b)}_P$ for all the $B$ iterations. Determine the median, and 10th and 90th percentiles of each ($\mathbf{w}$, $r_P$, $\sigma^2_P)$.

RANDOM WALK-FORWARD (BLOCK SAMPLING)

In the nice paper by Daly et al on covariance noise filtering via Marcenko-Pastur and daily data, they randomly selected test dates and used data for the following 20 days as the data for each block. During each iteration, all data prior to the randomly selected test date were used for the in-sample training data, and separate analyses were done on the out-of-bag data. They basically filtered covariance and correlation matrices for the training and test (20-day block) data and reported the number of signal eigenvalues greater than $\lambda_+$.

My thoughts here would be to simply generate the return vector and covariance matrix for each 20-day block (of log-returns), and then use MV minimization via a tangency portfolio for the block. Repeat $B=500$ times. This approach would conserve between-asset correlation while also using the observed mean returns, which are alternate realizations.

PURE BOOTSTRAPPING APPROACH

This approach would involve simply fetching random daily data (selecting one day at a time) to construct sequences of e.g. 20 days, which would then be MV-minimized for a min-variance (not tangency) $GMV$ portfolio, assuming zero mean returns, since any information related to mean return here would be biased and false, as individual days were randomly sampled. Repeat $B=500$ times.

I think all three methods above have merit, since the first simulates correlated returns for small sequences of data and applies a tangency portfolio. The second method randomly fetches blocks of data and generates tangency portfolios for each. The last approach simply fetches random days to construct 20-day sequences, and assumes zero returns for the $GMV$ portfolio.

In light of the above and the numerous ways in which MC can be applied to portfolio optimization, which approach is more common for determining weights to be applied during a monthly (20-day) re-balance?

## Answer by lehalle (score 1, accepted)

https://quant.stackexchange.com/a/68045

First of all, I would re-order your approches this way

- Monte-Carlo of daily returns

- Bootstrap of daily returns

- Block Bootstrap of 20 days

Second I would like to comment on what you want to do with the data?

It seems to me that you target to implement a "sliding (20 days) robust Markowitz portfolio". It leads to the question what kind of robustness are you targeting?

if it is a robustness with respect to

- the covariance matrix, this is probably the covariance matrix that you would like to bootstrap, or to clean. They are a lot of documented ways to do it; have a look for instance at Correlation, hierarchies, and networks in financial markets (by M. Tumminello, F. Lillo, R.N. Mantegna, 2008) but if you want to do it by yourself using resampled data, you can work on a distribution of the covariance itself and not on portfolio you could also use your synthetic data to build a covariance matrix that would explain the predicted out of sample risk in any case notice that your MS approach will simply destroy the correlation structure of your assets

- if you fear to not have a good estimation of the expected returns, I am not sure that any of your methods will help, it will be easy for you to check this: are few days of past returns correlated with the future returns? (just draw a scatter plot to check this)

You see that I do not talk about the "robustness of the portfolios" themselves, because given you plan to use a Markowitz construction to obtain them, it means that you will have two inputs: the expected returns and the covariance matrix. Somehow if these are clean, your portfolio will be clean.

Nevertheless I would like to share a generic remark about this: say you have a method $F()$ taking parameters $\Theta$ to produce a quantity of interest. In your case, it seems that you consider that

- $F$ is the Markowitz portfolio construction

- $\Theta=\{C,\mu\}$ where $C$ is the covariance matrix and $\mu$ are the expected returns.

- your portfolio is

$$w=F(\Theta).$$

For some reasons $\Theta$ has to be estimated on a database $D$, tau that your best estimator is $\mathbb{E}_D(\Theta)$. Statisticians call the plug-in method the idea that your "best guess" for the outcome (the portfolio) is $$\hat w=F(\mathbb{E}_D(\Theta)).$$

But you could consider that what you want is $$\tilde w=\mathbb{E}_D(F(\Theta)).$$ This is the approach that you have in mind, since you want to produce several portfolios and apply a filter on them (in your case you plan to average them) to obtain "something better".

What is the difference?

- when $F$ is linear: there is no difference (except if your procedure $\mathbb{E}_D$ to obtain a clean estimate is very strange and tricky).

- if we assume that the best estimator of $\Theta$ is $$\Theta^* = \Theta-\epsilon,$$ where $\epsilon$ is small, the plug-in approach can be rewritten (thanks to q Taylor expansion) $$\hat w=F(\mathbb{E}_D(\Theta))=F(\Theta^*) + \partial F(\Theta^*)\cdot\epsilon+o(\epsilon).$$

Hence the question to ask to yourself is: what is the sensibility of my formula $F$ (ie the Markowitz portfolio construction) to the parameters I will estimate (ie the expected returns and the covariance matrix)?

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.