ml-finance-python
python scripts for finance machine learning
git clone https://9o.is/git/ml-finance-python.git
lab_22.ipynb
(259535B)
1 {
2 "cells": [
3 {
4 "cell_type": "markdown",
5 "metadata": {},
6 "source": [
7 "# Estimating Covariance and Expected Returns\n",
8 "\n",
9 "We've backtested CW and EW Portfolios and they each have unique positions in industrial implementations.\n",
10 "\n",
11 "CapWeighted portfolios are the overall average and hence the de-facto industry standard. They are very inexpensive to implement and feature very low turnover. In many ways, they are the default go-to implementation choice for many investors.\n",
12 "\n",
13 "However, we've seen that they suffer from some disadvantages, so there is some room for improvement.\n",
14 "\n",
15 "EW are the most obvious improvement because they are the only other technique we are going to look at (other than CW) that requires no estimation of either covariance or expected returns. We've already backtested those and we've seen how easy they are to build.\n",
16 "\n",
17 "We'll now move on the more sophisticated portfolio construction techniques, but they will get us involved in the estimation game, something we've avoided so far ... so let's start by pulling in the data we need and start with the CW and EW portfolios, since they are the baseline portfolios."
18 ]
19 },
20 {
21 "cell_type": "code",
22 "execution_count": 2,
23 "metadata": {},
24 "outputs": [
25 {
26 "name": "stdout",
27 "output_type": "stream",
28 "text": [
29 "The autoreload extension is already loaded. To reload it, use:\n",
30 " %reload_ext autoreload\n"
31 ]
32 },
33 {
34 "name": "stderr",
35 "output_type": "stream",
36 "text": [
37 "<>:47: SyntaxWarning: \"is\" with a literal. Did you mean \"==\"?\n",
38 "<>:50: SyntaxWarning: \"is\" with a literal. Did you mean \"==\"?\n",
39 "<>:53: SyntaxWarning: \"is\" with a literal. Did you mean \"==\"?\n",
40 "<>:47: SyntaxWarning: \"is\" with a literal. Did you mean \"==\"?\n",
41 "<>:50: SyntaxWarning: \"is\" with a literal. Did you mean \"==\"?\n",
42 "<>:53: SyntaxWarning: \"is\" with a literal. Did you mean \"==\"?\n",
43 "<ipython-input-2-01b9737fd21e>:47: SyntaxWarning: \"is\" with a literal. Did you mean \"==\"?\n",
44 " if filetype is \"returns\":\n",
45 "<ipython-input-2-01b9737fd21e>:50: SyntaxWarning: \"is\" with a literal. Did you mean \"==\"?\n",
46 " elif filetype is \"nfirms\":\n",
47 "<ipython-input-2-01b9737fd21e>:53: SyntaxWarning: \"is\" with a literal. Did you mean \"==\"?\n",
48 " elif filetype is \"size\":\n"
49 ]
50 }
51 ],
52 "source": [
53 "import numpy as np\n",
54 "import pandas as pd\n",
55 "\n",
56 "#import edhec_risk_kit_205 as erk\n",
57 "import pandas as pd\n",
58 "import numpy as np\n",
59 "\n",
60 "def get_ffme_returns():\n",
61 " \"\"\"\n",
62 " Load the Fama-French Dataset for the returns of the Top and Bottom Deciles by MarketCap\n",
63 " \"\"\"\n",
64 " me_m = pd.read_csv(\"data/Portfolios_Formed_on_ME_monthly_EW.csv\",\n",
65 " header=0, index_col=0, na_values=-99.99)\n",
66 " rets = me_m[['Lo 10', 'Hi 10']]\n",
67 " rets.columns = ['SmallCap', 'LargeCap']\n",
68 " rets = rets/100\n",
69 " rets.index = pd.to_datetime(rets.index, format=\"%Y%m\").to_period('M')\n",
70 " return rets\n",
71 "\n",
72 "def get_fff_returns():\n",
73 " \"\"\"\n",
74 " Load the Fama-French Research Factor Monthly Dataset\n",
75 " \"\"\"\n",
76 " rets = pd.read_csv(\"data/F-F_Research_Data_Factors_m.csv\",\n",
77 " header=0, index_col=0, na_values=-99.99)/100\n",
78 " rets.index = pd.to_datetime(rets.index, format=\"%Y%m\").to_period('M')\n",
79 " return rets\n",
80 "\n",
81 "\n",
82 "def get_hfi_returns():\n",
83 " \"\"\"\n",
84 " Load and format the EDHEC Hedge Fund Index Returns\n",
85 " \"\"\"\n",
86 " hfi = pd.read_csv(\"data/edhec-hedgefundindices.csv\",\n",
87 " header=0, index_col=0, parse_dates=True)\n",
88 " hfi = hfi/100\n",
89 " hfi.index = hfi.index.to_period('M')\n",
90 " return hfi\n",
91 "\n",
92 "def get_ind_file(filetype, weighting=\"vw\", n_inds=30):\n",
93 " \"\"\"\n",
94 " Load and format the Ken French Industry Portfolios files\n",
95 " Variant is a tuple of (weighting, size) where:\n",
96 " weighting is one of \"ew\", \"vw\"\n",
97 " number of inds is 30 or 49\n",
98 " \"\"\" \n",
99 " if filetype is \"returns\":\n",
100 " name = f\"{weighting}_rets\" \n",
101 " divisor = 100\n",
102 " elif filetype is \"nfirms\":\n",
103 " name = \"nfirms\"\n",
104 " divisor = 1\n",
105 " elif filetype is \"size\":\n",
106 " name = \"size\"\n",
107 " divisor = 1\n",
108 " else:\n",
109 " raise ValueError(f\"filetype must be one of: returns, nfirms, size\")\n",
110 " \n",
111 " ind = pd.read_csv(f\"data/ind{n_inds}_m_{name}.csv\", header=0, index_col=0, na_values=-99.99)/divisor\n",
112 " ind.index = pd.to_datetime(ind.index, format=\"%Y%m\").to_period('M')\n",
113 " ind.columns = ind.columns.str.strip()\n",
114 " return ind\n",
115 "\n",
116 "def get_ind_returns(weighting=\"vw\", n_inds=30):\n",
117 " \"\"\"\n",
118 " Load and format the Ken French Industry Portfolios Monthly Returns\n",
119 " \"\"\"\n",
120 " return get_ind_file(\"returns\", weighting=weighting, n_inds=n_inds)\n",
121 "\n",
122 "def get_ind_nfirms(n_inds=30):\n",
123 " \"\"\"\n",
124 " Load and format the Ken French 30 Industry Portfolios Average number of Firms\n",
125 " \"\"\"\n",
126 " return get_ind_file(\"nfirms\", n_inds=n_inds)\n",
127 "\n",
128 "def get_ind_size(n_inds=30):\n",
129 " \"\"\"\n",
130 " Load and format the Ken French 30 Industry Portfolios Average size (market cap)\n",
131 " \"\"\"\n",
132 " return get_ind_file(\"size\", n_inds=n_inds)\n",
133 "\n",
134 "\n",
135 "def get_ind_market_caps(n_inds=30, weights=False):\n",
136 " \"\"\"\n",
137 " Load the industry portfolio data and derive the market caps\n",
138 " \"\"\"\n",
139 " ind_nfirms = get_ind_nfirms(n_inds=n_inds)\n",
140 " ind_size = get_ind_size(n_inds=n_inds)\n",
141 " ind_mktcap = ind_nfirms * ind_size\n",
142 " if weights:\n",
143 " total_mktcap = ind_mktcap.sum(axis=1)\n",
144 " ind_capweight = ind_mktcap.divide(total_mktcap, axis=\"rows\")\n",
145 " return ind_capweight\n",
146 " #else\n",
147 " return ind_mktcap\n",
148 "\n",
149 "def get_total_market_index_returns(n_inds=30):\n",
150 " \"\"\"\n",
151 " Load the 30 industry portfolio data and derive the returns of a capweighted total market index\n",
152 " \"\"\"\n",
153 " ind_capweight = get_ind_market_caps(n_inds=n_inds)\n",
154 " ind_return = get_ind_returns(weighting=\"vw\", n_inds=n_inds)\n",
155 " total_market_return = (ind_capweight * ind_return).sum(axis=\"columns\")\n",
156 " return total_market_return\n",
157 " \n",
158 "def skewness(r):\n",
159 " \"\"\"\n",
160 " Alternative to scipy.stats.skew()\n",
161 " Computes the skewness of the supplied Series or DataFrame\n",
162 " Returns a float or a Series\n",
163 " \"\"\"\n",
164 " demeaned_r = r - r.mean()\n",
165 " # use the population standard deviation, so set dof=0\n",
166 " sigma_r = r.std(ddof=0)\n",
167 " exp = (demeaned_r**3).mean()\n",
168 " return exp/sigma_r**3\n",
169 "\n",
170 "\n",
171 "def kurtosis(r):\n",
172 " \"\"\"\n",
173 " Alternative to scipy.stats.kurtosis()\n",
174 " Computes the kurtosis of the supplied Series or DataFrame\n",
175 " Returns a float or a Series\n",
176 " \"\"\"\n",
177 " demeaned_r = r - r.mean()\n",
178 " # use the population standard deviation, so set dof=0\n",
179 " sigma_r = r.std(ddof=0)\n",
180 " exp = (demeaned_r**4).mean()\n",
181 " return exp/sigma_r**4\n",
182 "\n",
183 "\n",
184 "def compound(r):\n",
185 " \"\"\"\n",
186 " returns the result of compounding the set of returns in r\n",
187 " \"\"\"\n",
188 " return np.expm1(np.log1p(r).sum())\n",
189 "\n",
190 " \n",
191 "def annualize_rets(r, periods_per_year):\n",
192 " \"\"\"\n",
193 " Annualizes a set of returns\n",
194 " We should infer the periods per year\n",
195 " but that is currently left as an exercise\n",
196 " to the reader :-)\n",
197 " \"\"\"\n",
198 " compounded_growth = (1+r).prod()\n",
199 " n_periods = r.shape[0]\n",
200 " return compounded_growth**(periods_per_year/n_periods)-1\n",
201 "\n",
202 "\n",
203 "def annualize_vol(r, periods_per_year):\n",
204 " \"\"\"\n",
205 " Annualizes the vol of a set of returns\n",
206 " We should infer the periods per year\n",
207 " but that is currently left as an exercise\n",
208 " to the reader :-)\n",
209 " \"\"\"\n",
210 " return r.std()*(periods_per_year**0.5)\n",
211 "\n",
212 "\n",
213 "def sharpe_ratio(r, riskfree_rate, periods_per_year):\n",
214 " \"\"\"\n",
215 " Computes the annualized sharpe ratio of a set of returns\n",
216 " \"\"\"\n",
217 " # convert the annual riskfree rate to per period\n",
218 " rf_per_period = (1+riskfree_rate)**(1/periods_per_year)-1\n",
219 " excess_ret = r - rf_per_period\n",
220 " ann_ex_ret = annualize_rets(excess_ret, periods_per_year)\n",
221 " ann_vol = annualize_vol(r, periods_per_year)\n",
222 " return ann_ex_ret/ann_vol\n",
223 "\n",
224 "\n",
225 "import scipy.stats\n",
226 "def is_normal(r, level=0.01):\n",
227 " \"\"\"\n",
228 " Applies the Jarque-Bera test to determine if a Series is normal or not\n",
229 " Test is applied at the 1% level by default\n",
230 " Returns True if the hypothesis of normality is accepted, False otherwise\n",
231 " \"\"\"\n",
232 " if isinstance(r, pd.DataFrame):\n",
233 " return r.aggregate(is_normal)\n",
234 " else:\n",
235 " statistic, p_value = scipy.stats.jarque_bera(r)\n",
236 " return p_value > level\n",
237 "\n",
238 "\n",
239 "def drawdown(return_series: pd.Series):\n",
240 " \"\"\"Takes a time series of asset returns.\n",
241 " returns a DataFrame with columns for\n",
242 " the wealth index, \n",
243 " the previous peaks, and \n",
244 " the percentage drawdown\n",
245 " \"\"\"\n",
246 " wealth_index = 1000*(1+return_series).cumprod()\n",
247 " previous_peaks = wealth_index.cummax()\n",
248 " drawdowns = (wealth_index - previous_peaks)/previous_peaks\n",
249 " return pd.DataFrame({\"Wealth\": wealth_index, \n",
250 " \"Previous Peak\": previous_peaks, \n",
251 " \"Drawdown\": drawdowns})\n",
252 "\n",
253 "\n",
254 "def semideviation(r):\n",
255 " \"\"\"\n",
256 " Returns the semideviation aka negative semideviation of r\n",
257 " r must be a Series or a DataFrame, else raises a TypeError\n",
258 " \"\"\"\n",
259 " if isinstance(r, pd.Series):\n",
260 " is_negative = r < 0\n",
261 " return r[is_negative].std(ddof=0)\n",
262 " elif isinstance(r, pd.DataFrame):\n",
263 " return r.aggregate(semideviation)\n",
264 " else:\n",
265 " raise TypeError(\"Expected r to be a Series or DataFrame\")\n",
266 "\n",
267 "\n",
268 "def var_historic(r, level=5):\n",
269 " \"\"\"\n",
270 " Returns the historic Value at Risk at a specified level\n",
271 " i.e. returns the number such that \"level\" percent of the returns\n",
272 " fall below that number, and the (100-level) percent are above\n",
273 " \"\"\"\n",
274 " if isinstance(r, pd.DataFrame):\n",
275 " return r.aggregate(var_historic, level=level)\n",
276 " elif isinstance(r, pd.Series):\n",
277 " return -np.percentile(r, level)\n",
278 " else:\n",
279 " raise TypeError(\"Expected r to be a Series or DataFrame\")\n",
280 "\n",
281 "\n",
282 "def cvar_historic(r, level=5):\n",
283 " \"\"\"\n",
284 " Computes the Conditional VaR of Series or DataFrame\n",
285 " \"\"\"\n",
286 " if isinstance(r, pd.Series):\n",
287 " is_beyond = r <= -var_historic(r, level=level)\n",
288 " return -r[is_beyond].mean()\n",
289 " elif isinstance(r, pd.DataFrame):\n",
290 " return r.aggregate(cvar_historic, level=level)\n",
291 " else:\n",
292 " raise TypeError(\"Expected r to be a Series or DataFrame\")\n",
293 "\n",
294 "\n",
295 "from scipy.stats import norm\n",
296 "def var_gaussian(r, level=5, modified=False):\n",
297 " \"\"\"\n",
298 " Returns the Parametric Gauusian VaR of a Series or DataFrame\n",
299 " If \"modified\" is True, then the modified VaR is returned,\n",
300 " using the Cornish-Fisher modification\n",
301 " \"\"\"\n",
302 " # compute the Z score assuming it was Gaussian\n",
303 " z = norm.ppf(level/100)\n",
304 " if modified:\n",
305 " # modify the Z score based on observed skewness and kurtosis\n",
306 " s = skewness(r)\n",
307 " k = kurtosis(r)\n",
308 " z = (z +\n",
309 " (z**2 - 1)*s/6 +\n",
310 " (z**3 -3*z)*(k-3)/24 -\n",
311 " (2*z**3 - 5*z)*(s**2)/36\n",
312 " )\n",
313 " return -(r.mean() + z*r.std(ddof=0))\n",
314 "\n",
315 "\n",
316 "def portfolio_return(weights, returns):\n",
317 " \"\"\"\n",
318 " Computes the return on a portfolio from constituent returns and weights\n",
319 " weights are a numpy array or Nx1 matrix and returns are a numpy array or Nx1 matrix\n",
320 " \"\"\"\n",
321 " return weights.T @ returns\n",
322 "\n",
323 "\n",
324 "def portfolio_vol(weights, covmat):\n",
325 " \"\"\"\n",
326 " Computes the vol of a portfolio from a covariance matrix and constituent weights\n",
327 " weights are a numpy array or N x 1 maxtrix and covmat is an N x N matrix\n",
328 " \"\"\"\n",
329 " vol = (weights.T @ covmat @ weights)**0.5\n",
330 " return vol \n",
331 "\n",
332 "\n",
333 "def plot_ef2(n_points, er, cov):\n",
334 " \"\"\"\n",
335 " Plots the 2-asset efficient frontier\n",
336 " \"\"\"\n",
337 " if er.shape[0] != 2 or er.shape[0] != 2:\n",
338 " raise ValueError(\"plot_ef2 can only plot 2-asset frontiers\")\n",
339 " weights = [np.array([w, 1-w]) for w in np.linspace(0, 1, n_points)]\n",
340 " rets = [portfolio_return(w, er) for w in weights]\n",
341 " vols = [portfolio_vol(w, cov) for w in weights]\n",
342 " ef = pd.DataFrame({\n",
343 " \"Returns\": rets, \n",
344 " \"Volatility\": vols\n",
345 " })\n",
346 " return ef.plot.line(x=\"Volatility\", y=\"Returns\", style=\".-\")\n",
347 "\n",
348 "\n",
349 "from scipy.optimize import minimize\n",
350 "\n",
351 "def minimize_vol(target_return, er, cov):\n",
352 " \"\"\"\n",
353 " Returns the optimal weights that achieve the target return\n",
354 " given a set of expected returns and a covariance matrix\n",
355 " \"\"\"\n",
356 " n = er.shape[0]\n",
357 " init_guess = np.repeat(1/n, n)\n",
358 " bounds = ((0.0, 1.0),) * n # an N-tuple of 2-tuples!\n",
359 " # construct the constraints\n",
360 " weights_sum_to_1 = {'type': 'eq',\n",
361 " 'fun': lambda weights: np.sum(weights) - 1\n",
362 " }\n",
363 " return_is_target = {'type': 'eq',\n",
364 " 'args': (er,),\n",
365 " 'fun': lambda weights, er: target_return - portfolio_return(weights,er)\n",
366 " }\n",
367 " weights = minimize(portfolio_vol, init_guess,\n",
368 " args=(cov,), method='SLSQP',\n",
369 " options={'disp': False},\n",
370 " constraints=(weights_sum_to_1,return_is_target),\n",
371 " bounds=bounds)\n",
372 " return weights.x\n",
373 "\n",
374 "\n",
375 "def tracking_error(r_a, r_b):\n",
376 " \"\"\"\n",
377 " Returns the Tracking Error between the two return series\n",
378 " \"\"\"\n",
379 " return np.sqrt(((r_a - r_b)**2).sum())\n",
380 "\n",
381 " \n",
382 "def msr(riskfree_rate, er, cov):\n",
383 " \"\"\"\n",
384 " Returns the weights of the portfolio that gives you the maximum sharpe ratio\n",
385 " given the riskfree rate and expected returns and a covariance matrix\n",
386 " \"\"\"\n",
387 " n = er.shape[0]\n",
388 " init_guess = np.repeat(1/n, n)\n",
389 " bounds = ((0.0, 1.0),) * n # an N-tuple of 2-tuples!\n",
390 " # construct the constraints\n",
391 " weights_sum_to_1 = {'type': 'eq',\n",
392 " 'fun': lambda weights: np.sum(weights) - 1\n",
393 " }\n",
394 " def neg_sharpe(weights, riskfree_rate, er, cov):\n",
395 " \"\"\"\n",
396 " Returns the negative of the sharpe ratio\n",
397 " of the given portfolio\n",
398 " \"\"\"\n",
399 " r = portfolio_return(weights, er)\n",
400 " vol = portfolio_vol(weights, cov)\n",
401 " return -(r - riskfree_rate)/vol\n",
402 " \n",
403 " weights = minimize(neg_sharpe, init_guess,\n",
404 " args=(riskfree_rate, er, cov), method='SLSQP',\n",
405 " options={'disp': False},\n",
406 " constraints=(weights_sum_to_1,),\n",
407 " bounds=bounds)\n",
408 " return weights.x\n",
409 "\n",
410 "\n",
411 "def gmv(cov):\n",
412 " \"\"\"\n",
413 " Returns the weights of the Global Minimum Volatility portfolio\n",
414 " given a covariance matrix\n",
415 " \"\"\"\n",
416 " n = cov.shape[0]\n",
417 " return msr(0, np.repeat(1, n), cov)\n",
418 "\n",
419 "\n",
420 "def optimal_weights(n_points, er, cov):\n",
421 " \"\"\"\n",
422 " Returns a list of weights that represent a grid of n_points on the efficient frontier\n",
423 " \"\"\"\n",
424 " target_rs = np.linspace(er.min(), er.max(), n_points)\n",
425 " weights = [minimize_vol(target_return, er, cov) for target_return in target_rs]\n",
426 " return weights\n",
427 "\n",
428 "\n",
429 "def plot_ef(n_points, er, cov, style='.-', legend=False, show_cml=False, riskfree_rate=0, show_ew=False, show_gmv=False):\n",
430 " \"\"\"\n",
431 " Plots the multi-asset efficient frontier\n",
432 " \"\"\"\n",
433 " weights = optimal_weights(n_points, er, cov)\n",
434 " rets = [portfolio_return(w, er) for w in weights]\n",
435 " vols = [portfolio_vol(w, cov) for w in weights]\n",
436 " ef = pd.DataFrame({\n",
437 " \"Returns\": rets, \n",
438 " \"Volatility\": vols\n",
439 " })\n",
440 " ax = ef.plot.line(x=\"Volatility\", y=\"Returns\", style=style, legend=legend)\n",
441 " if show_cml:\n",
442 " ax.set_xlim(left = 0)\n",
443 " # get MSR\n",
444 " w_msr = msr(riskfree_rate, er, cov)\n",
445 " r_msr = portfolio_return(w_msr, er)\n",
446 " vol_msr = portfolio_vol(w_msr, cov)\n",
447 " # add CML\n",
448 " cml_x = [0, vol_msr]\n",
449 " cml_y = [riskfree_rate, r_msr]\n",
450 " ax.plot(cml_x, cml_y, color='green', marker='o', linestyle='dashed', linewidth=2, markersize=10)\n",
451 " if show_ew:\n",
452 " n = er.shape[0]\n",
453 " w_ew = np.repeat(1/n, n)\n",
454 " r_ew = portfolio_return(w_ew, er)\n",
455 " vol_ew = portfolio_vol(w_ew, cov)\n",
456 " # add EW\n",
457 " ax.plot([vol_ew], [r_ew], color='goldenrod', marker='o', markersize=10)\n",
458 " if show_gmv:\n",
459 " w_gmv = gmv(cov)\n",
460 " r_gmv = portfolio_return(w_gmv, er)\n",
461 " vol_gmv = portfolio_vol(w_gmv, cov)\n",
462 " # add EW\n",
463 " ax.plot([vol_gmv], [r_gmv], color='midnightblue', marker='o', markersize=10)\n",
464 " \n",
465 " return ax\n",
466 "\n",
467 " \n",
468 "def run_cppi(risky_r, safe_r=None, m=3, start=1000, floor=0.8, riskfree_rate=0.03, drawdown=None):\n",
469 " \"\"\"\n",
470 " Run a backtest of the CPPI strategy, given a set of returns for the risky asset\n",
471 " Returns a dictionary containing: Asset Value History, Risk Budget History, Risky Weight History\n",
472 " \"\"\"\n",
473 " # set up the CPPI parameters\n",
474 " dates = risky_r.index\n",
475 " n_steps = len(dates)\n",
476 " account_value = start\n",
477 " floor_value = start*floor\n",
478 " peak = account_value\n",
479 " if isinstance(risky_r, pd.Series): \n",
480 " risky_r = pd.DataFrame(risky_r, columns=[\"R\"])\n",
481 "\n",
482 " if safe_r is None:\n",
483 " safe_r = pd.DataFrame().reindex_like(risky_r)\n",
484 " safe_r.values[:] = riskfree_rate/12 # fast way to set all values to a number\n",
485 " # set up some DataFrames for saving intermediate values\n",
486 " account_history = pd.DataFrame().reindex_like(risky_r)\n",
487 " risky_w_history = pd.DataFrame().reindex_like(risky_r)\n",
488 " cushion_history = pd.DataFrame().reindex_like(risky_r)\n",
489 " floorval_history = pd.DataFrame().reindex_like(risky_r)\n",
490 " peak_history = pd.DataFrame().reindex_like(risky_r)\n",
491 "\n",
492 " for step in range(n_steps):\n",
493 " if drawdown is not None:\n",
494 " peak = np.maximum(peak, account_value)\n",
495 " floor_value = peak*(1-drawdown)\n",
496 " cushion = (account_value - floor_value)/account_value\n",
497 " risky_w = m*cushion\n",
498 " risky_w = np.minimum(risky_w, 1)\n",
499 " risky_w = np.maximum(risky_w, 0)\n",
500 " safe_w = 1-risky_w\n",
501 " risky_alloc = account_value*risky_w\n",
502 " safe_alloc = account_value*safe_w\n",
503 " # recompute the new account value at the end of this step\n",
504 " account_value = risky_alloc*(1+risky_r.iloc[step]) + safe_alloc*(1+safe_r.iloc[step])\n",
505 " # save the histories for analysis and plotting\n",
506 " cushion_history.iloc[step] = cushion\n",
507 " risky_w_history.iloc[step] = risky_w\n",
508 " account_history.iloc[step] = account_value\n",
509 " floorval_history.iloc[step] = floor_value\n",
510 " peak_history.iloc[step] = peak\n",
511 " risky_wealth = start*(1+risky_r).cumprod()\n",
512 " backtest_result = {\n",
513 " \"Wealth\": account_history,\n",
514 " \"Risky Wealth\": risky_wealth, \n",
515 " \"Risk Budget\": cushion_history,\n",
516 " \"Risky Allocation\": risky_w_history,\n",
517 " \"m\": m,\n",
518 " \"start\": start,\n",
519 " \"floor\": floor,\n",
520 " \"risky_r\":risky_r,\n",
521 " \"safe_r\": safe_r,\n",
522 " \"drawdown\": drawdown,\n",
523 " \"peak\": peak_history,\n",
524 " \"floor\": floorval_history\n",
525 " }\n",
526 " return backtest_result\n",
527 "\n",
528 "\n",
529 "def summary_stats(r, riskfree_rate=0.03):\n",
530 " \"\"\"\n",
531 " Return a DataFrame that contains aggregated summary stats for the returns in the columns of r\n",
532 " \"\"\"\n",
533 " ann_r = r.aggregate(annualize_rets, periods_per_year=12)\n",
534 " ann_vol = r.aggregate(annualize_vol, periods_per_year=12)\n",
535 " ann_sr = r.aggregate(sharpe_ratio, riskfree_rate=riskfree_rate, periods_per_year=12)\n",
536 " dd = r.aggregate(lambda r: drawdown(r).Drawdown.min())\n",
537 " skew = r.aggregate(skewness)\n",
538 " kurt = r.aggregate(kurtosis)\n",
539 " cf_var5 = r.aggregate(var_gaussian, modified=True)\n",
540 " hist_cvar5 = r.aggregate(cvar_historic)\n",
541 " return pd.DataFrame({\n",
542 " \"Annualized Return\": ann_r,\n",
543 " \"Annualized Vol\": ann_vol,\n",
544 " \"Skewness\": skew,\n",
545 " \"Kurtosis\": kurt,\n",
546 " \"Cornish-Fisher VaR (5%)\": cf_var5,\n",
547 " \"Historic CVaR (5%)\": hist_cvar5,\n",
548 " \"Sharpe Ratio\": ann_sr,\n",
549 " \"Max Drawdown\": dd\n",
550 " })\n",
551 "\n",
552 " \n",
553 "def gbm(n_years = 10, n_scenarios=1000, mu=0.07, sigma=0.15, steps_per_year=12, s_0=100.0, prices=True):\n",
554 " \"\"\"\n",
555 " Evolution of Geometric Brownian Motion trajectories, such as for Stock Prices through Monte Carlo\n",
556 " :param n_years: The number of years to generate data for\n",
557 " :param n_paths: The number of scenarios/trajectories\n",
558 " :param mu: Annualized Drift, e.g. Market Return\n",
559 " :param sigma: Annualized Volatility\n",
560 " :param steps_per_year: granularity of the simulation\n",
561 " :param s_0: initial value\n",
562 " :return: a numpy array of n_paths columns and n_years*steps_per_year rows\n",
563 " \"\"\"\n",
564 " # Derive per-step Model Parameters from User Specifications\n",
565 " dt = 1/steps_per_year\n",
566 " n_steps = int(n_years*steps_per_year) + 1\n",
567 " # the standard way ...\n",
568 " # rets_plus_1 = np.random.normal(loc=mu*dt+1, scale=sigma*np.sqrt(dt), size=(n_steps, n_scenarios))\n",
569 " # without discretization error ...\n",
570 " rets_plus_1 = np.random.normal(loc=(1+mu)**dt, scale=(sigma*np.sqrt(dt)), size=(n_steps, n_scenarios))\n",
571 " rets_plus_1[0] = 1\n",
572 " ret_val = s_0*pd.DataFrame(rets_plus_1).cumprod() if prices else rets_plus_1-1\n",
573 " return ret_val\n",
574 "\n",
575 " \n",
576 "import statsmodels.api as sm\n",
577 "def regress(dependent_variable, explanatory_variables, alpha=True):\n",
578 " \"\"\"\n",
579 " Runs a linear regression to decompose the dependent variable into the explanatory variables\n",
580 " returns an object of type statsmodel's RegressionResults on which you can call\n",
581 " .summary() to print a full summary\n",
582 " .params for the coefficients\n",
583 " .tvalues and .pvalues for the significance levels\n",
584 " .rsquared_adj and .rsquared for quality of fit\n",
585 " \"\"\"\n",
586 " if alpha:\n",
587 " explanatory_variables = explanatory_variables.copy()\n",
588 " explanatory_variables[\"Alpha\"] = 1\n",
589 " \n",
590 " lm = sm.OLS(dependent_variable, explanatory_variables).fit()\n",
591 " return lm\n",
592 "\n",
593 "def portfolio_tracking_error(weights, ref_r, bb_r):\n",
594 " \"\"\"\n",
595 " returns the tracking error between the reference returns\n",
596 " and a portfolio of building block returns held with given weights\n",
597 " \"\"\"\n",
598 " return tracking_error(ref_r, (weights*bb_r).sum(axis=1))\n",
599 " \n",
600 "def style_analysis(dependent_variable, explanatory_variables):\n",
601 " \"\"\"\n",
602 " Returns the optimal weights that minimizes the Tracking error between\n",
603 " a portfolio of the explanatory variables and the dependent variable\n",
604 " \"\"\"\n",
605 " n = explanatory_variables.shape[1]\n",
606 " init_guess = np.repeat(1/n, n)\n",
607 " bounds = ((0.0, 1.0),) * n # an N-tuple of 2-tuples!\n",
608 " # construct the constraints\n",
609 " weights_sum_to_1 = {'type': 'eq',\n",
610 " 'fun': lambda weights: np.sum(weights) - 1\n",
611 " }\n",
612 " solution = minimize(portfolio_tracking_error, init_guess,\n",
613 " args=(dependent_variable, explanatory_variables,), method='SLSQP',\n",
614 " options={'disp': False},\n",
615 " constraints=(weights_sum_to_1,),\n",
616 " bounds=bounds)\n",
617 " weights = pd.Series(solution.x, index=explanatory_variables.columns)\n",
618 " return weights\n",
619 "\n",
620 "\n",
621 "def ff_analysis(r, factors):\n",
622 " \"\"\"\n",
623 " Returns the loadings of r on the Fama French Factors\n",
624 " which can be read in using get_fff_returns()\n",
625 " the index of r must be a (not necessarily proper) subset of the index of factors\n",
626 " r is either a Series or a DataFrame\n",
627 " \"\"\"\n",
628 " if isinstance(r, pd.Series):\n",
629 " dependent_variable = r\n",
630 " explanatory_variables = factors.loc[r.index]\n",
631 " tilts = regress(dependent_variable, explanatory_variables).params\n",
632 " elif isinstance(r, pd.DataFrame):\n",
633 " tilts = pd.DataFrame({col: ff_analysis(r[col], factors) for col in r.columns})\n",
634 " else:\n",
635 " raise TypeError(\"r must be a Series or a DataFrame\")\n",
636 " return tilts\n",
637 "\n",
638 "def weight_ew(r, cap_weights=None, max_cw_mult=None, microcap_threshold=None, **kwargs):\n",
639 " \"\"\"\n",
640 " Returns the weights of the EW portfolio based on the asset returns \"r\" as a DataFrame\n",
641 " If supplied a set of capweights and a capweight tether, it is applied and reweighted \n",
642 " \"\"\"\n",
643 " n = len(r.columns)\n",
644 " ew = pd.Series(1/n, index=r.columns)\n",
645 " if cap_weights is not None:\n",
646 " cw = cap_weights.loc[r.index[0]] # starting cap weight\n",
647 " ## exclude microcaps\n",
648 " if microcap_threshold is not None and microcap_threshold > 0:\n",
649 " microcap = cw < microcap_threshold\n",
650 " ew[microcap] = 0\n",
651 " ew = ew/ew.sum()\n",
652 " #limit weight to a multiple of capweight\n",
653 " if max_cw_mult is not None and max_cw_mult > 0:\n",
654 " ew = np.minimum(ew, cw*max_cw_mult)\n",
655 " ew = ew/ew.sum() #reweight\n",
656 " return ew\n",
657 "\n",
658 "def weight_cw(r, cap_weights, **kwargs):\n",
659 " \"\"\"\n",
660 " Returns the weights of the CW portfolio based on the time series of capweights\n",
661 " \"\"\"\n",
662 " w = cap_weights.loc[r.index[1]]\n",
663 " return w/w.sum()\n",
664 "\n",
665 "def backtest_ws(r, estimation_window=60, weighting=weight_ew, verbose=False, **kwargs):\n",
666 " \"\"\"\n",
667 " Backtests a given weighting scheme, given some parameters:\n",
668 " r : asset returns to use to build the portfolio\n",
669 " estimation_window: the window to use to estimate parameters\n",
670 " weighting: the weighting scheme to use, must be a function that takes \"r\", and a variable number of keyword-value arguments\n",
671 " \"\"\"\n",
672 " n_periods = r.shape[0]\n",
673 " # return windows\n",
674 " windows = [(start, start+estimation_window) for start in range(n_periods-estimation_window)]\n",
675 " weights = [weighting(r.iloc[win[0]:win[1]], **kwargs) for win in windows]\n",
676 " # convert List of weights to DataFrame\n",
677 " weights = pd.DataFrame(weights, index=r.iloc[estimation_window:].index, columns=r.columns)\n",
678 " returns = (weights * r).sum(axis=\"columns\", min_count=1) #mincount is to generate NAs if all inputs are NAs\n",
679 " return returns\n",
680 "\n",
681 "def sample_cov(r, **kwargs):\n",
682 " \"\"\"\n",
683 " Returns the sample covariance of the supplied returns\n",
684 " \"\"\"\n",
685 " return r.cov()\n",
686 "\n",
687 "def weight_gmv(r, cov_estimator=sample_cov, **kwargs):\n",
688 " \"\"\"\n",
689 " Produces the weights of the GMV portfolio given a covariance matrix of the returns \n",
690 " \"\"\"\n",
691 " est_cov = cov_estimator(r, **kwargs)\n",
692 " return gmv(est_cov)\n",
693 "\n",
694 "def cc_cov(r, **kwargs):\n",
695 " \"\"\"\n",
696 " Estimates a covariance matrix by using the Elton/Gruber Constant Correlation model\n",
697 " \"\"\"\n",
698 " rhos = r.corr()\n",
699 " n = rhos.shape[0]\n",
700 " # this is a symmetric matrix with diagonals all 1 - so the mean correlation is ...\n",
701 " rho_bar = (rhos.values.sum()-n)/(n*(n-1))\n",
702 " ccor = np.full_like(rhos, rho_bar)\n",
703 " np.fill_diagonal(ccor, 1.)\n",
704 " sd = r.std()\n",
705 " return pd.DataFrame(ccor * np.outer(sd, sd), index=r.columns, columns=r.columns)\n",
706 "\n",
707 "def shrinkage_cov(r, delta=0.5, **kwargs):\n",
708 " \"\"\"\n",
709 " Covariance estimator that shrinks between the Sample Covariance and the Constant Correlation Estimators\n",
710 " \"\"\"\n",
711 " prior = cc_cov(r, **kwargs)\n",
712 " sample = sample_cov(r, **kwargs)\n",
713 " return delta*prior + (1-delta)*sample\n",
714 "\n",
715 "\n",
716 "%load_ext autoreload\n",
717 "%autoreload 2\n",
718 "inds = ['Food', 'Beer', 'Smoke', 'Games', 'Books', 'Hshld', 'Clths', 'Hlth',\n",
719 " 'Chems', 'Txtls', 'Cnstr', 'Steel', 'FabPr', 'ElcEq', 'Autos', 'Carry',\n",
720 " 'Mines', 'Coal', 'Oil', 'Util', 'Telcm', 'Servs', 'BusEq', 'Paper',\n",
721 " 'Trans', 'Whlsl', 'Rtail', 'Meals', 'Fin', 'Other']\n",
722 "#inds=['Beer', 'Hlth', 'Fin','Rtail','Whlsl']\n",
723 "ind_rets = get_ind_returns(weighting=\"ew\", n_inds=49)[\"1974\":]\n",
724 "ind_mcap = get_ind_market_caps(49, weights=True)[\"1974\":]"
725 ]
726 },
727 {
728 "cell_type": "code",
729 "execution_count": 3,
730 "metadata": {},
731 "outputs": [
732 {
733 "data": {
734 "text/html": [
735 "<div>\n",
736 "<style scoped>\n",
737 " .dataframe tbody tr th:only-of-type {\n",
738 " vertical-align: middle;\n",
739 " }\n",
740 "\n",
741 " .dataframe tbody tr th {\n",
742 " vertical-align: top;\n",
743 " }\n",
744 "\n",
745 " .dataframe thead th {\n",
746 " text-align: right;\n",
747 " }\n",
748 "</style>\n",
749 "<table border=\"1\" class=\"dataframe\">\n",
750 " <thead>\n",
751 " <tr style=\"text-align: right;\">\n",
752 " <th></th>\n",
753 " <th>Annualized Return</th>\n",
754 " <th>Annualized Vol</th>\n",
755 " <th>Skewness</th>\n",
756 " <th>Kurtosis</th>\n",
757 " <th>Cornish-Fisher VaR (5%)</th>\n",
758 " <th>Historic CVaR (5%)</th>\n",
759 " <th>Sharpe Ratio</th>\n",
760 " <th>Max Drawdown</th>\n",
761 " </tr>\n",
762 " </thead>\n",
763 " <tbody>\n",
764 " <tr>\n",
765 " <th>EW</th>\n",
766 " <td>0.131606</td>\n",
767 " <td>0.187437</td>\n",
768 " <td>-0.616296</td>\n",
769 " <td>6.771301</td>\n",
770 " <td>0.082035</td>\n",
771 " <td>0.122226</td>\n",
772 " <td>0.527384</td>\n",
773 " <td>-0.59806</td>\n",
774 " </tr>\n",
775 " <tr>\n",
776 " <th>CW</th>\n",
777 " <td>0.131522</td>\n",
778 " <td>0.187236</td>\n",
779 " <td>-0.544912</td>\n",
780 " <td>5.820495</td>\n",
781 " <td>0.081975</td>\n",
782 " <td>0.120151</td>\n",
783 " <td>0.527515</td>\n",
784 " <td>-0.58785</td>\n",
785 " </tr>\n",
786 " </tbody>\n",
787 "</table>\n",
788 "</div>"
789 ],
790 "text/plain": [
791 " Annualized Return Annualized Vol Skewness Kurtosis \\\n",
792 "EW 0.131606 0.187437 -0.616296 6.771301 \n",
793 "CW 0.131522 0.187236 -0.544912 5.820495 \n",
794 "\n",
795 " Cornish-Fisher VaR (5%) Historic CVaR (5%) Sharpe Ratio Max Drawdown \n",
796 "EW 0.082035 0.122226 0.527384 -0.59806 \n",
797 "CW 0.081975 0.120151 0.527515 -0.58785 "
798 ]
799 },
800 "execution_count": 3,
801 "metadata": {},
802 "output_type": "execute_result"
803 },
804 {
805 "data": {
806 "image/png": "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\n",
807 "text/plain": [
808 "<Figure size 864x432 with 1 Axes>"
809 ]
810 },
811 "metadata": {
812 "needs_background": "light"
813 },
814 "output_type": "display_data"
815 }
816 ],
817 "source": [
818 "ewr = backtest_ws(ind_rets, estimation_window=36, weighting=weight_ew)\n",
819 "cwr = backtest_ws(ind_rets, estimation_window=36, weighting=weight_cw, cap_weights=ind_mcap)\n",
820 "btr = pd.DataFrame({\"EW\": ewr, \"CW\": cwr})\n",
821 "(1+btr).cumprod().plot(figsize=(12,6), title=\"Industry Portfolios - CW vs EW\")\n",
822 "summary_stats(btr.dropna())"
823 ]
824 },
825 {
826 "cell_type": "markdown",
827 "metadata": {},
828 "source": [
829 "# Building the Global Minimum Variance Portfolio\n",
830 "\n",
831 "We've previously written the code (in MOOC 1) to build the GMV portfolio, given the covariance. Let's start with just that:\n"
832 ]
833 },
834 {
835 "cell_type": "code",
836 "execution_count": 6,
837 "metadata": {},
838 "outputs": [],
839 "source": [
840 "def sample_cov(r, **kwargs):\n",
841 " \"\"\"\n",
842 " Returns the sample covariance of the supplied returns\n",
843 " \"\"\"\n",
844 " return r.cov()\n",
845 "\n",
846 "def weight_gmv(r, cov_estimator=sample_cov, **kwargs):\n",
847 " \"\"\"\n",
848 " Produces the weights of the GMV portfolio given a covariance matrix of the returns \n",
849 " \"\"\"\n",
850 " est_cov = cov_estimator(r, **kwargs)\n",
851 " return gmv(est_cov)\n"
852 ]
853 },
854 {
855 "cell_type": "markdown",
856 "metadata": {},
857 "source": [
858 "Now, let's run this new backtest. This may take a fair amount of time to run, so be patient - we are running a backtest over nearly 50 years and both optimizing and rebalancing on a monthly basis ... this will take a while!"
859 ]
860 },
861 {
862 "cell_type": "code",
863 "execution_count": 9,
864 "metadata": {},
865 "outputs": [
866 {
867 "data": {
868 "text/html": [
869 "<div>\n",
870 "<style scoped>\n",
871 " .dataframe tbody tr th:only-of-type {\n",
872 " vertical-align: middle;\n",
873 " }\n",
874 "\n",
875 " .dataframe tbody tr th {\n",
876 " vertical-align: top;\n",
877 " }\n",
878 "\n",
879 " .dataframe thead th {\n",
880 " text-align: right;\n",
881 " }\n",
882 "</style>\n",
883 "<table border=\"1\" class=\"dataframe\">\n",
884 " <thead>\n",
885 " <tr style=\"text-align: right;\">\n",
886 " <th></th>\n",
887 " <th>Annualized Return</th>\n",
888 " <th>Annualized Vol</th>\n",
889 " <th>Skewness</th>\n",
890 " <th>Kurtosis</th>\n",
891 " <th>Cornish-Fisher VaR (5%)</th>\n",
892 " <th>Historic CVaR (5%)</th>\n",
893 " <th>Sharpe Ratio</th>\n",
894 " <th>Max Drawdown</th>\n",
895 " </tr>\n",
896 " </thead>\n",
897 " <tbody>\n",
898 " <tr>\n",
899 " <th>EW</th>\n",
900 " <td>0.131606</td>\n",
901 " <td>0.187437</td>\n",
902 " <td>-0.616296</td>\n",
903 " <td>6.771301</td>\n",
904 " <td>0.082035</td>\n",
905 " <td>0.122226</td>\n",
906 " <td>0.527384</td>\n",
907 " <td>-0.598060</td>\n",
908 " </tr>\n",
909 " <tr>\n",
910 " <th>CW</th>\n",
911 " <td>0.131522</td>\n",
912 " <td>0.187236</td>\n",
913 " <td>-0.544912</td>\n",
914 " <td>5.820495</td>\n",
915 " <td>0.081975</td>\n",
916 " <td>0.120151</td>\n",
917 " <td>0.527515</td>\n",
918 " <td>-0.587850</td>\n",
919 " </tr>\n",
920 " <tr>\n",
921 " <th>GMV-Sample</th>\n",
922 " <td>0.153094</td>\n",
923 " <td>0.116303</td>\n",
924 " <td>-0.811386</td>\n",
925 " <td>6.408527</td>\n",
926 " <td>0.047674</td>\n",
927 " <td>0.072557</td>\n",
928 " <td>1.030067</td>\n",
929 " <td>-0.463912</td>\n",
930 " </tr>\n",
931 " </tbody>\n",
932 "</table>\n",
933 "</div>"
934 ],
935 "text/plain": [
936 " Annualized Return Annualized Vol Skewness Kurtosis \\\n",
937 "EW 0.131606 0.187437 -0.616296 6.771301 \n",
938 "CW 0.131522 0.187236 -0.544912 5.820495 \n",
939 "GMV-Sample 0.153094 0.116303 -0.811386 6.408527 \n",
940 "\n",
941 " Cornish-Fisher VaR (5%) Historic CVaR (5%) Sharpe Ratio \\\n",
942 "EW 0.082035 0.122226 0.527384 \n",
943 "CW 0.081975 0.120151 0.527515 \n",
944 "GMV-Sample 0.047674 0.072557 1.030067 \n",
945 "\n",
946 " Max Drawdown \n",
947 "EW -0.598060 \n",
948 "CW -0.587850 \n",
949 "GMV-Sample -0.463912 "
950 ]
951 },
952 "execution_count": 9,
953 "metadata": {},
954 "output_type": "execute_result"
955 },
956 {
957 "data": {
958 "image/png": "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LU5eVR6J4Ym7bTPGcHz745mdNZsqb9U+2x4ZPcUH6NFtLH369OGDDz7Y677Ro0czc+ZMSktLiY+PZ8SIETz11FMsWbKE6667rokrFREREZH8ynwGthq4x/bhbYbz7rp32VS8aZ9t1VO8H+PHj6e6uprnn3++btvy5cv54YcfGDVqFM899xwDBgwAoH///sydO5etW7fSt2/fYJUsIiIi0iJZa8mvzCcxLHGPfTEhMQBUeCr22V6heD+MMXz88cdMnTqVLl260KdPH+644w5SUlIYNWoU6enpjBw5EgCXy0WrVq0YOnQoDoduq4iIiEhTKveUU+WrIik8aY99Ea4IYP+h+MgYPhFEbdu25b333tvrPmvtbu+nT5/eBBWJiIiIyC/lVeYB7DUUR7ojAajwqqdYRERERI5i+VX5AHs8aAcQ4Q70FJd7yvfZXqFYRERERI54++spVigWERERkRbhp1C8twft6sYUa/iEiIiIiBzN8ivzcRoncaFxe+xzOVyEOcM0+4SIiIiIHN3yKvNICEvA6XDudX+EO0LDJ0RERETk6JZflb/X8cQ/iXBFaPjE4cjOzuaSSy6hc+fODBkyhJEjR/Lxxx8zffp0jDG8+OKLdccuXboUYwyPPPIIr776KpMmTdrtXHl5eSQnJ1NdXb3b9ilTpjBo0CAGDBhA7969ee655xr1M91999088sgjjXoNERERkaaUV7nnEs+7inRHqqf4UFlrOfvsszn22GNJT09n0aJFvPPOO2RmZgLQt2/f3eYwfvvtt+tWuDvnnHP49ttvqaj4+W8kH3zwAWeeeSahoaF12zweD9deey2TJ09m2bJlLFmyhHHjxjXNBxQRERE5SuRV5u31IbufRLgjqPRU7nO/QvF+TJs2jZCQEK6//vq6bR07duTmm2+ue11VVUV2djbWWr766itOPfVUAGJiYjjuuOOYPHlyXdt33nlnj97j0tJSvF4viYmBP8TQ0FB69OgBwOTJkxk+fDiDBg3ixBNPJDs7Gwj09F5++eWMHTuWjh078tFHH3H77bfTr18/TjnlFDweDwBpaWl124cNG8bGjRv3+IybNm3ilFNOYciQIYwdO5a1a9c21O0TERERaRJ+66egsmD/wycOMKb4iFjR7qH5D7G2oGHDWs+Envxp2J/2e8yqVasYPHjwfo85//zzef/99xk0aBCDBw/erRd40qRJvPnmm1x00UVkZWWxfv16xo8fv1v7hIQEJk6cSMeOHTnhhBM444wzmDRpEg6HgzFjxjB37ty6YRoPP/wwjz76KBAIs99//z2rV69m5MiRfPjhhzz88MOcc845fP7555x99tkAxMbGsmLFCl577TV+97vfMWXKlN2uf+211/Lss8/SrVs35s2bxw033MC0adPqextFREREmtT6wvXEhsTSOrJ13baS6hK81rvfUBzpiiTLm7XP/UdEKG4ubrzxRmbNmkVISAj/+te/ALjwwgu56KKLWLt2LZMmTWL27Nl1x59++unccMMNlJSU8N5773HeeefhdO75ROSLL77IihUrmDp1Ko888gjffvstr7zyCpmZmVx00UXs2LGDmpoaOnXqVNfm1FNPxe12069fP3w+H6eccgoA/fr1IyMjo+64n3qmJ02axG233bbbdcvKypg9ezYXXHBB3bZfjncWERERaS62lW7joikX4fP7uLrf1dw6+FZg/wt3/CTCHbHfKdmOiFB8oB7dxtKnTx8+/PDDuvdPP/00eXl5DB06tG5bSkoKbrebb7/9lieeeGK3UBweHs4pp5zCxx9/zDvvvMNjjz0GwIQJE8jOzmbo0KF1D+r169ePfv36cdlll9GpUydeeeUVbr75Zn7/+98zceJEpk+fzt1331137p96pB0OB263G2NM3Xuv11t33E/bf/kawO/3ExcXx9KlSw/zTomIiIg0vmeXPYvTOOkS34Xp26b/HIqrahfuOMCDdpqn+BCNHz+eqqoqnnnmmbptuz4495N77rmHhx56aK+9wJMmTeKxxx4jOzubkSNHAvD111+zdOlSXnzxRcrKypg+fXrd8UuXLqVjx44AFBcX065dOwBeffXVQ/oM7777bt33n67/k5iYGDp16sT7778PBB4sXLZs2SFdR0RERKQxZZZmMiV9Chf3uJiBrQaSW5lbt69uNbv9hOIIVwTl3iN8THGwGGP45JNPuO2223j44YdJTk4mMjKShx56aLfjRo0atc9znHTSSfz617/m6quv3qOnFgJB9OGHH+a6664jPDycyMhIXnnlFSDwQN0FF1xAfHw848ePZ/PmzQf9GQoLC+nfvz+hoaG8/fbbe+x/8803+e1vf8t9992Hx+Ph4osvrptBQ0RERKS5WJa7DL/1c2aXM5mROYPi6mKqfdWEOkPJ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\n",
959 "text/plain": [
960 "<Figure size 864x432 with 1 Axes>"
961 ]
962 },
963 "metadata": {
964 "needs_background": "light"
965 },
966 "output_type": "display_data"
967 }
968 ],
969 "source": [
970 "mv_s_r = backtest_ws(ind_rets, estimation_window=36, weighting=weight_gmv, cov_estimator=sample_cov)\n",
971 "btr = pd.DataFrame({\"EW\": ewr, \"CW\": cwr, \"GMV-Sample\": mv_s_r})\n",
972 "(1+btr).cumprod().plot(figsize=(12,6), title=\"Industry Portfolios\")\n",
973 "summary_stats(btr.dropna())"
974 ]
975 },
976 {
977 "cell_type": "markdown",
978 "metadata": {},
979 "source": [
980 "Now, let's try a new estimator - Constant Correlation. The idea is simple, take the sample correlation matrix, compute the average correlation and then reconstruct the covariance matrix. The relation between correlations $\\rho$ and covariance $\\sigma$ is given by:\n",
981 "\n",
982 "$$ \\rho_{ij} = \\frac{ \\sigma_{ij} } { \\sqrt{ \\sigma_{ii} \\sigma_{jj} } } $$\n"
983 ]
984 },
985 {
986 "cell_type": "code",
987 "execution_count": 10,
988 "metadata": {},
989 "outputs": [],
990 "source": [
991 "#import statsmodels.stats.moment_helpers as mh\n",
992 "def cc_cov(r, **kwargs):\n",
993 " \"\"\"\n",
994 " Estimates a covariance matrix by using the Elton/Gruber Constant Correlation model\n",
995 " \"\"\"\n",
996 " rhos = r.corr()\n",
997 " n = rhos.shape[0]\n",
998 " # this is a symmetric matrix with diagonals all 1 - so the mean correlation is ...\n",
999 " rho_bar = (rhos.values.sum()-n)/(n*(n-1))\n",
1000 " ccor = np.full_like(rhos, rho_bar)\n",
1001 " np.fill_diagonal(ccor, 1.)\n",
1002 " sd = r.std()\n",
1003 " ccov = ccor * np.outer(sd, sd)\n",
1004 "# mh.corr2cov(ccor, sd)\n",
1005 " return pd.DataFrame(ccov, index=r.columns, columns=r.columns)"
1006 ]
1007 },
1008 {
1009 "cell_type": "code",
1010 "execution_count": 11,
1011 "metadata": {},
1012 "outputs": [
1013 {
1014 "data": {
1015 "image/png": "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\n",
1016 "text/plain": [
1017 "<Figure size 1080x432 with 1 Axes>"
1018 ]
1019 },
1020 "metadata": {
1021 "needs_background": "light"
1022 },
1023 "output_type": "display_data"
1024 }
1025 ],
1026 "source": [
1027 "wts = pd.DataFrame({\n",
1028 " \"EW\": weight_ew(ind_rets[\"2016\":]),\n",
1029 " \"CW\": weight_cw(ind_rets[\"2016\":], cap_weights=ind_mcap),\n",
1030 " \"GMV-Sample\": weight_gmv(ind_rets[\"2016\":], cov_estimator=sample_cov),\n",
1031 " \"GMV-ConstCorr\": weight_gmv(ind_rets[\"2016\":], cov_estimator=cc_cov),\n",
1032 "})\n",
1033 "wts.T.plot.bar(stacked=True, figsize=(15,6), legend=False);\n"
1034 ]
1035 },
1036 {
1037 "cell_type": "code",
1038 "execution_count": 12,
1039 "metadata": {},
1040 "outputs": [
1041 {
1042 "data": {
1043 "text/html": [
1044 "<div>\n",
1045 "<style scoped>\n",
1046 " .dataframe tbody tr th:only-of-type {\n",
1047 " vertical-align: middle;\n",
1048 " }\n",
1049 "\n",
1050 " .dataframe tbody tr th {\n",
1051 " vertical-align: top;\n",
1052 " }\n",
1053 "\n",
1054 " .dataframe thead th {\n",
1055 " text-align: right;\n",
1056 " }\n",
1057 "</style>\n",
1058 "<table border=\"1\" class=\"dataframe\">\n",
1059 " <thead>\n",
1060 " <tr style=\"text-align: right;\">\n",
1061 " <th></th>\n",
1062 " <th>Annualized Return</th>\n",
1063 " <th>Annualized Vol</th>\n",
1064 " <th>Skewness</th>\n",
1065 " <th>Kurtosis</th>\n",
1066 " <th>Cornish-Fisher VaR (5%)</th>\n",
1067 " <th>Historic CVaR (5%)</th>\n",
1068 " <th>Sharpe Ratio</th>\n",
1069 " <th>Max Drawdown</th>\n",
1070 " </tr>\n",
1071 " </thead>\n",
1072 " <tbody>\n",
1073 " <tr>\n",
1074 " <th>EW</th>\n",
1075 " <td>0.131606</td>\n",
1076 " <td>0.187437</td>\n",
1077 " <td>-0.616296</td>\n",
1078 " <td>6.771301</td>\n",
1079 " <td>0.082035</td>\n",
1080 " <td>0.122226</td>\n",
1081 " <td>0.527384</td>\n",
1082 " <td>-0.598060</td>\n",
1083 " </tr>\n",
1084 " <tr>\n",
1085 " <th>CW</th>\n",
1086 " <td>0.131522</td>\n",
1087 " <td>0.187236</td>\n",
1088 " <td>-0.544912</td>\n",
1089 " <td>5.820495</td>\n",
1090 " <td>0.081975</td>\n",
1091 " <td>0.120151</td>\n",
1092 " <td>0.527515</td>\n",
1093 " <td>-0.587850</td>\n",
1094 " </tr>\n",
1095 " <tr>\n",
1096 " <th>GMV-Sample</th>\n",
1097 " <td>0.153094</td>\n",
1098 " <td>0.116303</td>\n",
1099 " <td>-0.811386</td>\n",
1100 " <td>6.408527</td>\n",
1101 " <td>0.047674</td>\n",
1102 " <td>0.072557</td>\n",
1103 " <td>1.030067</td>\n",
1104 " <td>-0.463912</td>\n",
1105 " </tr>\n",
1106 " <tr>\n",
1107 " <th>GMV-CC</th>\n",
1108 " <td>0.132374</td>\n",
1109 " <td>0.115347</td>\n",
1110 " <td>-0.890921</td>\n",
1111 " <td>6.072383</td>\n",
1112 " <td>0.049608</td>\n",
1113 " <td>0.075267</td>\n",
1114 " <td>0.863739</td>\n",
1115 " <td>-0.524099</td>\n",
1116 " </tr>\n",
1117 " </tbody>\n",
1118 "</table>\n",
1119 "</div>"
1120 ],
1121 "text/plain": [
1122 " Annualized Return Annualized Vol Skewness Kurtosis \\\n",
1123 "EW 0.131606 0.187437 -0.616296 6.771301 \n",
1124 "CW 0.131522 0.187236 -0.544912 5.820495 \n",
1125 "GMV-Sample 0.153094 0.116303 -0.811386 6.408527 \n",
1126 "GMV-CC 0.132374 0.115347 -0.890921 6.072383 \n",
1127 "\n",
1128 " Cornish-Fisher VaR (5%) Historic CVaR (5%) Sharpe Ratio \\\n",
1129 "EW 0.082035 0.122226 0.527384 \n",
1130 "CW 0.081975 0.120151 0.527515 \n",
1131 "GMV-Sample 0.047674 0.072557 1.030067 \n",
1132 "GMV-CC 0.049608 0.075267 0.863739 \n",
1133 "\n",
1134 " Max Drawdown \n",
1135 "EW -0.598060 \n",
1136 "CW -0.587850 \n",
1137 "GMV-Sample -0.463912 \n",
1138 "GMV-CC -0.524099 "
1139 ]
1140 },
1141 "execution_count": 12,
1142 "metadata": {},
1143 "output_type": "execute_result"
1144 },
1145 {
1146 "data": {
1147 "image/png": "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\n",
1148 "text/plain": [
1149 "<Figure size 864x432 with 1 Axes>"
1150 ]
1151 },
1152 "metadata": {
1153 "needs_background": "light"
1154 },
1155 "output_type": "display_data"
1156 }
1157 ],
1158 "source": [
1159 "mv_cc_r = backtest_ws(ind_rets, estimation_window=36, weighting=weight_gmv, cov_estimator=cc_cov)\n",
1160 "btr = pd.DataFrame({\"EW\": ewr, \"CW\": cwr, \"GMV-Sample\": mv_s_r, \"GMV-CC\": mv_cc_r})\n",
1161 "(1+btr).cumprod().plot(figsize=(12,6), title=\"Industry Portfolios\")\n",
1162 "summary_stats(btr.dropna())"
1163 ]
1164 },
1165 {
1166 "cell_type": "markdown",
1167 "metadata": {},
1168 "source": [
1169 "### Statistical Shrinkage\n",
1170 "\n",
1171 "We can mix the model and sample estimates by choosing a shrinkage parameter. You can either let the numbers dictate an optimal shrinkage value for $\\delta$ although in practice many practiotioners choose $0.5$. Let's implement a simple shrinkage based covariance estimator that shrinks towards the Constant Correlation estimate."
1172 ]
1173 },
1174 {
1175 "cell_type": "code",
1176 "execution_count": 13,
1177 "metadata": {},
1178 "outputs": [],
1179 "source": [
1180 "def shrinkage_cov(r, delta=0.5, **kwargs):\n",
1181 " \"\"\"\n",
1182 " Covariance estimator that shrinks between the Sample Covariance and the Constant Correlation Estimators\n",
1183 " \"\"\"\n",
1184 " prior = cc_cov(r, **kwargs)\n",
1185 " sample = sample_cov(r, **kwargs)\n",
1186 " return delta*prior + (1-delta)*sample\n"
1187 ]
1188 },
1189 {
1190 "cell_type": "code",
1191 "execution_count": 14,
1192 "metadata": {},
1193 "outputs": [
1194 {
1195 "data": {
1196 "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsIAAAGsCAYAAADXBMFuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAiiklEQVR4nO3dfbRmV10n+O/PIAQxSlpCCwl0wA4DCA5gibaKYJUtARyCvGQIA9OISWBWaFlDfIFRsWGcGWhZ2m1PBgkD2trhTaCxtAP0KIZEeUt4kRDSQCAhBGwTIiLaFhD4zR/3KermUkndVG7dfW7257PWXTznPCd1vyuc3Po+++6zd3V3AABgNt80OgAAAIygCAMAMCVFGACAKSnCAABMSREGAGBKijAAAFM6ZBGuqldV1bVV9eGbeL+q6jer6oqq+lBVPWTrYwIAwNbazIjw7yQ5+Wbef1SSk1ZfZyZ52a2PBQAAR9Yhi3B3X5jkr2/mklOS/G6veXeSO1fV3bYqIAAAHAlbMUf4+CSfXnd8zeocAAAs1u2285tV1ZlZmz6RO93pTt973/vedzu//UF98YuXjo6wGMcc88DRERbBPXGAe+KAaz/1xdERFuOu/+SY0REWw8+LA/y8OMB9ccBS7ov3ve99n+vu4zae34oi/Jkk91h3fMLq3Dfo7nOTnJsku3bt6ksuuWQLvv2t8ydv/67RERZjz+7x/38sgXviAPfEAec86+2jIyzGWb+1e3SExfDz4gA/Lw5wXxywlPuiqj51sPNbMTVib5L/ebV6xA8k+UJ3/+UW/LkAAHDEHHJEuKpek+QRSe5SVdck+ZUk35wk3f1bSc5P8ugkVyT5b0l+6kiFBQCArXLIItzdpx3i/U5y1pYlAgCAbWBnOQAAprStq0Ys0UUXPm10hMXY4/kXAGAiRoQBAJiSIgwAwJSmnxoBALCVPvjy+42OsBhLn3ZpRBgAgCkpwgAATEkRBgBgStPPET59357REQAAGMCIMAAAU1KEAQCY0vRTI2Ajuw0esPRlbwDg1jAiDADAlBRhAACmpAgDADCl6ecIv+7Kl4yOsBhn52GjIwAAbBsjwgAATEkRBgBgSoowAABTmn6OMGxk220Abo2jj33u6AhskiIMG3iA8gAPUAJwWzZ9EfapDQBgTuYIAwAwJUUYAIApKcIAAExJEQYAYEqKMAAAU5p+1QgAOFwffPn9RkdYjD27RyeAW276Irz7grNGR1iQy0cHAADYNqZGAAAwJUUYAIApKcIAAExp+jnCsJFttwFgDkaEAQCYkiIMAMCUpp8acerzp/9X8HWXjg4AALCNjAgDADAlRRgAgCkpwgAATEkRBgBgSoowAABTmn7JhEuvvHp0BAAABjAiDADAlBRhAACmpAgDADAlRRgAgCkpwgAATEkRBgBgStMvn3bivlePjrAYV40OAACwjYwIAwAwJUUYAIApKcIAAExJEQYAYErTPywHALCVdl9w1ugIC3L56AA3y4gwAABTmn5EeN8jjx8dAQCAATY1IlxVJ1fVR6vqiqp63kHev2dV/WlVfaCqPlRVj976qAAAsHUOWYSr6qgk5yR5VJL7Jzmtqu6/4bJfSvL67n5wkicn+X+2OigAAGylzYwIPzTJFd39ye7+cpLXJjllwzWd5NtWr789yWe3LiIAAGy9zcwRPj7Jp9cdX5Pk+zdc86+S/Oeq+pdJ7pTkx7YkHQzgad/1lv20LwDcGlu1asRpSX6nu09I8ugkv1dV3/BnV9WZVXVJVV1y3XXXbdG3BgCAW24zI8KfSXKPdccnrM6t99NJTk6S7n5XVR2d5C5Jrl1/UXefm+TcJNm1a1cfZuYtdV4/YXSEBfnE6AAAANtmMyPCFyc5qaruVVW3z9rDcHs3XHN1kj1JUlX3S3J0EkO+AAAs1iGLcHffkOTZSd6WtQmDr+/uy6rqRVX12NVlZyc5o6r+Islrkjy9uxcx4gsAAAezqQ01uvv8JOdvOPeCda8/kuSHtjYajHHq86ffZ+brLh0dAACOIFssAwAwJUUYAIApKcIAAExp+smQF134tNERFmPP7tEJAAC2z/RFGGAz7Di4nh0HgdsGRRgADtPRxz53dATgVjBHGACAKSnCAABMSREGAGBKijAAAFOa/mG50/ftGR0BAIABpi/CAABb6VGPe+noCItx1egAh2BqBAAAU1KEAQCYkqkRAJvgV50HXDU6AMAWMSIMAMCUph8Rft2VLxkdYTHOzsNGRwAA2DZGhAEAmJIiDADAlBRhAACmpAgDADCl6R+Wg40uvfLq0REAgG1gRBgAgClNPyJ89LHPHR0BAIABjAgDADCl6UeEYaMT9716dITFuGp0AAA4ghRhADhMuy84a3SEBbl8dAC4xUyNAABgSoowAABTmn5qhF9rrefXWgDAPIwIAwAwJUUYAIApTT81Ajba98jjR0cAALaBIgwbnNdPGB1hQT4xOgAAHDGmRgAAMCVFGACAKU0/NeLU50//r+DrLh0dYCEuuvBpoyMsxp7doxMAwJFjRBgAgCkpwgAATEkRBgBgSibIwgan79szOgIAsA2MCAMAMCVFGACAKU0/NeLSK68eHQEAgAGmL8IAcLge9biXjo6wGFeNDgCHwdQIAACmpAgDADAlRRgAgCkpwgAATGn6h+VO3Pfq0REW46rRAQAAtpERYQAApjT9iDBs9LorXzI6wmKcnYeNjgAAR4wRYQAApqQIAwAwJUUYAIApKcIAAExp+ofl9j3y+NERAAAYYFMjwlV1clV9tKquqKrn3cQ1p1bVR6rqsqqyOC8AAIt2yBHhqjoqyTlJ/nmSa5JcXFV7u/sj6645Kcnzk/xQd3++qu56pAIDAMBW2MyI8EOTXNHdn+zuLyd5bZJTNlxzRpJzuvvzSdLd125tTAAA2FqbKcLHJ/n0uuNrVufWu0+S+1TVn1fVu6vq5IP9QVV1ZlVdUlWXXHfddYeXGAAAtsBWrRpxuyQnJXlEktOSvKKq7rzxou4+t7t3dfeu4447bou+NQAA3HKbKcKfSXKPdccnrM6td02Svd39le6+MsnHslaMAQBgkTazfNrFSU6qqntlrQA/OclTNlzz5qyNBP92Vd0la1MlPrmFOY+Y8/oJoyMsyCdGBwAA2DaHHBHu7huSPDvJ25JcnuT13X1ZVb2oqh67uuxtSa6vqo8k+dMkP9fd1x+p0AAAcGttakON7j4/yfkbzr1g3etO8tzVFwAALJ4tlgEAmJIiDADAlBRhAACmtKk5wrdlF134tNERFmPP7tEJAAC2jxFhAACmpAgDADAlRRgAgCkpwgAATEkRBgBgSoowAABTmn75tNP37RkdAQCAAYwIAwAwJUUYAIApKcIAAExJEQYAYErTPywHGx197HNHRwAAtoERYQAApjT9iPDrrnzJ6AiLcXYeNjoCAMC2MSIMAMCUFGEAAKakCAMAMCVFGACAKSnCAABMafpVI6wZCwAwJyPCAABMSREGAGBKijAAAFNShAEAmJIiDADAlKZfNQI22n3BWaMjLMjlowMAwBEzfRFWetZTegCAeZgaAQDAlBRhAACmpAgDADAlRRgAgClN/7AcbHTq8/1nsd+lowMAwBHkb3zY4NIrrx4dAQDYBtMXYaN/Bxj9AwBmYo4wAABTUoQBAJiSIgwAwJQUYQAApqQIAwAwpemXTLBUFgDAnIwIAwAwJUUYAIApKcIAAExp+jnCAJvxyh//mdERFuQxowMAbAkjwgAATEkRBgBgStNPjThx36tHR1iMq0YHAADYRtMXYQCArfRzf3PH0RHYJFMjAACYkhFhgE347/7z74yOsBy7RwcA2BpGhAEAmJIRYdjAA5QHXDU6AAAcQZsaEa6qk6vqo1V1RVU972aue0JVdVXt2rqIAACw9Q45IlxVRyU5J8k/T3JNkouram93f2TDdcckeU6S9xyJoEfKvkcePzoCAAADbGZE+KFJrujuT3b3l5O8NskpB7nuf0/ykiT7tjAfAAAcEZspwscn+fS642tW576uqh6S5B7d/Z9u7g+qqjOr6pKquuS66667xWEBAGCr3OpVI6rqm5L8epKzD3Vtd5/b3bu6e9dxxx13a781AAActs0U4c8kuce64xNW5/Y7JskDklxQVVcl+YEkez0wBwDAkm1m+bSLk5xUVffKWgF+cpKn7H+zu7+Q5C77j6vqgiQ/292XbG1UgHFed+VLRkdYjLPzsNERALbEIYtwd99QVc9O8rYkRyV5VXdfVlUvSnJJd+890iGPpPP6CaMjLMgnRgcA2FHe8uafHR1hOV78mNEJ4Bbb1IYa3X1+kvM3nHvBTVz7iFsfCwBgZ9p9wVmjIyzI5aMD3CxbLAMAMCVbLMMGNlkBgDkYEQYAYEqKMAAAU1KEAQCY0vRzhC+68GmjIyzGnt2jEwAAbB8jwgAATEkRBgBgSoowAABTUoQBAJiSIgwAwJSmXzUCAA7X/Z782dERgFth+iJ8+r49oyMAADCAqREAAExp+hFhgM34tWf96ugIi3H26AAAW8SIMAAAU1KEAQCYkiIMAMCUpp8j/LorXzI6wmKcnYeNjgAAsG2MCAMAMCVFGACAKU0/NQJgM375dX89OsJy/OjoAABbw4gwAABTUoQBAJiSIgwAwJSmnyN89LHPHR0BAIABjAgDADAlRRgAgCkpwgAATGn6OcKw0Xn9hNERFuQTowMAwBGjCMMGF134tNERFmPP7tEJAODIMTUCAIApTT8ivPuCs0ZHWJDLRwdYhGMuv2R0BABgG0xfhGGjR/+FebEAMANTIwAAmJIiDADAlEyNAADYQvd78mdHR2CTFGHY4NTn+89iv0tHBwCAI2j6v/GVngOUHgBgJuYIAwAwJUUYAIApmRcAG1x65dWjIwAA28CIMAAAUzIiDBucuO/VoyMsxlWjAwDAEWREGACAKU0/Imw+KADAnIwIAwAwJUUYAIApKcIAAExJEQYAYEqKMAAAU5p+1QjY6JU//jOjIyzIY0YHAIAjZvoibPOEA64aHWAhLrrwaaMjLMae3aMTAMCRY2oEAABTmn5EGDY6fd+e0REAgG2gCMMGf/A3XxkdYTHOGh0AAI6gTRXhqjo5yb9NclSS/7e7X7zh/ecmOT3JDUmuS/KM7v7UFmeFbbH7AvXvgMtHBwCAI+aQc4Sr6qgk5yR5VJL7Jzmtqu6/4bIPJNnV3d+T5A1J/vVWBwUAgK20mRHhhya5ors/mSRV9dokpyT5yP4LuvtP113/7iRP3cqQR9K+Rx4/OgIAAANsZtWI45N8et3xNatzN+Wnk7zl1oQCAIAjbUsflquqpybZleThN/H+mUnOTJJ73vOeW/mtAQDgFtnMiPBnktxj3fEJq3M3UlU/luQXkzy2u790sD+ou8/t7l3dveu44447nLwAALAlNjMifHGSk6rqXlkrwE9O8pT1F1TVg5O8PMnJ3X3tlqeEbXTq860quN+lowMAwBF0yBHh7r4hybOTvC1raym9vrsvq6oXVdVjV5f9WpJvTfL7VfXBqtp7xBIDAMAW2NTQV3efn+T8DedesO71j21xLgAAOKKm/x3wef2E0REW5BOjAwAAbJvNPCwHAAC3OYowAABTUoQBAJiSIgwAwJQUYQAApjT9qhEAm7H7grNGR1iQy0cHANgS0xfhiy582ugIi7Fn9+gEAADbx9QIAACmpAgDADAlRRgAgCkpwgAATEkRBgBgStOvGnH6vj2jIwAAMIARYQAApqQIAwAwJUUYAIApKcIAAExJEQYAYEqKMAAAU5p++bTXXfmS0REW4+w8bHQEAIBtM30Rho0uvfLq0REAgG1gagQAAFNShAEAmJIiDADAlBRhAACm5GE52ODEfa8eHWExrhodAACOoOmL8NHHPnd0BAAABpi+CMNG+x55/OgIAMA2MEcYAIApKcIAAEzJ1AjY4Lx+wugIC/KJ0QEA4IgxIgwAwJSmHxHefcFZoyMsyOWjAwAAbBsjwgAATEkRBgBgSoowAABTUoQBAJjS9A/LwUYXXfi00REWY8/u0QkA4MhRhGGD0/ftGR0BANgG0xfhU58//b+Cr7t0dAAAgG2kBcIGf/A3XxkdYTGssg3AbZmH5QAAmJIiDADAlBRhAACmpAgDADCl6R+Wu/TKq0dHYGF2X+ARsQMuHx0AAI4YI8IAAExJEQYAYErTT42AjWyycoBNVgC4LTMiDADAlBRhAACmpAgDADCl6SdDnrjv1aMjLMZVowMshCX1AGAORoQBAJiSIgwAwJQ2VYSr6uSq+mhVXVFVzzvI+3eoqtet3n9PVZ245UkBAGALHbIIV9VRSc5J8qgk909yWlXdf8NlP53k8939T5P8RpKXbHVQAADYSpsZEX5okiu6+5Pd/eUkr01yyoZrTkny71ev35BkT1XV1sUEAICttZlVI45P8ul1x9ck+f6buqa7b6iqLyT5jiSf24qQsJ2sJHLAVaMDAMARtK3Lp1XVmUnOXB3+XVV9dDu//4LdJQv40FAmtCzN8PvCPbFIw++L+IXfEo2/L17ovlgg98UB/+RgJzdThD+T5B7rjk9YnTvYNddU1e2SfHuS6zf+Qd19bpJzN5N2JlV1SXfvGp2DZXFfcDDuCw7GfcHBuC8ObTNzhC9OclJV3auqbp/kyUn2brhmb5J/sXr9xCRv7+7eupgAALC1DjkivJrz++wkb0tyVJJXdfdlVfWiJJd0994kr0zye1V1RZK/zlpZBgCAxdrUHOHuPj/J+RvOvWDd631JnrS10aZiuggH477gYNwXHIz7goNxXxxCmcEAAMCMbLEMAMCUFGEAAKakCAMA3MZU1T8anWEnUIS3WVX9QVX9fFX90Go5OiZXVY+rqruOzgHsDFV1VFW9dHQOlqOqfmnd6/tX1ceSvK+qrqqqjbsBs44ivP1ekeTOSf6PJH9VVe+sqpdW1U9W1T8eG41BnprkA1X18ar691V1ZlU9YHQolqGq7lNVf1JVH14df8/6v/SYT3d/NckPj87Bojx+3etfS/Kc7r5XklOT/MaYSDuDVSMGqqqjkjw4ySOSPCvJvbr7qKGhGKaqTkzyg6uvf5bknkku7u5Hj8zFWFX1jiQ/l+Tl3f3g1bkPd7cPSxOrqpclOT7J7yf5+/3nu/tNw0IxTFW9v7sfsnr9gf0/Kw52zI1tah1htlZV3SUHCs8PJDk6yR8nedfIXIzV3VdV1dFJ7rj62v+auX1Ld7+3qtafu2FUGBbj6CTXJ9m97lwnUYTndO+q2pukkpxQVd/S3f9t9d43D8y1eIrwNquqjyf5QpI3Zm23vl/t7r8bm4qRqup/y9oI8HFJPprk3Un+7yRnrn4Fytw+V1XflbWSk6p6YpK/HBuJkVa/Tby+u392dBYW45QNx9+UJKsply/b/jg7h6kR26yqnp+1UeDjk3wsa6PA70ryAaVnTlX1X7L2q80/TPLOJO/p7i+MTcVSVNW9s7Y71A8m+XySK5M8tbuvGpmLsarqXd39z0bngJ1OER6oqu6TA/NBfzjJ57r74WNTMcJqmZv102W+NclfJHlnd//2yGwsQ1XdKck3dfcXR2dhPHOE2ayqOrO7bbV8E0yNGGQ1yvPQJN+fteJz16yN9DCh7v7rJH9UVW9N8r1JfiTJM5M8I4kiPKGqeu5NnE+SdPevb2sglsYcYTarDn3JvIwIb7Oq+o9ZK79/m7Vfg78zyZ939+VDgzFMVT02ayPBP5Tku5NcluTPszZl5p3dfd3AeAxSVb9yc+939wu3KwvAbZUivM1Wpeed3f250VlYhqp6U5L3JXl7kvd195dX5384yV929ydG5gOWp6pOSPLvsvYBOkkuytrasdeMS8VIVfXIJI/L2pSZJPlMkj/o7rcOC7UD2FBj+913fwmuqietf6Oq/s8xkRjsDkn2dve79pfglS8k+TdjIrEUVXXvqvrDqrquqq5d7U5579G5GO63k+xNcvfV1x/GNKppVdW/SfKcJO9I8q9XX+9I8jNV9W8HRls8I8LbbMOi119/fbBj5lBVF3f3993Ee5d29wO3OxPLUVXvTnJOktesTj05yb/sbtumTqyqPtjdDzrUOeZQVR/r7vsc5Hwl+Vh3nzQg1o5gRHj71U28Ptgxczj2Zt6zoQbf0t2/1903rL7+Q9YelGJu11fVU6vqqNXXU7P28Bxz2ldVBxtQ+b4k+7Y7zE5i1Yjt1zfx+mDHzOHiqjqju1+x/mRVnZ61ucPM7S1V9bwkr83az4j/Mcn5qyX39q84wnyekbU5wr+RtfvinUl+amgiRnp6kpdV1TFJ9s8Tv0fWptg9fVCmHcHUiG1WVV/N2pqPlbXRvv1bIFaSo7vbVoiTWe388x+TfDkHiu+uJLdP8pPd/V9HZWO8qrq5ZRW7u80XBpIkVfWdWfewnL8/Dk0RhoWoqh9N8oDV4WXd/faReYDlqapfS3JFd798w/lnJrlXdz9vTDLYmRRhgAWrqqOSPCbJiVk3nc2GGnOqqvcl2dUb/vKuqm9K8qHufsDB/0ngYMwRBli2P8zawy6XJvna4CyMd4eNJThJuvtrtX/bQWDTFGGAZTuhu79ndAgW4x+q6qTu/vj6k1V1UpJ/GJSJhaiqn+7uV24492JTZm6a5dMAlu0tVfXjo0OwGC/I2j3x9Kp64Orrp5L8p9V7zO0JVfU/7T+oqnOSHDcwz+KZIwywYFX1k0n+Q9YGLr6StRVmuru/bWgwhqmqByT5uRx4uPbDSV7a3ZeOS8USVNUds7bj4KuSnJzkb7r7OWNTLZsiDLBgq+XTTkly6cHmhjKnqnpSd//+oc4xh/3riq8ck+TNSf48q98SWG/8pinCAAtWVRcmeUR3e1COr6uq93f3Qw51jjmsPjB3Vr8xyo13qrXe+M3wsBzAsn0yyQVV9ZYkX9p/0vJpc6qqRyV5dJLjq+o31731bUluGJOK0br7XqMz7FSKMMCyXbn6uv3qi7l9NsklSR6bG2/B/sUk/+uQRCxKVf1gvnHd8d8dFmjhTI0AgB2mqr65u7+yen1sknt094cGx2Kwqvq9JN+V5INJvro63d39M8NCLZwiDLBgVXVckp9P8t1Jjt5/vrt3DwvFcFV1QdZGhW+XtZHha5O8s7uNCk+sqi5Pcn8P1m6edYQBlu28JP8lyb2SvDDJVUkuHhmIRfj27v7bJI9P8rvd/f1J9gzOxHgfTvKdo0PsJOYIAyzbd3T3K6vqOd39jiTvqCpFmNtV1d2SnJrkF0eHYTHukuQjVfXe3Pjh2seOi7RsijDAsn1l9b9/WVWPydrDUv/oZq5nDi9K8rYkf9bdF1fVvZN8/BD/DLd9/2p0gJ3GHGGABauqn0hyUZJ7JPl3WVsm64XdvXdoMIDbAEUYAHaY1UOUZ+Qbl8l6xqhMjFNVf9bdP1xVX8zahhpffyu2ZL9ZijDAAlXVGUku6O6PV1UleVXWHoz6VJJ/0d0fGBqQoarqnVn7TcH7cmCZrHT3G4eFgh1IEQZYoKr6cJIHd/dXquopSc5O8uNJHpzkV7r7YUMDMlRVfbC7HzQ6B8tRVUcluay77zs6y05i+TSAZbph/4YJSX4ia0tkXd/df5zkTgNzsQx/VFWPHh2C5ejuryb5aFXdc3SWncSIMMACVdX7kzwmyeezNh1id3dftnrv8u6+38h8jLWaC3qnJF/OgZVFzAWdXFVdmLXfGr03yd/vP2/5tJtm+TSAZXpBkkuSHJVk77oS/PAknxwZjPG6+5jRGVikXx4dYKcxIgywUFV1uyTHdPfn1527U9Z+dv/duGQsQVU9NsmPrA4v6O4/GpkHdiJzhAEWqrtv2FCCz+3uv1eCqaoXJ3lOko+svp5TVf/X2FSMVlWPr6qPV9UXqupvq+qLVfW3o3MtmRFhgB2iqt7f3Q8ZnYPxqupDSR7U3V9bHR+V5APd/T1jkzFSVV2R5H/o7stHZ9kpjAgDLFBVffNBTl+77UFYsjuve/3to0KwKH+lBN8yRoQBFqiqrk2yN8lrkry9/bBmnao6LcmLk/xp1nYP+5Ekz+vu1w0NxhBV9fjVy4cn+c4kb07ypf3vd/ebBsTaERRhgAWqqu9I8sQkT05yUpI3JnlNd797aDAWo6ruluT7Vofv7e7/OjIP41TVb9/M223r7ZumCAMsXFXdPcmTslaK75rktd39i2NTMUJVPTJrK4m8YcP5Jyb5Qnf/f2OSwc5kjjDAwnX3Z5O8MsnLknwxyeljEzHQC5K84yDnL0jyou2NwlJU1RlVddLqdVXVq1YrR3yoqh48Ot+SKcIAC1VVR1fVk6rqTUmuSLI7yfOS3H1sMga6Q3dft/Fkd38utt6e2XOSXLV6fVqS/z7JvZM8N8lvDsq0IyjCAAtUVa9OcnWSU5Ocl+TE7n56d7+1u786Nh0Dfdtqo5UbWa0ycscBeViGG7p7/1bbP5Hkd7v7+u7+4/iAdLMUYYBlemuS7+ruJ3X3G7t73+hALMKbkrxitcNgkqSqvjXJb63eY05fq6q7VdXRSfYk+eN17/mAdDO+4VMlAItwlyRnVNVB3+zuX9/eOCzELyX51SSfqqpPrc7dM2tzyH95WCpGe0GSS5IclWRvd1+WJFX18CSfHBls6awaAbBAVfW1JB9M8pasrQd6o0bc3S8cEIuFqKo7Jvmnq8MruvsfRuZhvNWUmWM2bMt+p6x1Pduy3wRFGGCBqupBWVsu7eQk78vaxhp/YmMNNqqqc7v7zNE5WBb3xeaYIwywQN39we5+Xnc/KGu/9j4lyUeq6rFjk7FAu0YHYJHcF5ugCAMsWFUdl+TBSR6Y5Jok145NxEir1SE2ck9Mzn1x+EyNAFigqnpG1pZOOzrJG5K8vrv9xTa5qro2yd6sTZV5u6kyJO6LW0MRBlig1cNyH06yf2WAG/2w7m5TJCZUVd+R5IlZmz9+UpI3JnlNd797aDCGcl8cPkUYYIFWyx5ttP8HdnX3wbbZZSJVdfckT8pa+blrktd29y+OTcVo7otbRhEGWKCqOiXJCd19zur4vUmOy1oZ/oXu/v2R+ViG1WYaj8/aVrp36+5/PDgSC+C+2DwPywEs089nbc7ffrfP2lPgj0jyrBGBWIaqOrqqnlRVb0pyRZLdSZ6X5O5jkzGS++Lw2FkOYJlu392fXnf8Z919fZLr12+vy1yq6tVJfizJO5Kcl+Qptt/GfXH4FGGAZTp2/UF3P3vd4XHbnIXleGuSZ3b3F0cHYVHcF4dJEQZYpvdU1Rnd/Yr1J6vqmUneOygT490lyRlVddA3u/vXtzcOC+G+OEwelgNYoKq6a5I3J/lSkvevTn9vkjskeVx3/9WgaAy0Wlbvg0nekrV740bNp7tfOCAWg7kvDp8iDLBgVbU7yXevDi/r7rePzMNYVfWgrC2LdXKS92VtA4U/sYHC3NwXh08RBoAdqKp+MMlpWXtI6he6e+8h/hEm4L64ZSyfBgA7TFUdl+TBSR6Y5Joktt/GfXEYPCwHADtEVT0jyalJjk7yhiSndreyMzn3xeEzNQIAdojVQ1EfTvKp1akb/SXe3Y/d9lAM5744fEaEAWDn+NGDnNtfeg6+dhYzONh9wSYowgCwc9w5yQndfU6SVNV7s7bBSif5hYG5GKi73zE6w07lYTkA2Dl+Psn6VQBun2RXkkckedaIQIxXVadU1Vnrjt9TVZ9cfT1xZLalU4QBYOe4fXd/et3xn3X39d19dZI7jQrFcBs/IN0hyfdl7QPS/zIi0E5hagQA7BzHrj/o7mevOzxum7OwHAf9gJTk+qryAelmGBEGgJ3jPVV1xsaTVfXMJO8dkIdl8AHpMFk+DQB2iKq6a5I3J/lSkvevTn9v1n4V/rju/qtB0Rioqs5LckF3v2LD+WcmeUR3nzYm2fIpwgCww1TV7iTfvTq8rLvfPjIPY/mAdPgUYQCA2wAfkG45RRgAgCl5WA4AgCkpwgAATEkRBgBgSoowAABTUoQBAJjS/w8aN2Vw3hYAYwAAAABJRU5ErkJggg==\n",
1197 "text/plain": [
1198 "<Figure size 864x432 with 1 Axes>"
1199 ]
1200 },
1201 "metadata": {
1202 "needs_background": "light"
1203 },
1204 "output_type": "display_data"
1205 }
1206 ],
1207 "source": [
1208 "wts = pd.DataFrame({\n",
1209 " \"EW\": weight_ew(ind_rets[\"2013\":]),\n",
1210 " \"CW\": weight_cw(ind_rets[\"2013\":], cap_weights=ind_mcap),\n",
1211 " \"GMV-Sample\": weight_gmv(ind_rets[\"2013\":], cov_estimator=sample_cov),\n",
1212 " \"GMV-ConstCorr\": weight_gmv(ind_rets[\"2013\":], cov_estimator=cc_cov),\n",
1213 " \"GMV-Shrink 0.5\": weight_gmv(ind_rets[\"2013\":], cov_estimator=shrinkage_cov),\n",
1214 "})\n",
1215 "wts.T.plot.bar(stacked=True, figsize=(12,6), legend=False);\n"
1216 ]
1217 },
1218 {
1219 "cell_type": "code",
1220 "execution_count": 15,
1221 "metadata": {},
1222 "outputs": [
1223 {
1224 "data": {
1225 "text/html": [
1226 "<div>\n",
1227 "<style scoped>\n",
1228 " .dataframe tbody tr th:only-of-type {\n",
1229 " vertical-align: middle;\n",
1230 " }\n",
1231 "\n",
1232 " .dataframe tbody tr th {\n",
1233 " vertical-align: top;\n",
1234 " }\n",
1235 "\n",
1236 " .dataframe thead th {\n",
1237 " text-align: right;\n",
1238 " }\n",
1239 "</style>\n",
1240 "<table border=\"1\" class=\"dataframe\">\n",
1241 " <thead>\n",
1242 " <tr style=\"text-align: right;\">\n",
1243 " <th></th>\n",
1244 " <th>Annualized Return</th>\n",
1245 " <th>Annualized Vol</th>\n",
1246 " <th>Skewness</th>\n",
1247 " <th>Kurtosis</th>\n",
1248 " <th>Cornish-Fisher VaR (5%)</th>\n",
1249 " <th>Historic CVaR (5%)</th>\n",
1250 " <th>Sharpe Ratio</th>\n",
1251 " <th>Max Drawdown</th>\n",
1252 " </tr>\n",
1253 " </thead>\n",
1254 " <tbody>\n",
1255 " <tr>\n",
1256 " <th>EW</th>\n",
1257 " <td>0.131606</td>\n",
1258 " <td>0.187437</td>\n",
1259 " <td>-0.616296</td>\n",
1260 " <td>6.771301</td>\n",
1261 " <td>0.082035</td>\n",
1262 " <td>0.122226</td>\n",
1263 " <td>0.527384</td>\n",
1264 " <td>-0.598060</td>\n",
1265 " </tr>\n",
1266 " <tr>\n",
1267 " <th>CW</th>\n",
1268 " <td>0.131522</td>\n",
1269 " <td>0.187236</td>\n",
1270 " <td>-0.544912</td>\n",
1271 " <td>5.820495</td>\n",
1272 " <td>0.081975</td>\n",
1273 " <td>0.120151</td>\n",
1274 " <td>0.527515</td>\n",
1275 " <td>-0.587850</td>\n",
1276 " </tr>\n",
1277 " <tr>\n",
1278 " <th>GMV-Sample</th>\n",
1279 " <td>0.153094</td>\n",
1280 " <td>0.116303</td>\n",
1281 " <td>-0.811386</td>\n",
1282 " <td>6.408527</td>\n",
1283 " <td>0.047674</td>\n",
1284 " <td>0.072557</td>\n",
1285 " <td>1.030067</td>\n",
1286 " <td>-0.463912</td>\n",
1287 " </tr>\n",
1288 " <tr>\n",
1289 " <th>GMV-CC</th>\n",
1290 " <td>0.132374</td>\n",
1291 " <td>0.115347</td>\n",
1292 " <td>-0.890921</td>\n",
1293 " <td>6.072383</td>\n",
1294 " <td>0.049608</td>\n",
1295 " <td>0.075267</td>\n",
1296 " <td>0.863739</td>\n",
1297 " <td>-0.524099</td>\n",
1298 " </tr>\n",
1299 " <tr>\n",
1300 " <th>GMV-Shrink 0.5</th>\n",
1301 " <td>0.138502</td>\n",
1302 " <td>0.114873</td>\n",
1303 " <td>-0.886396</td>\n",
1304 " <td>6.305904</td>\n",
1305 " <td>0.048716</td>\n",
1306 " <td>0.074239</td>\n",
1307 " <td>0.919234</td>\n",
1308 " <td>-0.518442</td>\n",
1309 " </tr>\n",
1310 " </tbody>\n",
1311 "</table>\n",
1312 "</div>"
1313 ],
1314 "text/plain": [
1315 " Annualized Return Annualized Vol Skewness Kurtosis \\\n",
1316 "EW 0.131606 0.187437 -0.616296 6.771301 \n",
1317 "CW 0.131522 0.187236 -0.544912 5.820495 \n",
1318 "GMV-Sample 0.153094 0.116303 -0.811386 6.408527 \n",
1319 "GMV-CC 0.132374 0.115347 -0.890921 6.072383 \n",
1320 "GMV-Shrink 0.5 0.138502 0.114873 -0.886396 6.305904 \n",
1321 "\n",
1322 " Cornish-Fisher VaR (5%) Historic CVaR (5%) Sharpe Ratio \\\n",
1323 "EW 0.082035 0.122226 0.527384 \n",
1324 "CW 0.081975 0.120151 0.527515 \n",
1325 "GMV-Sample 0.047674 0.072557 1.030067 \n",
1326 "GMV-CC 0.049608 0.075267 0.863739 \n",
1327 "GMV-Shrink 0.5 0.048716 0.074239 0.919234 \n",
1328 "\n",
1329 " Max Drawdown \n",
1330 "EW -0.598060 \n",
1331 "CW -0.587850 \n",
1332 "GMV-Sample -0.463912 \n",
1333 "GMV-CC -0.524099 \n",
1334 "GMV-Shrink 0.5 -0.518442 "
1335 ]
1336 },
1337 "execution_count": 15,
1338 "metadata": {},
1339 "output_type": "execute_result"
1340 },
1341 {
1342 "data": {
1343 "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsUAAAF1CAYAAAAA6ZfwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAACdQUlEQVR4nOzdd3SVRfrA8e/cm5vee4MUQg0lQOhVUBARRFERXSt27Ova9md3beuyq64rKhZsIKIgiKJI75BA6AFCSCC993rvnd8fN0ZiEgg1AZ7POTnkzjsz7/Ne95x9GJ53RmmtEUIIIYQQ4mJmaO0AhBBCCCGEaG2SFAshhBBCiIueJMVCCCGEEOKiJ0mxEEIIIYS46ElSLIQQQgghLnqSFAshhBBCiIueJMVCCHEGKKVeUEp92dpxnGtKKSel1GKlVLFS6tsT9A1XSmmllF3d55+VUreem0iFEOL4JCkWQlwQlFIdlVJVxyamyubvSqkjSqkSpdRcpZT7ceZIUUpdem4ibvL+DZLGMzTnbUopi1KqrO47SFBKXXkac637U/O1QADgo7W+7mTm01qP01rPPpVYhBDiTJOkWAhxoXgP2PqntluAm4EhQDDgBLx7juM6o04xYd6otXYFPIGPgXlKKa8zdN8w4IDW2nwKcQkhRJshSbEQ4rynlLoBKAKW/+nSBOBjrfVRrXUZ8AYwRSnl3II5b1NKrVNKvaWUKlRKHVZKjTvmeoRSarVSqlQptQzwPebaSKVU2p/mq1+FVkr1V0rF1a3cZiulZtR1W1P3Z1Hdyu6gujjWK6X+rZTKB15SShUopXocM7e/UqpCKeV3vGfSWluBT7D95aCDUspDKfW5UipXKZWqlPo/pZThmOc/9r7fADOBQXWxFSmlXgSeq/tOy5RS05RShrp5UpVSOXXzezTzHa9SSt1Z93uz45RSjkqpL5VS+XX33aqUCjj+f0EhhDg5khQLIc5rdeUQLwGPNdflT787AB1bOP0AYD+2hPdN4GOl1O/zfQ3E1117GTiZ2ti3gbe11u5AB2BeXfvwuj89tdauWuuNx8SRjK1M4WVgLvCXY+abCizXWuce76Z1q713AmXAQWyr5h5AJDAC28r67ccMOfa+fwHupW7VWWvtqbV+HngV+Kau7WPgtrqfS+rmdQX+24Lv5Hjjbq2Lsx3gUxdHZQvmFEKIFpOkWAhxvnsZ22pwWhPXlgJ31tXqegBP1rWfcKW4TqrW+iOttQWYDQQBAUqp9kA/4FmtdbXWeg2w+CRirgWilFK+WusyrfWmE/TP0Fq/q7U2a60r62KZekyCfjPwxXHGD1RKFQFZ2BLoq7ElxjcAT2utS7XWKcC/6uZq7r4tcRMwQ2udXLc6/zRwQwvKPo43rhZbMhyltbZoreO11iUtjEcIIVpEkmIhxHlLKRUDXAr8u5kunwBzgFXAHmBlXXtTCXRTsn7/RWtdUferK7b65EKtdfkxfVNbOCfANKATkFhXCnCiF9+OHvtBa70ZqABGKqW6AFHAouOM31S3suurtR6otf4N2wq36U9xpwIhzd23hYKbmNMO22rzqY77AvgFmKuUylBKvamUMp1CbEII0awz9oazEEK0gpFAOHCkbtHUFTAqpbpprfvU1dA+X/eDUmoMkF73czoyAS+llMsxiXF7QNf9Xs4xq9FKKSNQX++rtT6IbaXXAFwDzFdK+Rwz/s+aap+NraQhC5ivta46yWfIw7YCGwbsPeYZjv1u/nzf5uI7VkbdnL9rD5iBbCD0VMbVvcT3IvCiUioc+AlbWcvHLYhHCCFaRFaKhRDnsw+x1eTG1P3MBJYAYwGUUt5KqQ62ndlUN2AG8FJdsnzKtNapQBy2JM1eKTUU20t9vzsAOCqlxtetaP4ftlpm6uL6i1LKry6OorpmK5Bb92dkC8L4ElsZxF+Az0/hGSzYapn/oZRyU0qFYavLPt5ey9lAqFLK/jh95gCP1r2I6MofNccn2p2i2XFKqUuUUj3q/nJRgi2ZP63/hkII8WeSFAshzlta6wqtddbvP9jqZKuOeeHMF9uqYjnwM/CJ1vrDM3T7G7G9iFaAbSW6PjHVWhcD9wOzsK28ltOwZONyYI9SqgzbS3c3aK0r60o0/gGsr9tlYWBzN9daHwW2YVu9XXuKz/BgXWzJwDpsLw9+cpz+K7CVoWQppfKa6fMJtnKHNcBhoKruPidyvHGBwHxsCfE+YDXHr6EWQoiTprRuyb+GCSGEaGuUUp9gexnu/1o7FiGEON9JTbEQQpyH6mprrwF6t3IoQghxQZDyCSGEOM8opV4GdgP/1Fofbu14hBDiQiDlE0IIIYQQ4qInK8VCCCGEEOKiJ0mxEEIIIYS46LWJF+18fX11eHh4a4chhBBCCCEucPHx8Xlaa78/t7eJpDg8PJy4uLjWDkMIIYQQQlzglFKpTbVL+YQQQgghhLjoSVIshBBCCCEuepIUCyGEEEKIi16bqCluSm1tLWlpaVRVVbV2KOIUODo6Ehoaislkau1QhBBCCCFOqM0mxWlpabi5uREeHo5SqrXDESdBa01+fj5paWlERES0djhCCCGEECfUZssnqqqq8PHxkYT4PKSUwsfHR1b5hRBCCHHeaLNJMSAJ8XlM/tsJIYQQ4nzSppPi1mY0GomJian/ef311/nhhx+YNGlSfZ/XXnuNqKio+s+LFy9m4sSJrRCtEEIIIYQ4VW22prgtcHJyIiEhoUFbbm4u99xzT/3njRs34u7uTk5ODv7+/mzYsIHBgwef40iFEEIIIcTpkJXik+Tn54e7uztJSUkApKenM3nyZDZs2ADAhg0bGDJkSGuGKIQQQgghTtJ5sVL84uI97M0oOaNzdgt25/kJ0cftU1lZSUxMTP3np59+milTpjBkyBA2bNiAxWKhY8eODBw4kF9++YUrr7ySHTt20K9fvzMaqxBCCCGEOLvOi6S4tTRVPgEwePDg+qR40KBB9O/fn5deeont27fTpUsXHB0dz32wQgghhBCigdyKXEwGE56Onifse14kxSda0T3XhgwZwrvvvovFYuGuu+7Czc2NqqoqVq1aJfXEQgghhBBtxL2/3UuYexgzRs44YV+pKT4FXbt2JSMjg3Xr1tG7d28AYmJimDlzptQTCyGEEEK0AVnlWRwoPEBKSUqL+ktSfBy/1xT//vPUU08Btj14BwwYgI+PT/0xxoMGDSI5OVlWioUQQggh2oDNmZsBW3LcEudF+URrsVgszV5bsmRJg8+33XYbt91221mOSAghhBBCtMSmzE0AlNaUUlZThqu963H7y0qxEEIIIYS4oGit2ZS5CWc7Z6Blq8WSFAshhBBCiAvKgcID5FXmMS5iHABZFZIUCyGEEEKIi8yatDUAXNvpWgAyyzNPOEaSYiGEEEIIcUFZk7aGbj7d6OLdBaMySvmEEEIIIYS4uBRVFbEzbyfDQ4djZ7DDz9lPkmIhhBBCCHFxWXJ4CVZtZWToSACCXIIkKT4TsrKyuOGGG+jQoQN9+/bliiuu4Oqrr2bhwoX1fTp37swrr7xS/3ny5Ml8//33rRCtEEIIIcTFq9pSzSe7PqFvQF+ifW0nIgc6B0pN8enSWnP11VczcuRIDh06RHx8PK+99hp9+vRhw4YNAOTn5+Pi4sLGjRvrx23cuFEO8RBCCCGEOMcWH1pMTmUO9/a6t74twiOC9LJ0iqqKjjtWkuLjWLlyJSaTiXvv/eOL7dWrF6NHj65Pijds2MCECRPIzc1Fa83hw4dxcnIiMDCwtcIWQgghhLgo7cvfh4eDBwMCB9S3DQ8djlVbWZO+5rhjz48T7X5+CrJ2ndk5A3vAuNeP22X37t307du3UXvfvn3ZvXs3NTU1bNiwgREjRpCcnMy+ffvYvn27rBILIYQQQrSCvMo8/Jz8UErVt3Xz6Ya/sz8rjqxgYoeJzY6VleJT4ODgQHR0NNu2bWPTpk0MGDCAQYMGsWHDBjZs2MCQIUNaO0QhhBBCiItOXlUePk4+DdqUUlzS7hI2ZGygylzV7NjzY6X4BCu6Z0t0dDTz589v8tqQIUNYs2YNpaWleHl5MXDgQP773/+yfft27rnnnnMcqRBCCCGEyK/MJ8Y/plH7gKABfLP/Gw4VH2p2rKwUH8eoUaOorq7mww8/rG/buXMna9euZfDgwXzwwQf06tULgJ49e7Jp0yaOHDlC9+7dWytkIYQQQoiLktaa/Mp8fBx9Gl1zt3cHoKK2otnxkhQfh1KKBQsW8Ntvv9GhQweio6N5+umnCQwMZPDgwSQnJzNo0CAA7Ozs8Pf3JzY2FoNBvlYhhBBCiHOpvLacKksVvk6+ja452zkDx0+Kz4/yiVYUHBzMvHnzmrymtW7wedWqVecgIiGEEEII8Wd5lXkATSbFLiYXACrMslIshBBCCCEuYPlV+QCNXrQDcDbZVorLa8ubHS9JsRBCCCGEOO8db6VYkmIhhBBCCHFR+D0pbupFu/qaYimfEEIIIYQQF7L8ynyMyoing2eja3YGOxyNjrL7hBBCCCGEuLDlVebh7eiN0WBs8rqzyVnKJ4QQQgghxIUtvyq/yXri3znbOUv5xOnIzs7mxhtvJDIykr59+zJo0CAWLFjAqlWrUEoxa9as+r4JCQkopXjrrbeYPXs2U6dObTBXXl4efn5+VFdXN2j/8ccf6d27N7169aJbt2588MEHZ/WZXnjhBd56662zeg8hhBBCiHMpr7LxEc/HcjG5yErxqdJaM2nSJIYPH05ycjLx8fHMnTuXtLQ0ALp3795gD+M5c+bUn3B39dVXs2zZMioq/vgbyfz585kwYQIODg71bbW1tdx9990sXryYHTt2sH37dkaOHHluHlAIIYQQ4gKRV5nX5Et2v3M2OVNZW9nsdUmKj2PFihXY29tz77331reFhYXx4IMP1v9eVVVFdnY2WmuWLl3KuHHjAHB3d2fEiBEsXry4fuzcuXMbrR6XlpZiNpvx8bH9R3RwcKBz584ALF68mAEDBtC7d28uvfRSsrOzAdtK76233sqwYcMICwvj+++/54knnqBHjx5cfvnl1NbWAhAeHl7f3r9/f5KSkho946FDh7j88svp27cvw4YNIzEx8Ux9fUIIIYQQ54RVWymoLDh++cQJaorPixPt3tjyBokFZzZZ6+LdhSf7P3ncPnv27KFPnz7H7XPttdfy7bff0rt3b/r06dNgFXjq1Kl89dVXTJkyhYyMDA4cOMCoUaMajPf29mbixImEhYUxevRorrzySqZOnYrBYGDo0KFs2rSpvkzjzTff5F//+hdgS2ZXrlzJ3r17GTRoEN999x1vvvkmV199NUuWLGHSpEkAeHh4sGvXLj7//HMeeeQRfvzxxwb3v/vuu5k5cyYdO3Zk8+bN3H///axYsaKlX6MQQgghxDl1oPAAHvYeBLgE1LeVVJdg1ubjJsUudi5kmDOavX5eJMVtxfTp01m3bh329vb885//BOD6669nypQpJCYmMnXqVDZs2FDff/z48dx///2UlJQwb948Jk+ejNHY+I3IWbNmsWvXLn777Tfeeustli1bxmeffUZaWhpTpkwhMzOTmpoaIiIi6seMGzcOk8lEjx49sFgsXH755QD06NGDlJSU+n6/r0xPnTqVRx99tMF9y8rK2LBhA9ddd11925/rnYUQQggh2oqjpUeZ8uMULFYL03pM4+E+DwPHP7jjd84m5+NuyXZeJMUnWtE9W6Kjo/nuu+/qP7/33nvk5eURGxtb3xYYGIjJZGLZsmW8/fbbDZJiJycnLr/8chYsWMDcuXOZMWMGAGPHjiU7O5vY2Nj6F/V69OhBjx49uPnmm4mIiOCzzz7jwQcf5LHHHmPixImsWrWKF154oX7u31ekDQYDJpMJpVT9Z7PZXN/v9/Y//w5gtVrx9PQkISHhNL8pIYQQQoizb+aOmRiVkQ5eHVh1dNUfSXFV3cEdJ3jRTvYpPkWjRo2iqqqK999/v77t2BfnfvfSSy/xxhtvNLkKPHXqVGbMmEF2djaDBg0C4JdffiEhIYFZs2ZRVlbGqlWr6vsnJCQQFhYGQHFxMSEhIQDMnj37lJ7hm2++qf/z9/v/zt3dnYiICL799lvA9mLhjh07Tuk+QgghhBBnU1ppGj8m/8gNnW8gxj+G3Mrc+mv1p9kdJyl2tnOm3Hye1xS3FqUUCxcu5NFHH+XNN9/Ez88PFxcX3njjjQb9Bg8e3Owcl112GbfccgvTpk1rtFILtkT0zTff5J577sHJyQkXFxc+++wzwPZC3XXXXYeXlxejRo3i8OHDJ/0MhYWF9OzZEwcHB+bMmdPo+ldffcV9993HK6+8Qm1tLTfccEP9DhpCCCGEEG3FjtwdWLWVCR0msDptNcXVxVRbqnEwOpBfmQ+cuHzCqq3NXlda6zMe9MmKjY3VcXFxDdr27dtH165dWymiC0N4eDhxcXH4+jb/P5CzSf4bCiGEEOJMeWfbO3y6+1O23LSFH5N/5LkNz/HzNT8T6hbKjLgZfLXvK+L+EtfkIiTAnMQ5vLr5VXbftjteax375+tSPiGEEEIIIdq8g0UHae/eHpPRhJ+zH0B9CUVeZR6+Tr7NJsRgqyk+nhYnxUopo1Jqu1Lqx7rPEUqpzUqpJKXUN0op+7p2h7rPSXXXw1t6D3FmpaSktNoqsRBCCCHEmXSo6BBRnlEA+DnZkuKcihzgj6T4eJztnI97/WRWih8G9h3z+Q3g31rrKKAQmFbXPg0orGv/d10/IYQQQgghTkmluZK00rT6pNjf2R/44wW7/Kp8vJ28jzuHs+kMJMVKqVBgPDCr7rMCRgHz67rMBibV/X5V3Wfqro9Wx1vLFkIIIYQQ4jiSi5PRaKK8bEmxp4MndgY70krT+GrfV2SWZ55wpfhE5RMt3X3iP8ATgFvdZx+gSGv9+4a4aUBI3e8hwFEArbVZKVVc1z/v2AmVUncDdwO0b9++hWEIIYQQQoiLTVJhEkD9SrFSCn8nf747+B2V5koAApwDmh0PZ6B8Qil1JZCjtY5vSdAtpbX+UGsdq7WO9fPzO5NTCyGEEEKIC0SttZYv9n6Bv7M/7dza1bf7OftRaa4k0CWQ/4z8D1O7TD3uPGfiRbshwESlVAowF1vZxNuAp1Lq95XmUCC97vd0oB1A3XUPIL8F92mTsrOzufHGG4mMjKRv374MGjSIBQsWsGrVKpRS9SfSge3gDaUUb731FrNnz64/Yvl3eXl5+Pn5NTpKuba2lqeeeoqOHTvSp08fBg0axM8//wzYjmK+55576NChA3379mXkyJFs3rz57D+4EEIIIUQb8PW+r9lfuJ+n+z+NneGPIoff64pHtx/N6LDReDh4HHee006KtdZPa61DtdbhwA3ACq31TcBK4Nq6brcCP9T9vqjuM3XXV+i2sBnyKdBaM2nSJIYPH05ycjLx8fHMnTuXtLQ0ALp37868efPq+8+ZM6f+4Iurr76aZcuWNTgBb/78+UyYMKH+iObfPfvss2RmZrJ79262bdvGwoULKS0tBeDOO+/E29ubgwcPEh8fz6effkpeXoNKFCGEEEKIC9aPyT/S2783o9uPbtD+ew3xn9ub42bvxuJJi5u9fjr7FD8JPKaUSsJWM/xxXfvHgE9d+2PAU6dxj1a1YsUK7O3tuffee+vbwsLCePDBB+t/r6qqIjs7G601S5cuZdy4cYDtCOURI0awePEfX/7cuXMbrR5XVFTw0Ucf8e6779YnywEBAVx//fUcOnSIzZs388orr2Aw2P5TRUREMH78+LP63EIIIYQQbUGVuYqDhQeJDYhttAfxoKBBDAwaSG//3i2ay6AMhHuEN3v9pI551lqvAlbV/Z4M9G+iTxVw3cnMeyJZr75K9b7EMzklDl27EPjMM8fts2fPHvr06XPcPtdeey3ffvstvXv3pk+fPg1WgadOncpXX33FlClTyMjI4MCBA4waNarB+KSkJNq3b4+7u3uT94+JicFoNJ7EkwkhhBBCXBgSCxKxaAvdfbs3unZJ+0u4pP0lZ+xecqLdSZg+fTq9evWiX79+9W3XX3893377LXPmzGm0Cjx+/HjWr19PSUkJ8+bNY/LkyZLgCiGEEEKcwNHSoyxLXcb2nO0ATSbFZ9pJrRS3lhOt6J4t0dHRfPfdd/Wf33vvPfLy8oiN/eO47MDAQEwmE8uWLePtt99mw4YN9decnJy4/PLLWbBgAXPnzmXGjBkAjB07luzsbGJjY3nnnXc4cuQIJSUljVaLo6Oj2bFjBxaLRZJpIYQQQlwUvtr3Fa9veR0Ae4M9/s7+9S/VnU2yUnwco0aNoqqqivfff7++7dgX53730ksv8cYbbzSZuE6dOpUZM2aQnZ3NoEGDAPjll19ISEhg1qxZODs7M23aNB5++GFqamoAyM3N5dtvv6VDhw7Exsby/PPP8/u7iikpKSxZsuRsPK4QQgghRKs6XHyYGXEzGBoylGs7XUuNtYbuPmd/lRgkKT4upRQLFy5k9erVRERE0L9/f2699VbeeKPhydWDBw9m0qRJTc5x2WWXkZGRwZQpUxoViP/ulVdewc/Pj27dutG9e3euvPLK+lXjWbNmkZ2dTVRUFN27d+e2227D3//s/21JCCGEEOJce3vb2zjaOfLykJd5uv/TjIsYx1VRV52Te6u2sFtabGysjouLa9C2b98+unbt2koRiTNB/hsKIYQQoqUqaisYNncY13W+jqf6n73Ny5RS8Vrr2D+3y0qxEEIIIYRodesz1lNjrWnxvsNnmiTFQgghhBCi1S0/shxPB88W7zt8pklSLIQQQgghWtVPyT/xa8qvjGo/qsFRzueSJMVCCCGEEKLVHC4+zJNrn6SnX08e7fNoq8UhSbEQQgghhGg1GzM2AvCPof/A09Gz1eKQpFgIIYQQQrSauOw4gl2CCXENadU4JCk+juzsbG688UYiIyPp27cvgwYNYsGCBQCsWrUKpRSzZs2q75+QkIBSirfeeovZs2c3OvY5Ly8PPz8/qqurG7T/+OOP9O7dm169etGtWzc++OADAG677Tbmz5/folgHDx58wj7h4eHk5eUdt098fDw9evQgKiqKhx56iKa27Fu1ahUeHh7ExMQQExPDSy+91KIYhRBCCCGOpbUmLiuO2MBGO6Sdc5IUN0NrzaRJkxg+fDjJycnEx8czd+5c0tLS6vt0796defPm1X+eM2cOvXr1AuDqq69m2bJlDU7Amz9/PhMmTMDBwaG+rba2lrvvvpvFixezY8cOtm/fzsiRI1scp9lsBmhwvPTpuO+++/joo484ePAgBw8eZOnSpU32GzZsGAkJCSQkJPDcc8+dkXsLIYQQ4uJyqOgQhdWFxAZIUtxmrVixAnt7e+699976trCwMB588MEGn6uqqsjOzkZrzdKlSxk3bhwA7u7ujBgxgsWLF9f3nzt3bqPV49LSUsxmMz4+PgA4ODjQuXPn+utr1qxh8ODBREZG1q8ar1q1imHDhjFx4kS6desGgKura/21kSNHcu2119KlSxduuummRqu9lZWVjBs3jo8++qhBe2ZmJiUlJQwcOBClFLfccgsLFy48pe9PCCGEEOJEtuVsA2gTSXHr7HlxktbOO0De0bIzOqdvO1eGXd+p2et79uyhT58+J5zn2muv5dtvv6V379706dOnwSrw1KlT+eqrr5gyZQoZGRkcOHCAUaNGNRjv7e3NxIkTCQsLY/To0Vx55ZVMnToVg8H295XMzEzWrVtHYmIiEydO5NprrwVg27Zt7N69m4iIiEYxbd++nT179hAcHMyQIUNYv349Q4cOBaCsrIwbbriBW265hVtuuaXBuPT0dEJDQ+s/h4aGkp6e3uRzb9y4kV69ehEcHMxbb71FdHT0Cb8rIYQQQohjHS4+jJOdEyFurVtPDLJS3GLTp0+nV69e9OvXr0H79ddfz7fffsucOXMarQKPHz+e9evXU1JSwrx585g8eTJGo7HR3LNmzWL58uX079+ft956izvuuKP+2qRJkzAYDHTr1o3s7Oz69v79+zeZEP9+LTQ0FIPBQExMDCkpKfXXrrrqKm6//fZGCfHJ6NOnD6mpqezYsYMHH3yQSZMmnfJcQgghhLh4HS45TJh7GAbV+inpebFSfLwV3bMlOjqa7777rv7ze++9R15eHrGxDZf3AwMDMZlMLFu2jLfffrtBba+TkxOXX345CxYsYO7cucyYMQOAsWPHkp2dTWxsbP2Lej169KBHjx7cfPPNRERE8NlnnwE0WHk+tgzCxcWl2diPHWM0GuvrjgGGDBnC0qVLufHGG1FKNRgXEhLSoGY6LS2NkJDGf3Nzd3ev//2KK67g/vvvJy8vD19f32ZjEkIIIYT4s9TiVLr7dm/tMABZKW7WqFGjqKqq4v33369vO/aluWO99NJLvPHGG02uAk+dOpUZM2aQnZ3NoEGDAPjll19ISEhg1qxZlJWVsWrVqvr+CQkJhIWFndmH+VOsXl5eTJ8+vdG1oKAg3N3d2bRpE1prPv/8c6666qpG/bKysuoT9C1btmC1WutrooUQQgghWqLGUkNGeQZh7mcv7zkZkhQ3QynFwoULWb16NREREfTv359bb72VN954o1HfwYMHN1tCcNlll5GRkcGUKVMarcyCbfX3zTffpHPnzsTExPD888/XrxKfLW+//TaVlZU88cQTja7973//48477yQqKooOHTrUvzg4c+ZMZs6cCdh20ejevTu9evXioYceYu7cuU0+mxBCCCFEc46WHsWqrYR7hLd2KACopvahPddiY2N1XFxcg7Z9+/bRtWvXVopInAny31AIIYQQ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\n",
1344 "text/plain": [
1345 "<Figure size 864x432 with 1 Axes>"
1346 ]
1347 },
1348 "metadata": {
1349 "needs_background": "light"
1350 },
1351 "output_type": "display_data"
1352 }
1353 ],
1354 "source": [
1355 "mv_sh_r = backtest_ws(ind_rets, estimation_window=36, weighting=weight_gmv, cov_estimator=shrinkage_cov, delta=0.5)\n",
1356 "btr = pd.DataFrame({\"EW\": ewr, \"CW\": cwr, \"GMV-Sample\": mv_s_r, \"GMV-CC\": mv_cc_r, 'GMV-Shrink 0.5': mv_sh_r})\n",
1357 "(1+btr).cumprod().plot(figsize=(12,6), title=\"49 Industry Portfolios\")\n",
1358 "summary_stats(btr.dropna())"
1359 ]
1360 },
1361 {
1362 "cell_type": "code",
1363 "execution_count": null,
1364 "metadata": {},
1365 "outputs": [],
1366 "source": []
1367 }
1368 ],
1369 "metadata": {
1370 "kernelspec": {
1371 "display_name": "Python 3",
1372 "language": "python",
1373 "name": "python3"
1374 },
1375 "language_info": {
1376 "codemirror_mode": {
1377 "name": "ipython",
1378 "version": 3
1379 },
1380 "file_extension": ".py",
1381 "mimetype": "text/x-python",
1382 "name": "python",
1383 "nbconvert_exporter": "python",
1384 "pygments_lexer": "ipython3",
1385 "version": "3.8.8"
1386 }
1387 },
1388 "nbformat": 4,
1389 "nbformat_minor": 2
1390 }