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": "iVBORw0KGgoAAAANSUhEUgAAAsUAAAF1CAYAAAAA6ZfwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAB6GElEQVR4nOzdd3zV1f3H8de5I3sPCBAg7L2RjSIOnLgHVuusWmdt+7O1rdY66qijVq277r0FNyIgsveeIUAIZO95x/n9cWMEWQGS3EDezz7yyL3f7/d8v5/7JY1vDud7jrHWIiIiIiLSkjmCXYCIiIiISLApFIuIiIhIi6dQLCIiIiItnkKxiIiIiLR4CsUiIiIi0uIpFIuIiIhIi6dQLCKyH8aYu40xbwS7jqZmjAk3xkw2xhQbY94/wLFpxhhrjHHVvv/SGHN501QqItIwFIpF5KhnjMkwxpwYxOvvFhob6JxXGGN8xpgyY0yJMWapMeaMwzjXrF9sPh9oDSRaay84mPNZa0+11r56KLWIiASLQrGISDNwiIF5jrU2CogDXgLeM8bEN9B1OwLrrbXeQ6hLROSIo1AsIi3KT72ixphHjDGFxpjNxphTd9nfyRgzwxhTaoz5FkjaZd84Y0zmL85X1wttjBlmjFlY23ObbYx5rPawmbXfi2p7dkfW1vGjMeZxY0w+cI8xpsAY02+Xc7cyxlQYY5L395mstX7gf0A40MUYE2uMec0Yk2uM2WKM+ZsxxrHL59/1uu8CzwIja2srMsb8A7gLuKh229XGGEftebYYY3Jqzx+7j3s83RhzTe3rfbYzxoQZY94wxuTXXneBMab1/v8ERUQah0KxiLREw4F1BALvw8BLxhhTu+8tYFHtvnuBgxkb+wTwhLU2BugCvFe7/dja73HW2ihr7Zxd6kgnMEzhXuAd4NJdzjcJ+M5am7u/i9b29l4DlAEbgCeBWKAzcBzwa+DKXZrset1Lgeup7XW21sZZa/8O/BN4t3bbS8AVtV/H1543CniqHvdkf+0ur62zPZBYW0dlPc4pItLgFIpFpCXaYq19wVrrA14F2gCtjTEdgGOAO6211dbamcDkgzivB+hqjEmy1pZZa+ce4Pgsa+2T1lqvtbaytpZJuwT0y4DX99N+hDGmCNhJIECfQyAYXwzcYa0ttdZmAI/Wnmtf162PXwGPWWvTrbVlwB3AxfUY9rG/dh4CYbirtdZnrV1krS2pZz0iIg1KoVhEWqKdP72w1lbUvowC2gKF1tryXY7dchDnvRroDqytHQpwoAfftu36xlo7D6gAxhljegJdgc/2035ubc9ukrV2hLV2KoEebvcv6t4CtNvXdeup7V7O6SLQ23yo7V4HvgbeMcZkGWMeNsa4D6E2EZHDplAsIvKzHUC8MSZyl20ddnldDkT89MYY4wTqxvtaazdYaycBrYCHgA9qz2X3cb29bX+VwJCGy4APrLVVB/kZ8gj0wHb8xWfYvp/r7qu+XWXt5ZxeIPtQ21lrPdbaf1hrewOjgDMIDPUQEWlyCsUiIrWstVuAhcA/jDEhxpgxwJm7HLIeCDPGnF7bo/k3IPSnncaYS40xybUPvhXVbvYDubXfO9ejjDcIDIO4FHjtED6Dj8BY5vuNMdHGmI7A72vPuy/ZQKoxJmQ/x7wN3Fb7IGIUP485PtDsFPtsZ4w53hjTr/YvFyUEwry/Xh9URKSBKRSLiOzuEgIPohUAf2eXYGqtLQZuAF4k0PNaDuw6G8UpwCpjTBmBh+4uttZW1g7RuB/4sXaWhRH7uri1dhuwmEDv7Q+H+Blurq0tHZhF4OHB/+3n+GnAKmCnMSZvH8f8j8Bwh5nAZqCq9joHsr92KcAHBALxGmAG+x9DLSLSaIy19flXMxERaSrGmP8ReBjub8GuRUSkpWiw1ZVEROTwGWPSgHOBQUEuRUSkRdHwCRGRZsIYcy+wEviXtXZzsOsREWlJNHxCRERERFo89RSLiIiISIunUCwiIiIiLV6zeNAuKSnJpqWlBbsMERERETnKLVq0KM9am/zL7c0iFKelpbFw4cJglyEiIiIiRzljzJa9bdfwCRERERFp8RSKRURERKTFUygWERERkRavWYwp3huPx0NmZiZVVVXBLqXFCwsLIzU1FbfbHexSRERERBpFsw3FmZmZREdHk5aWhjEm2OW0WNZa8vPzyczMpFOnTsEuR0RERKRRNNvhE1VVVSQmJioQB5kxhsTERPXYi4iIyFGt2YZiQIG4mdCfg4iIiBztmnUoDjan08nAgQPrvh588EE+/fRTzj777LpjHnjgAbp27Vr3fvLkyUycODEI1YqIiIjIoWq2Y4qbg/DwcJYuXbrbttzcXK677rq693PmzCEmJoacnBxatWrF7NmzGTVqVBNXKiIiIiKHQz3FByk5OZmYmBg2btwIwPbt2znvvPOYPXs2ALNnz2b06NHBLFFEREREDtIR0VP8j8mrWJ1V0qDn7N02hr+f2We/x1RWVjJw4MC693fccQcXXXQRo0ePZvbs2fh8Prp168aIESP4+uuvOeOMM1i2bBnHHHNMg9YqIiIiIo3riAjFwbK34RMAo0aNqgvFI0eOZNiwYdxzzz0sWbKEnj17EhYW1vTFioiIiMhucitycTvcxIXFHfDYIyIUH6hHt6mNHj2aJ598Ep/Px29+8xuio6Opqqpi+vTpGk8sIiIi0kxcP/V6OsZ05LFxjx3wWI0pPgS9evUiKyuLWbNmMWjQIAAGDhzIs88+q/HEIiIiIs3AzvKdrC9cT0ZJRr2OVyjej5/GFP/09ec//xkIzNs7fPhwEhMT65Y+HjlyJOnp6eopFhEREWkG5u2YBwTCcX0cEcMngsXn8+1z3+eff77b+yuuuIIrrriikSsSERERkfqYu2MuAKU1pZTVlBEVErXf49VTLCIiIiJHFWstc3fMJcIVAdSvt1ihWERERESOKusL15NXmcepnU4FYGeFQrGIiIiItDAzM2cCcH738wHYUb7jgG0UikVERETkqDIzcya9E3vTM6EnTuPU8AkRERERaVmKqopYnrecY1OPxeVwkRyRrFAsIiIiIi3L55s/x2/9jEsdB0CbyDYKxQ1h586dXHzxxXTp0oUhQ4Zw2mmncc455/DJJ5/UHdOjRw/uu+++uvfnnXceH330URCqFREREWm5qn3V/G/F/xjSegh9kgIrIqdEpGhM8eGy1nLOOecwbtw4Nm3axKJFi3jggQcYPHgws2fPBiA/P5/IyEjmzJlT127OnDlaxENERESkiU3eNJmcyhyuH3B93bZOsZ3YXradoqqi/bZVKN6P77//HrfbzfXX/3xjBwwYwAknnFAXimfPns2ZZ55Jbm4u1lo2b95MeHg4KSkpwSpbREREpEVak7+G2NBYhqcMr9t2bOqx+K2fmdtn7rftkbGi3Zd/hp0rGvacKf3g1Af3e8jKlSsZMmTIHtuHDBnCypUrqampYfbs2Rx33HGkp6ezZs0alixZol5iERERkSDIq8wjOTwZY0zdtt6JvWkV0YppW6cxscvEfbZVT/EhCA0NpU+fPixevJi5c+cyfPhwRo4cyezZs5k9ezajR48OdokiIiIiLU5eVR6J4Ym7bTPGcHz745mdNZsqb9U+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": "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\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": "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OqdvO1eGXd+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 }