1052 lines
312 KiB
Plaintext
1052 lines
312 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "4777cf60",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Risk Decomposition via PCA\n",
|
|
"\n",
|
|
"## Purpose\n",
|
|
"\n",
|
|
"Notebook 04 tells us how the strategy performed. This notebook asks where the portfolio's risk comes from.\n",
|
|
"\n",
|
|
"Portfolio variance is the quadratic form\n",
|
|
"\n",
|
|
"$$w^\\top\\Sigma w,$$\n",
|
|
"\n",
|
|
"where $w$ is the portfolio weight vector and $\\Sigma$ is the stock-return covariance matrix. PCA gives an orthogonal basis for this covariance matrix, so we can split variance into common-factor directions and the remaining residual directions.\n",
|
|
"\n",
|
|
"The goals are:\n",
|
|
"1. Estimate the sample covariance matrix $\\Sigma=\\frac{1}{T-1}X_c^\\top X_c$.\n",
|
|
"2. Eigendecompose $\\Sigma$ with PCA.\n",
|
|
"3. Use the Marchenko-Pastur cutoff to separate large signal-like eigenvalues from the noise bulk.\n",
|
|
"4. Compare sample covariance to Ledoit-Wolf shrinkage.\n",
|
|
"5. Decompose the current long-only portfolio variance into top-$k$ PCA risk and the orthogonal remainder.\n",
|
|
"\n",
|
|
"### Terms used in this notebook\n",
|
|
"\n",
|
|
"| Term | Meaning |\n",
|
|
"|------|---------|\n",
|
|
"| **Covariance matrix** $\\Sigma$ | $N\\times N$ matrix with $\\Sigma_{ij}=\\mathrm{Cov}(r_i,r_j)$ |\n",
|
|
"| **PCA** | Eigendecomposition of $\\Sigma$ |\n",
|
|
"| **Eigenvector** | A portfolio-like direction in stock space |\n",
|
|
"| **Eigenvalue** | Variance explained along that eigenvector |\n",
|
|
"| **Scree plot** | Eigenvalues plotted from largest to smallest |\n",
|
|
"| **Marchenko-Pastur distribution** | Random-matrix benchmark for the eigenvalue noise bulk |\n",
|
|
"| **Shrinkage estimator** | A weighted average of noisy sample covariance and a structured target |\n",
|
|
"| **Systematic risk** | Variance in common PCA directions |\n",
|
|
"| **Idiosyncratic risk** | Variance outside the retained PCA directions |\n",
|
|
"| **Portfolio variance** | The quantity $w^\\top\\Sigma w$ being decomposed |\n",
|
|
"\n",
|
|
"## Outputs\n",
|
|
"\n",
|
|
"Eigenvalue spectrum, Marchenko-Pastur cutoff, Ledoit-Wolf comparison, and a portfolio variance decomposition table.\n",
|
|
"\n",
|
|
"## Notebook Structure\n",
|
|
"1. [Setup and Imports](#setup-and-imports)\n",
|
|
"2. [Load Data](#load-data)\n",
|
|
"3. [Sample Covariance and PCA](#sample-covariance-and-pca)\n",
|
|
"4. [Marchenko-Pastur Noise Separation](#marchenkopastur-noise-separation)\n",
|
|
"5. [Ledoit-Wolf Shrinkage](#ledoitwolf-shrinkage)\n",
|
|
"6. [Portfolio Variance Decomposition](#portfolio-variance-decomposition)\n",
|
|
"7. [Conclusion](#conclusion)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "08545070",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Setup and Imports"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"id": "4f9e782b",
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2026-07-31T11:09:08.396698Z",
|
|
"iopub.status.busy": "2026-07-31T11:09:08.395783Z",
|
|
"iopub.status.idle": "2026-07-31T11:09:09.597947Z",
|
|
"shell.execute_reply": "2026-07-31T11:09:09.597320Z"
|
|
}
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"\"\"\"\n",
|
|
"==================================\n",
|
|
"Setup and imports\n",
|
|
"==================================\n",
|
|
"\"\"\"\n",
|
|
"import pandas as pd\n",
|
|
"import numpy as np\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"import seaborn as sns\n",
|
|
"import os\n",
|
|
"from sklearn.decomposition import PCA\n",
|
|
"\n",
|
|
"pd.set_option('display.max_columns', None)\n",
|
|
"pd.set_option('display.max_rows', 100)\n",
|
|
"\n",
|
|
"palette = ['steelblue', 'coral', 'seagreen']\n",
|
|
"\n",
|
|
"os.makedirs('../data/processed', exist_ok=True)\n",
|
|
"os.makedirs('../images/05_risk_decomposition', exist_ok=True)\n",
|
|
"\n",
|
|
"RANDOM_STATE = 3"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"id": "e1c87a97",
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2026-07-31T11:09:09.599975Z",
|
|
"iopub.status.busy": "2026-07-31T11:09:09.599687Z",
|
|
"iopub.status.idle": "2026-07-31T11:09:09.643387Z",
|
|
"shell.execute_reply": "2026-07-31T11:09:09.642776Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Returns: (251, 501)\n",
|
|
"Backtest: (239, 5)\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"\"\"\"\n",
|
|
"==================================\n",
|
|
"Load returns and backtest holdings\n",
|
|
"==================================\n",
|
|
"\"\"\"\n",
|
|
"df_returns = pd.read_csv('../data/processed/returns_monthly.csv', index_col=0, parse_dates=True)\n",
|
|
"df_backtest = pd.read_csv('../data/processed/backtest_returns.csv', index_col=0, parse_dates=True)\n",
|
|
"\n",
|
|
"print(f\"Returns: {df_returns.shape}\")\n",
|
|
"print(f\"Backtest: {df_backtest.shape}\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "858ea555",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Sample Covariance and PCA\n",
|
|
"\n",
|
|
"Let $X_c\\in\\mathbb{R}^{T\\times N}$ be the centered return matrix. Each column has its time-series mean subtracted. The sample covariance matrix is\n",
|
|
"\n",
|
|
"$$\\Sigma=\\frac{1}{T-1}X_c^\\top X_c.$$\n",
|
|
"\n",
|
|
"PCA eigendecomposes this matrix:\n",
|
|
"\n",
|
|
"$$\\Sigma=V\\Lambda V^\\top,$$\n",
|
|
"\n",
|
|
"where\n",
|
|
"\n",
|
|
"$$\\Lambda=\\mathrm{diag}(\\lambda_1,\\lambda_2,\\ldots,\\lambda_N), \\quad \\lambda_1\\ge\\lambda_2\\ge\\cdots.$$\n",
|
|
"\n",
|
|
"The columns of $V$ are principal component directions in stock space. The eigenvalues are the variance along those directions.\n",
|
|
"\n",
|
|
"`sklearn.decomposition.PCA` computes this through an SVD of $X_c$:\n",
|
|
"\n",
|
|
"$$X_c=USV^\\top,$$\n",
|
|
"\n",
|
|
"which implies\n",
|
|
"\n",
|
|
"$$\\Sigma=\\frac{1}{T-1}VS^2V^\\top.$$"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"id": "1600d228",
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2026-07-31T11:09:09.645176Z",
|
|
"iopub.status.busy": "2026-07-31T11:09:09.645004Z",
|
|
"iopub.status.idle": "2026-07-31T11:09:09.675512Z",
|
|
"shell.execute_reply": "2026-07-31T11:09:09.675049Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Number of assets: 394\n",
|
|
"Number of observations: 240\n",
|
|
"\n",
|
|
"Top 10 eigenvalues:\n",
|
|
" PC1: 1.048239 (34.10%)\n",
|
|
" PC2: 0.112295 (3.65%)\n",
|
|
" PC3: 0.104251 (3.39%)\n",
|
|
" PC4: 0.092663 (3.01%)\n",
|
|
" PC5: 0.071925 (2.34%)\n",
|
|
" PC6: 0.057767 (1.88%)\n",
|
|
" PC7: 0.053078 (1.73%)\n",
|
|
" PC8: 0.047010 (1.53%)\n",
|
|
" PC9: 0.041681 (1.36%)\n",
|
|
" PC10: 0.040488 (1.32%)\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"\"\"\"\n",
|
|
"==================================\n",
|
|
"PCA via sklearn\n",
|
|
"==================================\n",
|
|
"\"\"\"\n",
|
|
"# Use a balanced panel: keep stocks present for most of the sample, then use\n",
|
|
"# the months where all of them coexist. thresh must be high — a low thresh admits\n",
|
|
"# short-history stocks, and the chained dropna() then truncates EVERY stock to that\n",
|
|
"# short window (e.g. thresh=60 collapses the panel to 60 months, leaving N >> T and a\n",
|
|
"# rank-deficient covariance). Maximizing observations matters most here.\n",
|
|
"valid = df_returns.dropna(thresh=240, axis=1).dropna()\n",
|
|
"X = valid.values\n",
|
|
"X_centered = X - X.mean(axis=0)\n",
|
|
"\n",
|
|
"n_obs, n_assets = X_centered.shape\n",
|
|
"\n",
|
|
"# Sample covariance\n",
|
|
"cov = np.cov(X_centered, rowvar=False, ddof=1)\n",
|
|
"\n",
|
|
"# sklearn PCA — fits on the centered data\n",
|
|
"pca = PCA()\n",
|
|
"pca.fit(X_centered)\n",
|
|
"\n",
|
|
"# Build the same result dict so downstream cells are unchanged\n",
|
|
"pca_result = {\n",
|
|
" 'eigenvalues': pca.explained_variance_,\n",
|
|
" 'eigenvectors': pca.components_.T, # sklearn returns (k x N); we want (N x k)\n",
|
|
" 'explained_ratio': pca.explained_variance_ratio_,\n",
|
|
" 'tickers': valid.columns.tolist(),\n",
|
|
" 'n_obs': n_obs,\n",
|
|
" 'n_assets': n_assets,\n",
|
|
" 'cov': cov,\n",
|
|
"}\n",
|
|
"\n",
|
|
"print(f\"Number of assets: {pca_result['n_assets']}\")\n",
|
|
"print(f\"Number of observations: {pca_result['n_obs']}\")\n",
|
|
"print(f\"\\nTop 10 eigenvalues:\")\n",
|
|
"for i, ev in enumerate(pca_result['eigenvalues'][:10]):\n",
|
|
" print(f\" PC{i+1}: {ev:.6f} ({pca_result['explained_ratio'][i]*100:.2f}%)\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"id": "337d202b",
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2026-07-31T11:09:09.679231Z",
|
|
"iopub.status.busy": "2026-07-31T11:09:09.679033Z",
|
|
"iopub.status.idle": "2026-07-31T11:09:10.218423Z",
|
|
"shell.execute_reply": "2026-07-31T11:09:10.217819Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABW0AAAHqCAYAAAB/bWzAAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAzwhJREFUeJzs3Xd8U9X7B/BP0owuCnRSVilDNsiWWYaCBUGWIEWQqVCVL0MURECWlSE/FJkyKsjGBYggArKRLQqI7Aq0dEAHHZnn90ea0HTRljS3TT/v1yuvJifn3jzJScu9D+c+RyaEECAiIiIiIiIiIiKiIkEudQBERERERERERERE9ASTtkRERERERERERERFCJO2REREREREREREREUIk7ZERERERERERERERQiTtkRERERERERERERFCJO2REREREREREREREUIk7ZERERERERERERERQiTtkRERERERERERERFCJO2REREREREREREREUIk7ZEEgsPD4dMJsvx9vvvv1v6VqlSBUOGDJE03sLUvn17tG/fXpLXjouLw+TJk1GnTh24ubmhdOnSqFWrFgYNGoSLFy9KEtOzyPw9Kl26NNq3b4+ff/7Zql9Bv1MpKSn45JNPrL6feXHkyBGo1WrcuXPH0ta+ffscv/9///03PvnkE8hksnzHmJP79+/jk08+wYULF/LU//bt2znGt3nz5iz9b968id69e6NMmTJwd3fHSy+9hHPnzuXptTJ/Fi4uLmjYsCEWLVoEo9GYpf/OnTvRvXt3+Pn5QaVSwdPTE506dcKGDRug0+ny9JoAsH//fri7u+PevXt53oaIiMhWLl68iKFDhyIwMBDOzs5wd3dH48aNMW/ePDx8+FDq8HL1LMcpu3fvxieffJLtc1Id9+d2XFalSpVCf+2CngtIeR5hPp+7fft2jn0aNWqEChUqwGAw5NindevW8Pb2hlarfeaYfv/99yznkkRU/CikDoCITNauXYtatWplaa9Tp47l/g8//AAPDw87R+b4Hj9+jBdeeAGPHz/GxIkT0bBhQ6SmpuLff//F999/jwsXLqBBgwZSh5lvffv2xYQJE2A0GnHz5k3Mnj0b3bt3x86dO9GtW7dn2ndKSgpmzJgBpB8k54UQAmPHjsXIkSMREBBg9VzVqlWxYcOGLNtUq1YNI0aMwMsvv/xM8WZ0//59zJgx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BIhu3bpl6btr1y4RHBwsKlSoIFQqlfD19RVdu3YVR44cseq3adMmUatWLaFUKnNcidps9erVonnz5sLT09Py3ejSpYvYu3dvtv2vX78uevbsKTw8PISrq6vo1KmTOHv2bI77z+hpn0VmP/30k+jWrZvV97ZDhw5i+fLlQqPRCCGE+Oabb0SHDh2En5+fUKlUonz58qJfv37i4sWLWeIGIL777rs8vz4REZEtXLhwQbz55puicuXKQqVSCTc3N9GoUSMxbdo0ER0dbemn0WjEBx98ICpVqiRcXFxEUFCQuHDhQpbjmZyOxXI6zn3zzTeFm5ubVVtej0GzO045fvy4aNmypXB1dRU+Pj5ixIgR4ty5c1m21Wg0YsSIEcLHx0fIZDKrY+PsjtGEECIhIUG4uLhkOU/IKCYmRowZM0YEBgYKpVIpPD09RZMmTcSUKVPE48ePcx2LoKCgXM9NdDqduH//vvD19RUdO3a0Oj40Go2ie/fuokyZMpb3Yf58zp49K7p37y7c3d1FqVKlxIABA8SDBw+yvHbmc4GCnkfcunVLABDz58/P8h6zO/bL63H3sWPHxAsvvCDUarUoV66cmDhxoli5cmWO50k5GTdunAAgunbtmuW5R48eieHDhwtfX1/h6uoq2rRpI44cOZLlPR48eFAAsDqXy/zcwYMHLW13794Vffr0EWXLlhWlSpUSL7/8svj777/z/PuT3T6FEGLdunWiWbNmwtnZWbi7u4tGjRplOU/Ly3koEWUlE+aifETkMN566y1s2rQJcXFxuf5PPZE93b9/H4GBgVi3bl2eV9kl+5k6dSrWrVuHGzdu2KSMAxEREdEnn3yCGTNmICYmhjXziYjyiWdlRMXczJkzUb58eVStWhWPHz/Grl27sGrVKnz88cdM2FKRUr58eYwdOxZz5szBa6+9lqWGMEknPj4eS5YsweLFi5mwJSIiIiIiKgJ4ZkZUzCmVSsyfPx93796FXq9HjRo1sHDhQvzvf/+TOjSiLD7++GO4urri3r17Oa4yS/Z369YtTJ48GSEhIVKHQkRERERERABYHoGIiIiIiIiIiIioCOG1qURERERERERERERFCJO2REREREREREREREUIk7ZERERERERERERERUiJW4jMaDTi/v37KFWqFGQymdThEBEREVEOhBBISkpC+fLlIZeX3LkGPH4lIiIi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7bVKT0/XDz/8oN///vdatGiRpk6dWuXYoqIiSVJ4eLhCQkI8FkNwcLBat27tseO5a8uWLerbt6++/fZbvfTSS9q1a5eWL1+url27asqUKY0eDwAAABpfUFCQnnnmGR0/ftzsUDymsLCw3s/dt2+fLr/8csXHx9d4jl7bdcQTTzyhO+64Q/3799fHH3+sHTt2aP78+dq2bZveeOONescHAPVB0RaA13E4HIqJiVG7du10991365577tF7770nndW24JVXXtEFF1wgh8MhwzAqzbrs0KGDnn76aY0bN04hISFq3769lixZUuF1fvzxR915550KDw9XixYt1K9fP23atKnC65QbO3asRo8erdmzZysqKkqhoaH69a9/XeHk85NPPtHll1+uli1bqnXr1ho1apT27dvn9vs2DENjx45Vp06d9MUXX+j666/XhRdeqD59+mjmzJl6//33XWO3b9+uq666Ss2aNVPr1q31q1/9SidPnqwU79NPP63o6Gi1bNlSs2fPVnFxsR577DGFh4erbdu2euWVV1zPKf8q3NKlSzVw4EAFBQWpR48eWrt2bYU4161bp0svvVQOh0OxsbGaPn26iouLXfuHDh2q3/zmN5o2bZrCw8MVExOjWbNmVThGTk6OfvWrX7l+l1dddZW2bdvm2l/++3/jjTfUoUMHhYWF6c4771ReXp7r/a1bt07PPfeca0bFgQMH3P5dAwAAWNnVV1+tmJgYzZ07t9oxVbXzWrhwoTp06OB6XJ9zwnJ79uyp8Zxw165duu666xQcHKzo6Gjde++9Onr0qGv/0KFDNXHiRCUlJSkiIkLXXHNNle/D6XRqzpw5rm+Z9enTR5988olrv81mU3JysubMmSObzVbpvPJsNV1HfP3113r66ac1f/58Pfvssxo4cKA6dOiga665Ru+8847GjBkjSdq2bZuuvPJKhYSEKDQ0VH379uUbbwAaBEVbAF6vWbNmrhm1Kmsf8K9//UvvvPNOjb225s+fr379+iklJUUTJkzQQw89pD179kiSTp48qSFDhujIkSP64IMPtG3bNk2bNk1Op7Pa43366afavXu31qxZo7ffflvLly/X7NmzXftPnTqlpKQkbd68WZ9++qnsdrtuvvnmGo95ttTUVO3cuVNTpkyR3V75v++WLVtKkk6fPq1rr71WrVq10ubNm/Xvf/9b//vf/zRx4sQK4z/77DMdOXJEn3/+uRYsWKBZs2Zp1KhRatWqlTZt2qTx48dr/PjxOnToUIXnPfbYY5oyZYpSUlI0cOBA3XjjjcrOzpYkHT58WNddd5369++vbdu2afHixfr73/+u3//+9xWO8dprr6lFixbatGmT/vjHP2rOnDlavXq1VFacvv7665WRkaEVK1YoOTlZl1xyiYYNG1bha2n79u3Te++9pw8//FAffvih1q1b5/qa4HPPPafExEQ9+OCDSk9PV3p6utq1a+fW7xkAAMDq/Pz89PTTT+svf/mLfvzxx/M6VkOcE6anp2vIkCHq06ePtmzZok8++UQ//fSTbr/99grHeO211+Tv768NGzbopZdeqjK+5557TvPnz9ef/vQnffPNNxoxYoRuvPFGfffdd67X6tGjh6ZMmaL09PRqv4FXlbOvI9566y0FBwdrwoQJVY4tP9e+55571LZtW23evFnJycmaPn26AgIC3H5NAHCbAQBeZMyYMcZNN93kerxp0yajdevWxu23324YhmHMnDnTCAgIMDIzMys8b8iQIcakSZNcj+Pj443/9//+n+ux0+k0oqKijMWLFxuGYRgvvfSSERISYmRnZ1cZx8yZM42EhIQKcYWHhxunTp1ybVu8eLERHBxslJSUVHmMzMxMQ5Kxfft2wzAMY//+/YYkIyUlpcrxy5YtMyQZW7durfF3tGTJEqNVq1bGyZMnXds++ugjw263GxkZGa544+PjK8TWpUsX44orrnA9Li4uNlq0aGG8/fbbFeKbN2+ea0xRUZHRtm1b45lnnjEMwzAef/xxo0uXLobT6XSNeeGFFyr8HoYMGWJcfvnlFWLu37+/8X//93+GYRjGp59+aoSGhhr5+fkVxlx44YXGSy+9ZBhlv//mzZsbubm5rv2PPfaYcdlll7ken5tzAAAAX3D2+fCAAQOMcePGGYZhGMuXLzfOvsQ/93zVMAzjz3/+sxEfH1/hWA1xTvjUU08Zw4cPr/Dahw4dMiQZe/fuNYyyc7U+ffrU+n7j4uKMP/zhDxW29e/f35gwYYLrcUJCgjFz5swaj1PbdcTIkSON3r171xpPSEiI8eqrr9Y6DgDOFzNtAXidDz/8UMHBwQoKClJiYqIGDx6sv/zlL6798fHxioyMrPU4vXv3dt232WyKiYlRZmamVDar9eKLL1Z4eLjbcSUkJKh58+aux4mJiTp58qRrVsK+fft0991364ILLlBoaKg6duwoSUpLS3Pr+IZhuGKtye7du5WQkKAWLVq4tg0aNEhOp1N79+51bevRo0eFGbvR0dHq1auX67Gfn59at27t+p2c/b7K+fv7q1+/ftq9e7frtRMTEyvEOGjQIJ08ebLCLJCzf/eSFBsb63qd5ORknTx5Uq1bt1ZwcLDrZ//+/RXaSXTo0KFCn+KzjwEAANAUPPPMM3rttde0a9eueh+jIc4Jk5OTtWbNmgrncl27dpXKzonL9evXr8bYcnNzdeTIEQ0aNKjC9kGDBrleqy5quo4wDMOthdySkpL0wAMP6Oqrr9a8efPq1O4MAOrC3+wAAKCurrzySi1evFgBAQGKi4ur9HWks4uVNTn3eTabzdWqoFmzZh6Lt/zk74YbblC7du30t7/9TXFxcXI6nerZs6fbiy507txZKiuMntuf7Gw1nXCevb2q91/T76Qm5cet6rWrKjbX9DpOp1OxsbGV+qLprK+l1XYMAACApmDw4MEaMWKEHn/8cY0dO7bCPrvd7joPK3d2S7FyDXFO6HQ6dcMNN+iZZ56pNCY2NtZ1393z9qrOL90psJ6rpuuIzp07a/369SoqKqqx3cGsWbN0991366OPPtLHH3+smTNnaunSpbr55pvrHA8A1ISZtgC8TosWLXTRRRcpPj6+wfpH9e7dW6mpqRV6qNZm27ZtOnPmjOvxV199peDgYLVt21bZ2dnavXu3nnzySQ0bNkzdunWr82q/ffr0Uffu3TV//vwqT5pPnDghSerevbtSU1N16tQp174NGzbIbre7Cr/n46uvvnLdLy4uVnJysmvmRPfu3bVx48YKFwgbN25USEiI2rRp49bxL7nkEmVkZMjf318XXXRRhZ+IiAi34wwMDFRJSUmd3hsAAIC3mTdvnv773/9q48aNFbZHRkYqIyOjwnlZTes91FVN54SXXHKJdu7cqQ4dOlQ6n3O3UCtJoaGhiouL0/r16yts37hxo7p161bnmGu6jrj77rt18uRJLVq0qMrnlp9rq6zA++ijj2rVqlW65ZZb9I9//KPOsQBAbSjaAkAV7rrrLsXExGj06NHasGGDfvjhB73zzjv68ssvq31OYWGh7r//fu3atcv1V/eJEyfKbrerVatWat26tZYsWaLvv/9en332mZKSkuoUk81m0z/+8Q99++23Gjx4sFasWKEffvhB33zzjf7whz/opptuksoWRwgKCtKYMWO0Y8cOrVmzRo888ojuvfdeRUdHn/fv5oUXXtDy5cu1Z88ePfzwwzp+/LjGjRsnSZowYYIOHTqkRx55RHv27NH777+vmTNnKikpqcrF06py9dVXKzExUaNHj9bKlSt14MABbdy4UU8++WSdVubt0KGDNm3apAMHDujo0aPMwgUAAD6pV69euueeeyq0C5OkoUOHKisrS3/84x+1b98+vfDCC/r444899ro1nRM+/PDDOnbsmO666y59/fXX+uGHH7Rq1SqNGzeuzn9Uf+yxx/TMM89o2bJl2rt3r6ZPn67U1FRNmjTJY+9Fki677DJNmzZNU6ZM0bRp0/Tll1/q4MGD+vTTT/WLX/xCr732ms6cOaOJEydq7dq1OnjwoDZs2KDNmzfXq4AMALWhaAsAVQgMDNSqVasUFRWl6667Tr169dK8efPk5+dX7XOGDRumTp06afDgwbr99tt1ww03aNasWVLZ19OWLl2q5ORk9ezZU48++qieffbZOsd16aWXasuWLbrwwgv14IMPqlu3brrxxhu1c+dOLVy4UJLUvHlzrVy5UseOHVP//v112223adiwYfrrX/96Hr+Rn82bN0/PPPOMEhIS9MUXX+j99993zYBt06aNVqxYoa+//loJCQkaP3687r//fj355JNuH99ms2nFihUaPHiwxo0bp86dO+vOO+/UgQMH6lR0njp1qvz8/NS9e3dFRka63TsYAADA2/zud7+r1AqhW7duWrRokV544QUlJCTo66+/1tSpUz32mjWdE8bFxWnDhg0qKSnRiBEj1LNnT02aNElhYWFu/yG/3G9+8xtNmTJFU6ZMUa9evfTJJ5/ogw8+UKdOnTz2Xso988wz+uc//6lNmzZpxIgR6tGjh5KSktS7d2+NGTNGfn5+ys7O1n333afOnTvr9ttv18iRIzV79myPxwIANuPc/9kBAHU2duxYnThxQu+9957ZoTSYAwcOqGPHjkpJSamxpy4AAAAAADg/zLQFAAAAAAAAAAuhaAsAAAAAAAAAFkJ7BAAAAAAAAACwEGbaAgAAAAAAAICFULQFAAAAAAAAAAuhaAsAAAAAAAAAFkLRFgAAAAAAAAAshKItAAAAAAAAAFgIRVsAAAAAAAAAsBCKtgAAAAAAAABgIRRtAQAAAAAAAMBCKNoCAAAAAAAAgIX8f0FvDJF+10qYAAAAAElFTkSuQmCC",
|
|
"text/plain": [
|
|
"<Figure size 1400x500 with 2 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"PCs needed for 90% variance: 90\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"\"\"\"\n",
|
|
"==================================\n",
|
|
"Eigenvalue scree plot\n",
|
|
"==================================\n",
|
|
"\"\"\"\n",
|
|
"fig, axes = plt.subplots(1, 2, figsize=(14, 5))\n",
|
|
"\n",
|
|
"# Scree plot (first 50 PCs)\n",
|
|
"ax = axes[0]\n",
|
|
"n_show = 50\n",
|
|
"ax.plot(range(1, n_show+1), pca_result['eigenvalues'][:n_show], 'o-', color='steelblue')\n",
|
|
"ax.set_xlabel('Principal Component')\n",
|
|
"ax.set_ylabel('Eigenvalue')\n",
|
|
"ax.set_title('Eigenvalue Scree Plot (First 50 PCs)')\n",
|
|
"ax.grid(alpha=0.3)\n",
|
|
"\n",
|
|
"# Cumulative explained variance\n",
|
|
"ax = axes[1]\n",
|
|
"cum_var = np.cumsum(pca_result['explained_ratio'])\n",
|
|
"ax.plot(range(1, len(cum_var)+1), cum_var, color='coral')\n",
|
|
"ax.axhline(y=0.9, color='black', linestyle='--', label='90% variance')\n",
|
|
"ax.set_xlabel('Number of PCs')\n",
|
|
"ax.set_ylabel('Cumulative Explained Variance')\n",
|
|
"ax.set_title('Cumulative Explained Variance')\n",
|
|
"ax.legend()\n",
|
|
"ax.grid(alpha=0.3)\n",
|
|
"\n",
|
|
"plt.tight_layout()\n",
|
|
"plt.savefig('../images/05_risk_decomposition/pca_scree.png', dpi=150, bbox_inches='tight')\n",
|
|
"plt.show()\n",
|
|
"\n",
|
|
"# How many PCs for 90% variance?\n",
|
|
"n_90 = np.searchsorted(cum_var, 0.9) + 1\n",
|
|
"print(f\"PCs needed for 90% variance: {n_90}\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "183c2b9c",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Marchenko-Pastur Noise Separation\n",
|
|
"\n",
|
|
"Random matrix theory gives a useful benchmark for deciding how many principal components are larger than we would expect from noise.\n",
|
|
"\n",
|
|
"For a random matrix with iid entries and variance $\\sigma^2$, the eigenvalues of its sample covariance concentrate inside the Marchenko-Pastur interval:\n",
|
|
"\n",
|
|
"$$\\lambda_{\\pm}=\\sigma^2\\left(1+\\frac{1}{q}\\pm2\\sqrt{\\frac{1}{q}}\\right), \\quad q=\\frac{T}{N}.$$\n",
|
|
"\n",
|
|
"Eigenvalues inside $[\\lambda_-,\\lambda_+]$ are consistent with a no-factor random matrix. Eigenvalues above $\\lambda_+$ are candidates for real common factors.\n",
|
|
"\n",
|
|
"This is not magic; it is a rule of thumb with assumptions. Returns are not iid normal draws. But it is better than choosing $k$ by eye from a scree plot."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"id": "c67bfa0d",
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2026-07-31T11:09:10.220398Z",
|
|
"iopub.status.busy": "2026-07-31T11:09:10.220105Z",
|
|
"iopub.status.idle": "2026-07-31T11:09:10.721157Z",
|
|
"shell.execute_reply": "2026-07-31T11:09:10.720503Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"q = T/N = 0.6091\n",
|
|
"sigma^2 (scale): 0.007802\n",
|
|
"MP bounds: [0.000617, 0.040603]\n",
|
|
"Number of signal eigenvalues (above MP upper bound): 9\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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//nz5/Xoo49q0KBB+uqrr9SvXz+9+eabGj16dIHiHD58uNzd3fXJJ5/oyy+/lLu7e47t5syZo+7du8tsNuuf//ynvv76az333HM6c+aMpc2JEyd01113adq0afruu+80efJkxcTEqFmzZkWaE8ZsNme7l+np6Xnuk5iYqA4dOmj9+vWaPHmylixZoqCgIP3lL3/J1nb9+vVq06aNrl27pn/+85/66quv1KhRI/3lL3/JseDzxBNPyN3dXYsWLdKUKVO0YcMGDR482LJ9+PDhOnXqlNatW2e136+//qodO3ZY/Yf/2LFjGjhwoD755BOtXLlSjz/+uN555x099dRThbxb2R06dEjNmjXTgQMH9N5772nlypXq0aOHnnvuOU2cODHPfZs2bSp3d3eNHj1an376qWJiYvI93+OPPy4XFxctWrRI06ZN044dOxQZGWk1P87ChQvVuXNnlS1bVvPnz9eSJUtUoUIFdenSxaootW/fPjVr1kzbtm3T66+/rm+//VZvvfWWUlJSlJqaqh49emjSpEnSreLe1q1btXXrVvXo0cNyjJiYGA0ePFgDBw7UN998o5EjRxbqPj7xxBPy9/fX4sWL9corr2jRokUaMWKEevTooYYNG+rLL7/U0KFD9d5772nGjBl5HqugObJ161b95S9/UfXq1bV48WKtWrVKr732Wr75n5/7779f1apV08cff2xZN2fOHLVr1061atXK1v7KlSuSpAkTJmjVqlWaO3euqlevrsjIyBzngvvggw+0bt06vfvuu/r22291991367vvvlPbtm116tQpTZ06Vd9++61eeeUVXbhwIdv+Dz/8sGrXrq3//ve/eumll7Ro0SL99a9/tWrz1FNPacyYMbr//vu1fPlyffTRRzp48KBat26d7Zjnz5/XoEGDNHjwYK1YsULdunXT+PHjtXDhwlzv0ZkzZ3Tffffp5MmT2rp1q5o3b67k5GR16NBBCxYs0NixY7Vq1SoNHjxYU6ZMUd++fQt493OW+QeHgIAApaSk6MqVKxo3bpyWL1+uzz77TPfdd5/69u2rBQsWWPbJLz+aNGmiuXPnSpJeeeUVy/fHE088UagYc/q6AgBKgAEAQCHMnTvXkJTjy9XV1aqtJCM4ONhISEiwrFu+fLkhyWjUqJFhNpst66dNm2ZIMn755RfLuvbt2xuSjK+++srquCNG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a9fWN998o3//+996+umnVbVq1WI5R5kyZfTee+/piSee0P33368RI0YoKChIR48e1b59+zRz5kyVLVtW7dq10zvvvKNKlSopPDxcGzdu1Jw5c1SuXLkinf/IkSM5znNUpUqVXIcADR06VO+//74GDx6sN998UzVr1tS3336r7777TpLk4vK/vz3Nnj1b3bp1U5cuXRQVFaXKlSvrypUrOnz4sPbs2aMvvviiUHEPGDBAY8eO1YABA5SSkmKZZybTAw88IA8PDw0YMEAvvviikpOTNWvWLF29ejXfY2fOn/Pxxx+rRo0aatiwoXbs2KFFixZlazt9+nTdd999atu2rZ5++mmFh4fr+vXrOnr0qL7++utsT3rLav369Ro9erQGDRqk1q1bq2LFioqNjdVnn32m1atXW4YJZbVr1y498cQTeuSRR3T69Gm9/PLLqly5smUIZJkyZTRjxgwNHTpUV65cUb9+/RQYGKiLFy9q3759unjxoqUnztSpU3XfffepRYsWeumll1SzZk1duHBBK1as0OzZs+Xn56f69etLkv71r3/Jz89PXl5eioiIyLeH4GOPPaZXX31Vr732mtq3b69Dhw5p5syZ8vf3z/f+F5f8cuS1117TmTNn1KlTJ1WpUkXXrl3T9OnT5e7urvbt21vaubm5qX379lZPKCwILy8vffnll/m269mzp9544w1NmDBB7du312+//abXX39dERERBX7i34cffqhevXqpZcuW+utf/6qqVavq1KlT+u6777IVMfPTpk0bPfnkkxo2bJh27dqldu3aydfXVzExMdq8ebMaNGigp59++o6OmZW7u7s+++wzPfHEE+rXr58WLFigAQMGaMiQIfrwww81dOhQnThxQg0aNNDmzZs1adIkde/eXffff3+hz5lVz549tXTpUo0cOVL9+vXT6dOn9cYbbygkJERHjhyxtCtIftSoUUPe3t769NNPVadOHZUpU0ahoaEKDQ3VY489ptmzZ2vw4MEaMWKELl++rClTpqhs2bLFch0AgMKhIAUAKJKs88Bk9e9//7vQj9zOSXBwsD788EONGzdO+/fvV4UKFfT3v/9dEydOLLZzSNLjjz+u0NBQTZ48WU888YQMw1B4eLiGDh1qabNo0SKNHj1aL774otLT09WmTRutWbMm26TPd+rvf/97jutffvllvfnmmzlu8/X1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Qz169JCbG39rAQAAKO0iIyM1ZswYe4eRq/DwcE2bNi3PNqmpqapZs6Z++uknm8VV0lauXKlmzZrJbDaX+LkoSAEAAAAAUEKioqJkMpn0f//3f9m2jRw5UiaTSVFRUdnam0wmubu7q3r16ho3bpwSExNtHDny869//UvVqlVTmzZtLOuuXr2qxx57TP7+/vL399djjz2ma9eu5XkcwzAUHR2t0NBQeXt7KzIyUgcPHsy1bbdu3WQymbR8+XKrbQU997x583TPPffIy8tLwcHBeuaZZyzbevbsKZPJpEWLFhXijtwZClIAAIeXlpamefPmad68eUpLS7N3OAAAAFbCwsK0ePFi3bhxw7IuOTlZn332mapWrZqtfdeuXRUTE6M//vhDb775pj766CONGzfOxlEXj9TUVHuHUGJmzJihJ554wmrdwIEDtXfvXq1evVqrV6/W3r179dhjj+V5nClTpmjq1KmaOXOmdu7cqeDgYD3wwAO6fv16trbTpk2TyWTK8TgFOffUqVP18ssv66WXXtLBgwe1du1adenSxarN0KFDNXPmzDu4E4VDQQoA4PBSU1M1bNgwDRs2zKl/6QEAAI6pSZMmqlq1qpYuXWpZt3TpUoWFhalx48bZ2nt6eio4OFhhYWEaOHCgBg0alK03TFY59ZYpV66c5s2bJ0k6ceKETCaTFi9erNatW8vLy0v16tXThg0bLO03bNggk8mkVatWqWHDhvLy8lKLFi20f/9+q+Nu2bJF7dq1k7e3t8LCwvTcc89Z9d4KDw/Xm2++qaioKPn7+2vEiBG5xp2enq5nnnlG5cqVU8WKFfXKK6/IMAzL9qtXr2rIkCEqX768fHx81K1bNx05csSyPTo6Wo0aNbI65rRp0xQeHm55HxUVpYceekjvvvuuQkJCVLFiRY0aNcrqj5ixsbHq1auXvL29FRERoU8//TTXmDPt2bNHR48eVY8ePSzrDh8+rNWrV+s///mPWrVqpVatWunf//63Vq5cqd9++y3H4xiGoWnTpunll19W3759Vb9+fc2fP19JSUnZeint27dPU6dO1ccff5ztOAU599WrV/XKK69owYIFGjhwoGrUqKF69eqpV69eVsfq2bOnduzYoT/++CPf+1AUFKQAAAAAAA4rMTEx11dycnKB22btvZRX28IaNmyY5s6da3n/8ccfa/jw4QXa19vbu1h6gb/wwgt6/vnn9fPPP6t169Z68MEHdfny5Wxt3n33Xe3cuVOBgYF68MEHLefev3+/unTpor59++qXX37R559/rs2bN1sN+ZKkd955R/Xr19fu3bv16quv5hrP/Pnz5ebmpu3bt+uDDz7Q+++/r//85z+W7VFRUdq1a5dWrFihrVu3yjAMde/e/Y7vxfr163Xs2DGtX79e8+fPt/Ssz3qeEydOaN26dfryyy/10UcfKTY2Ns9jbtq0SbVr11bZsmUt67Zu3Sp/f3+1aNHCsq5ly5by9/fXli1bcjzO8ePHdf78eXXu3NmyztPTU+3bt7faJykpSQMGDNDMmTMVHByc7TgFOfeaNWtkNpt19uxZ1alTR1WqVFH//v11+vRpq2NVq1ZNgYGB+vHHH/O8B0VFQQoAAAAA4LDKlCmT6+vhhx+2ahsYGJhr227dulm1DQ8Pz7FdYT322GPavHmzTpw4oZMnT+qnn37S4MGD891vx44dWrRokTp16lToc2d65pln9PDDD6tOnTqaNWuW/P39NWfOHKs2EyZM0AMPPKAGDRpo/vz5unDhgpYtWybdKjQNHDhQY8aMUa1atdS6dWt98MEHWrBggVXxr2PHjho3bpxq1qypmjVr5hpPWFiY3n//fd11110aNGiQnn32Wb3//vuSpCNHjmjFihX6z3/+o7Zt26phw4b69NNPdfbs2Tx7i+WkfPnymjlzpu6++2717NlTPXr00Nq1ayVJv//+u7799ltLz6J7771Xc+bMyVagvN2JEycUGhpqte78+fMKDAzM1jYwMFDnz5/P8TiZ64OCgqzWBwUFWe3z17/+Va1bt1bv3r1zPU5+5/7jjz9kNps1adIkTZs2TV9++aWuXLmiBx54INsog8qVK+vEiRN53IGi41FEAAAAAACUsEqVKqlHjx6aP3++DMNQjx49VKlSpRzbrly5UmXKlFF6errS0tLUu3dvzZgxo8gxtGrVyrLs5uampk2b6vDhw7m2qVChgu666y5Lm927d+vo0aNWQ9oMw5DZbNbx48dVp04dSVLTpk0LFE/Lli2t5kNq1aqV3nvvPWVkZOjw4cNyc3Oz6vFTsWJFq3gKql69enJ1dbW8DwkJsQxFzDxP1pjvvvtulStXLs9j3rhxQ15eXtnW5zS/k2EYuc77lNt+WfdZsWKF1q1bp59//vmOjnH7ccxms9LS0vTBBx9YemR99tlnCg4O1vr1663mkvL29lZSUlKe5ysqClIAAAAAAIeVkJCQ67asRQjdmisoNy4u1gOISqJ3yPDhwy3D2z788MNc23Xo0EGzZs2Su7u7QkND5e7unudxTSaT1dxLuvXQl4LIr1CStY3ZbNZTTz2l5557LlubrJOz+/r6Fujcebn9erKuz4zHxcWlQNd9+/0zmUwym81W5ynIfciqUqVK2ebXCg4O1oULF7K1vXjxYrYeUFn30a0eTiEhIZb1sbGxln3WrVunY8eOZSuSPfzww2rbtq02bNhQoHNnHr9u3bqW7QEBAapUqZJOnTpltd+VK1cUEBBQgDtReAzZAwAAAAA4LF9f31xft/dgyautt7d3gdoWRdeuXZWamqrU1NRsTza7/dw1a9ZUtWrV8i1G6VZRISYmxvL+yJEjOfZu2bZtm2U5PT1du3fv1t13351rm6tXr+r333+3tGnSpIkOHjxoGYqX9eXh4VGAO5B7PJnva9WqJVdXV9WtW1fp6enavn27Zfvly5f1+++/W3piBQQE6Pz581ZFqb17995RDHXq1FF6erp27dplWffbb7/p2rVree7XuHFj/frrr1bnbtWqleLi4rRjxw7Luu3btysuLk6tW7fO8TgREREKDg7WmjVrLOtSU1O1ceNGyz4vvfSSfvnlF+3du9fykqT333/fMi9ZQc7dpk0by/VlunLlii5duqRq1apZ1iUnJ+vYsWM5TrhfnChIAQAAAABgA66urjp8+LAOHz6crfdWUXTs2FEzZ87Unj17tGvXLv3f//1fjoWsDz/8UMuWLdOvv/6qUaNG6erVq9kmVn/99de1du1aHThwQFFRUapUqZIeeughSdLf/vY3bd26VaNGjdLevXst8zw9++yzhYr79OnTGjt2rH777Td99tlnmjFjhkaPHi1JqlWrlnr37q0RI0Zo8+bN2rdvnwYPHqzKlStb5lGKjIzUxYsXNWXKFB07dkwffvihvv322zuK4a677lLXrl01YsQIbd++Xbt379YTTzyRrUB5uw4dOigxMVEHDx60rKtTp47lWNu2bdO2bds0YsQI9ezZU3fddZel3d13322Zl8tkMmnMmDGaNGmSli1bZrnvPj4+GjhwoHSrF1X9+vWtXrrVKy0iIqLA565du7Z69+6t0aNHa8uWLTpw4ICGDh2qu+++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fHzsHQYAAACAAihUQapmzZrq0KGDFi5cqOTk5OKPCgCAO+Dr66vExEQlJibK19fX3uEAAAAAyEehClL79u1T48aN9fzzzys4OFhPPfWUduzYUfzRAQAAAAAAwOkUqiBVv359TZ06VWfPntXcuXN1/vx53XfffapXr56mTp2qixcvFn+kAAAAAAAAcApFmtTczc1Nffr00ZIlSzR58mQdO3ZM48aNU5UqVTRkyBDFxMQUX6QAAOQiOTlZPXr0UI8ePRhKDgAAADiAIhWkdu3apZEjRyokJERTp07VuHHjdOzYMa1bt05nz55V7969iy9SAABykZGRoW+++UbffPONMjIy7B0OAAAAgHy4FWanqVOnau7cufrtt9/UvXt3LViwQN27d5eLy836VkREhGbPnq277767uOMFAAAAAACAgytUQWrWrFkaPny4hg0bpuDg4BzbVK1aVXPmzClqfKXa9FX773if0T0alEgsAAAAAAAAjqJQBak1a9aoatWqlh5RmQzD0OnTp1W1alV5eHho6NChxRUnAAAAAAAAnESh5pCqUaOGLl26lG39lStXFBERURxxAQAAAAAAwEkVqiBlGEaO6xMSEuTl5VXUmAAAAAAAAODE7mjI3tixYyVJJpNJr732mnx8fCzbMjIytH37djVq1Kj4owQAAAAAAIDTuKOC1M8//yzd6iG1f/9+eXh4WLZ5eHioYcOGGjduXPFHCQBAHnx9fXPtvQsAAACg9LmjgtT69eslScOGDdP06dNVtmzZkooLAAAAAAAATqpQT9mbO3du8UcCAAAAAACAP4UCF6T69u2refPmqWzZsurbt2+ebZcuXVocsQEAUCDJycl67LHHJEmffPIJD9gAAAAASrkCF6T8/f1lMpksywAAlBYZGRn68ssvJUnz5s2zdzgAAAAA8lHgglTWYXoM2QMAAAAAAEBhuRRmpxs3bigpKcny/uTJk5o2bZq+//774owNAAAAAAAATqhQBanevXtrwYIFkqRr166pefPmeu+999S7d2/NmjWruGMEAAAAAACAEylUQWrPnj1q27atJOnLL79UcHCwTp48qQULFuiDDz4o7hgBAAAAAADgRApVkEpKSpKfn58k6fvvv1ffvn3l4uKili1b6uTJk8UdIwAAAAAAAJxIoQpSNWvW1PLly3X69Gl999136ty5syQpNjZWZcuW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",
|
|
"text/plain": [
|
|
"<Figure size 1200x600 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"\"\"\"\n",
|
|
"==================================\n",
|
|
"Marchenko-Pastur cutoff\n",
|
|
"==================================\n",
|
|
"\"\"\"\n",
|
|
"def marchenko_pastur_bounds(q, sigma_sq=1.0):\n",
|
|
" \"\"\"Compute MP upper and lower bounds.\"\"\"\n",
|
|
" inv_q = 1 / q\n",
|
|
" lambda_plus = sigma_sq * (1 + inv_q + 2 * np.sqrt(inv_q))\n",
|
|
" lambda_minus = sigma_sq * (1 + inv_q - 2 * np.sqrt(inv_q))\n",
|
|
" return lambda_minus, lambda_plus\n",
|
|
"\n",
|
|
"def mp_density(x, q, sigma_sq=1.0):\n",
|
|
" \"\"\"Marchenko-Pastur probability density.\"\"\"\n",
|
|
" lam_minus, lam_plus = marchenko_pastur_bounds(q, sigma_sq)\n",
|
|
" mask = (x > lam_minus) & (x < lam_plus)\n",
|
|
" density = np.zeros_like(x)\n",
|
|
" density[mask] = (q / (2 * np.pi * sigma_sq * x[mask])) * \\\n",
|
|
" np.sqrt((lam_plus - x[mask]) * (x[mask] - lam_minus))\n",
|
|
" return density\n",
|
|
"\n",
|
|
"# Compute MP parameters\n",
|
|
"T = pca_result['n_obs']\n",
|
|
"N = pca_result['n_assets']\n",
|
|
"q = T / N\n",
|
|
"\n",
|
|
"# Scale sigma^2 to match the bulk of the empirical spectrum\n",
|
|
"# Estimate sigma^2 as the mean eigenvalue (equals average variance of stocks)\n",
|
|
"# Under the null of pure noise, MP distribution mean = sigma^2\n",
|
|
"# NOTE: this overestimates sigma^2 because signal eigenvalues pull the mean up,\n",
|
|
"# making the MP cutoff conservative (fewer false-positive factors). A more\n",
|
|
"# rigorous estimate would fit sigma^2 from the noise-only portion of the spectrum\n",
|
|
"# (e.g. the median of eigenvalues below a preliminary threshold).\n",
|
|
"# sigma^2 = trace(Sigma) / N = sum of all eigenvalues / N\n",
|
|
"# (sklearn returns only min(T,N) eigenvalues, so divide by N, not len(eigenvalues))\n",
|
|
"sigma_sq = np.sum(pca_result['eigenvalues']) / pca_result['n_assets']\n",
|
|
"\n",
|
|
"lam_minus, lam_plus = marchenko_pastur_bounds(q, sigma_sq)\n",
|
|
"n_signal = np.sum(pca_result['eigenvalues'] > lam_plus)\n",
|
|
"\n",
|
|
"print(f\"q = T/N = {q:.4f}\")\n",
|
|
"print(f\"sigma^2 (scale): {sigma_sq:.6f}\")\n",
|
|
"print(f\"MP bounds: [{lam_minus:.6f}, {lam_plus:.6f}]\")\n",
|
|
"print(f\"Number of signal eigenvalues (above MP upper bound): {n_signal}\")\n",
|
|
"\n",
|
|
"# Plot empirical vs MP\n",
|
|
"fig, ax = plt.subplots(figsize=(12, 6))\n",
|
|
"\n",
|
|
"eigs = pca_result['eigenvalues']\n",
|
|
"eigs_bulk = eigs[eigs < lam_plus * 5] # Show bulk, exclude extreme top\n",
|
|
"\n",
|
|
"ax.hist(eigs_bulk, bins=80, density=True, color='steelblue', alpha=0.6, label='Empirical')\n",
|
|
"\n",
|
|
"x = np.linspace(max(0, lam_minus * 0.5), lam_plus * 3, 1000)\n",
|
|
"ax.plot(x, mp_density(x, q, sigma_sq), color='coral', linewidth=2, label='Marchenko-Pastur')\n",
|
|
"ax.axvline(x=lam_plus, color='black', linestyle='--', label=f'MP upper bound ({lam_plus:.4f})')\n",
|
|
"\n",
|
|
"ax.set_xlabel('Eigenvalue')\n",
|
|
"ax.set_ylabel('Density')\n",
|
|
"ax.set_title('Empirical Eigenvalue Spectrum vs. Marchenko-Pastur')\n",
|
|
"ax.legend()\n",
|
|
"ax.grid(alpha=0.3)\n",
|
|
"ax.set_xlim(0, lam_plus * 3)\n",
|
|
"\n",
|
|
"plt.tight_layout()\n",
|
|
"plt.savefig('../images/05_risk_decomposition/marchenko_pastur.png', dpi=150, bbox_inches='tight')\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "2c6a3e3e",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Ledoit-Wolf Shrinkage\n",
|
|
"\n",
|
|
"The sample covariance matrix is noisy when the number of stocks is large relative to the number of months. Small estimation errors in covariance can create large errors in portfolio risk.\n",
|
|
"\n",
|
|
"Ledoit-Wolf shrinkage estimates\n",
|
|
"\n",
|
|
"$$\\hat\\Sigma=\\delta F+(1-\\delta)S,$$\n",
|
|
"\n",
|
|
"where $S$ is the sample covariance matrix, $F$ is a structured target, and $\\delta\\in[0,1]$ is the shrinkage intensity. The idea is to accept a little bias in exchange for lower estimation variance.\n",
|
|
"\n",
|
|
"In plain terms: do not trust every noisy sample covariance equally. Pull the estimate toward a simpler structure unless the data are strong enough to justify the complexity."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"id": "c96abc5d",
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2026-07-31T11:09:10.723075Z",
|
|
"iopub.status.busy": "2026-07-31T11:09:10.722900Z",
|
|
"iopub.status.idle": "2026-07-31T11:09:10.881731Z",
|
|
"shell.execute_reply": "2026-07-31T11:09:10.881112Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Shrinkage intensity (delta): 0.4996\n",
|
|
"Average correlation (r_bar): 0.3165\n",
|
|
"\n",
|
|
"A shrinkage of 0.50 means the estimator is 50% target and 50% sample.\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"\"\"\"\n",
|
|
"==================================\n",
|
|
"Ledoit-Wolf shrinkage estimator\n",
|
|
"==================================\n",
|
|
"\"\"\"\n",
|
|
"def ledoit_wolf_shrinkage(returns_df, min_obs=60):\n",
|
|
" \"\"\"\n",
|
|
" Compute Ledoit-Wolf shrinkage covariance estimator.\n",
|
|
" Target: constant correlation matrix.\n",
|
|
" \"\"\"\n",
|
|
" valid = returns_df.dropna(thresh=min_obs, axis=1).dropna()\n",
|
|
" X = valid.values\n",
|
|
" T, N = X.shape\n",
|
|
" \n",
|
|
" # Sample covariance\n",
|
|
" S = np.cov(X, rowvar=False, ddof=1)\n",
|
|
" \n",
|
|
" # Target: constant correlation matrix\n",
|
|
" # Compute sample correlations, then average off-diagonal\n",
|
|
" D = np.sqrt(np.diag(S))\n",
|
|
" R = S / np.outer(D, D)\n",
|
|
" \n",
|
|
" # Average correlation (excluding diagonal)\n",
|
|
" mask = ~np.eye(N, dtype=bool)\n",
|
|
" r_bar = R[mask].mean()\n",
|
|
" \n",
|
|
" # Constant correlation target\n",
|
|
" F = r_bar * np.ones((N, N))\n",
|
|
" np.fill_diagonal(F, 1.0)\n",
|
|
" F = F * np.outer(D, D) # Scale back to covariance\n",
|
|
" \n",
|
|
" # Shrinkage intensity (Ledoit-Wolf formula)\n",
|
|
" # mu = sum of squared deviations of sample cov from target\n",
|
|
" # d^2 = average squared deviation\n",
|
|
" X_centered = X - X.mean(axis=0)\n",
|
|
" \n",
|
|
" # Compute d^2 (distance between S and F)\n",
|
|
" d_sq = np.sum((S - F)**2) / N\n",
|
|
" \n",
|
|
" # Compute r_bar^2 (variance of sample covariance entries)\n",
|
|
" # Using the Ledoit-Wolf asymptotic formula\n",
|
|
" pi_mat = np.zeros((N, N))\n",
|
|
" for t in range(T):\n",
|
|
" xt = X_centered[t, :].reshape(-1, 1)\n",
|
|
" pi_mat += (xt @ xt.T - S)**2\n",
|
|
" pi_mat /= T**2\n",
|
|
" pi_hat = pi_mat.sum() / N\n",
|
|
" \n",
|
|
" # Shrinkage intensity\n",
|
|
" beta_sq = 0 # For constant correlation target, this term is smaller order\n",
|
|
" delta = max(0, min(1, pi_hat / d_sq))\n",
|
|
" \n",
|
|
" # Shrunk estimator\n",
|
|
" Sigma_shrunk = delta * F + (1 - delta) * S\n",
|
|
" \n",
|
|
" return {\n",
|
|
" 'cov_shrunk': Sigma_shrunk,\n",
|
|
" 'cov_sample': S,\n",
|
|
" 'target': F,\n",
|
|
" 'shrinkage_intensity': delta,\n",
|
|
" 'r_bar': r_bar,\n",
|
|
" 'tickers': valid.columns.tolist()\n",
|
|
" }\n",
|
|
"\n",
|
|
"lw_result = ledoit_wolf_shrinkage(df_returns, min_obs=240)\n",
|
|
"\n",
|
|
"print(f\"Shrinkage intensity (delta): {lw_result['shrinkage_intensity']:.4f}\")\n",
|
|
"print(f\"Average correlation (r_bar): {lw_result['r_bar']:.4f}\")\n",
|
|
"print(f\"\\nA shrinkage of {lw_result['shrinkage_intensity']:.2f} means the estimator is \"\n",
|
|
" f\"{lw_result['shrinkage_intensity']*100:.0f}% target and \"\n",
|
|
" f\"{(1-lw_result['shrinkage_intensity'])*100:.0f}% sample.\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"id": "6dc7a3cc",
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2026-07-31T11:09:10.884080Z",
|
|
"iopub.status.busy": "2026-07-31T11:09:10.883885Z",
|
|
"iopub.status.idle": "2026-07-31T11:09:13.088848Z",
|
|
"shell.execute_reply": "2026-07-31T11:09:13.088123Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Number of evaluation windows: 32\n",
|
|
"Mean Frobenius error (sample): 3.0468\n",
|
|
"Mean Frobenius error (shrunk): 2.9003\n",
|
|
"Improvement: 4.8%\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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CAgIYNGiRTzwwAPMnz+fH374AYBOnTrVeczY2Fg6d+7M//3f/xEfH8/YsWPp1q3bEXuidu7cyV/+8hfatm0Lrvnuf/vb39i3b1+tXuFVq1Yxc+ZM7rrrLiIiIpg1axYXXXQRM2fO5Pvvv2f27NkYhsHtt9/O+PHj2bFjR43escrKSsaOHctf/vIX7rjjDn799VcefPBBdu3axaeffnrE61RSUsLIkSPZu3cvd955J3369GHdunXcc889rFmzhu++++6Iz2/p0qXk5ORw1VVX1as3rqysjNGjR7Nt2zZmzZpFnz59+Pnnn3n44YdZuXIln3/+OQBXXHEFN9xwA1u2bKFLly7ux3/zzTekpaVxxRVXNOoaL1++nA0bNvCPf/yDDh06EBISUmec5eXl5OTkcMstt5CSkkJFRQXfffcdF110EXPmzGHKlCk19v/8889ZsmQJ999/P6GhoTz22GNceOGFbNq0iY4dO4Lr9R0xYgSxsbHcf//9dOnShfT0dD755BMqKioICAhg//79DBkyBIvFwj333EOnTp1YtGgRDz74IDt37mTOnDnHvMZAnQm6xWJxfyl000038eabb/Lggw/Sv39/iouLWbt2LdnZ2QDcfffdFBcX87///a9GLYYjfdlU7c4772T06NHMnTuXnTt3cssttzB58mRsNht9+/bl3XffZcWKFdx5552EhYXxzDPPuB+7bds2Lr30UvcXP6tWreKhhx5i48aNvPbaawD83//9H1dffTXbtm3jww8/POZ12LRpE8OGDSM+Pp5nnnmGmJgY3nrrLaZNm8aBAwe47bbbasU/fPhwXnnlFQoKCrj99ts599xz2bBhQ73er+x2e61rbxhGrcd+9NFH/Pzzz9xzzz0kJiYSHx/PkiVLAJg+fTrjxo3jzTffpLi4GD8/P6699lpeeuklrr/+esaPH8/OnTu5++67WbBgAcuXLyc2NtZ97PT0dP70pz9x2223MXv27FpfBIqI+AxTREQaZP/+/SZgXnLJJUfdb9KkSSZgHjhwwDRN05w6darZrl27Wvvde++95uFvxyEhIebUqVPrHdNXX31lAuZjjz1WY/t//vMfEzBfeukl97apU6eaISEh9Tru77//brZt29YETMAMCwszx48fb77xxhumw+E44uPsdrtZWVlp3n///WZMTEyNfdu1a2cGBQWZe/fudW9buXKlCZhJSUlmcXGxe/tHH31kAuYnn3xSI37A/Ne//lXjnA899JAJmL/88kuNcx16HR9++GHTYrGYS5YsqfHY//3vfyZgfvHFF0d8Tu+9954JmC+88MIxrprTCy+8YALm+++/X2P7o48+agLmN998Y5qmaWZlZZn+/v7mnXfeWWO/iy++2ExISDArKyvrPP6xrrHVajU3bdpU63GHX5PDVVVVmZWVleaVV15p9u/fv8Z9gJmQkGAWFBS4t+3fv9+0WCzmww8/7N52+umnm5GRkWZGRsYRz/OXv/zFDA0NNXft2lVj+xNPPGEC5rp16474WNM0zZEjR7rb5eE/V155pXu/Xr16mRdccMFRj/XXv/611t9gtcOv1/z5803APPfcc2vsN2PGDBMw//73v9fYfsEFF5jR0dFHPHf16/jGG2+YVqvVzMnJcd83bty4Ot8zTNdrce+997pvX3LJJWZAQIC5e/fuGvudc845ZnBwsJmXl1cj/rFjx9bY7/333zcBc9GiRUeM1TRNc86cOUe87lartVaMERERNZ7ToceYMmVKje0bNmwwAfO6666rsX3x4sUmUONvpPr1//77748ar4iIL9BXgiIiTaR6yO/xzFE8XFVVVY2f6nNU91ofXmV54sSJhISE8P333x/xmA6Ho8Yx7Xa7+77BgwezdetWvvrqK+68806GDh3K999/z5QpUzjvvPNqDGv+4YcfOPPMM4mIiMBqteLn58c999xDdnY2GRkZNc7Zr18/UlJS3Ld79OgBriGjh87JrN6+a9euWnFfdtllNW5feumlAMyfP/+Iz/Wzzz6jV69e9OvXr8ZzHjNmjMcrL//www+EhIQwYcKEGturX6Pq1yQmJoZzzz2X119/3T1PPjc3l48//pgpU6bUmL7QkGvcp08funbtWq9Y//vf/zJ8+HBCQ0Ox2Wz4+fnx6quvsmHDhlr7jh49mrCwMPfthIQE4uPj3a9RSUkJP/74IxdffDFxcXFHPOdnn33G6NGjSU5OrvFanHPOOQD8+OOPx4y7U6dOLFmypNbPocP/hwwZwpdffskdd9zBggULKC0trdc1OZbx48fXuF3dVseNG1dre05OTo0h5itWrOC8884jJibG/TpOmTIFu93O5s2bGxXPDz/8wBlnnEFqamqN7dOmTaOkpKTWigrnnXdejdt9+vSBI/yt1eWNN96odd0XL15ca7/TTz+dqKioOo/xxz/+scbt6r/dw9/HhgwZQo8ePWq9j0VFRXH66afXK14REW9S0i0i0kCxsbEEBwezY8eOo+63c+dOgoODiY6O9ti5/fz8avxUz9fMzs7GZrPVSnIMwyAxMdE9lLYu999/f41jHj7c3M/PjzFjxvDQQw/x9ddfs2fPHkaNGsVnn33Gl19+CcDvv//OH/7wBwBefvllFi5cyJIlS7jrrrvAVSTpUIdfE39//6NuLysrq7HdZrMRExNTY1tiYqL7WhzJgQMHWL16da3rGBYWhmmaZGVlHfGx1UO6j/W6V8vOziYxMbHWly7x8fHYbLYacU6fPp19+/bx7bffAvDuu+9SXl5eI/lo6DU+1vDoavPmzePiiy8mJSWFt956i0WLFrFkyRKmT59e67rj+pLgcAEBAe7z5+bmYrfbj1lZ+8CBA3z66ae1XouTTjoJ4KivRbXAwEAGDRpU66ddu3bufZ555hluv/12PvroI0aPHk10dDQXXHABW7Zsqdf1OZLGtuHdu3dz6qmnsm/fPv71r3/x888/s2TJEve88sZ+KZCdnV3na56cnOy+/1CHv47VFd/re/4ePXrUuu4DBw6std/R2uHh91XHeKTncfhzqG8bFxHxNs3pFhFpIKvVyujRo/nqq6/Yu3dvncnF3r17WbZsGeecc457jmNgYGCNIlLV6pNcVKueC1mtQ4cO4PoAXVVVRWZmZo3E2zRN9u/fz+DBg494zKuvvrpGr92xlluKiYlhxowZLFiwgLVr1zJ27Fjee+89/Pz8+OyzzwgMDHTv21RrjVdVVZGdnV0jcdi/f787viOJjY0lKCjIPW+2rvuPZNCgQURHR/Pxxx+7C+kdTUxMDIsXL8Y0zRr7ZmRkUFVVVeNcY8aMITk5mTlz5jBmzBjmzJnDySefXGP5pYZe4/qOsHjrrbfo0KED//nPf2o8pq62Wh/R0dFYrdZaha8OFxsbS58+fXjooYfqvL86WTxeISEhzJo1i1mzZnHgwAF3r/e5557Lxo0bPXKOhvjoo48oLi5m3rx5Nb4cWLly5XEdNyYmhvT09Frb09LS4BhtuykdrR0efl/13256enqt99W0tLRaz8GTo4hERJqSerpFRBph5syZmKbJddddV2M4Nq4CQ9deey2maTJz5kz39vbt25ORkcGBAwfc2yoqKvj6669rHf/QnsNDHd6zVP0h9YwzzgBXAnWoDz74gOLiYvf9dUlOTq5xzN69e4OrWNmReo2rhx1XJ0aGYWCz2WoUUSotLeXNN9884nmP1+HrM7/zzjvgGqJ+JOPHj2fbtm3ExMTU2UNaV3X5an5+ftx+++1s3LiRBx54oM59MjIyWLhwIbhek6KiolpJ8RtvvOG+v5rVauXyyy93F51aunRprUrMTXWNDcPA39+/RgKzf//+OquX10dQUBAjR47kv//971G/UBo/fjxr166lU6dOdb4Wnkq6D5WQkMC0adOYPHkymzZtcle7b2gv7/Govs6HfrllmiYvv/xyrX2P9D5QlzPOOIMffvjBnWRXe+ONNwgODvb6EmP1UT1U/PD3sSVLlrBhw4ajvo+JiPgy9XSLiDTC8OHDefrpp5kxYwYjRozg+uuvp23btuzevZvnnnuOxYsX8/TTTzNs2DD3YyZNmsQ999zDJZdcwq233kpZWRnPPPNMraQdoHfv3ixYsIBPP/2UpKQkwsLC6Nat2xHjOeussxgzZgy33347BQUFDB8+3F29vH///lx++eUNfo75+fm0b9+eiRMncuaZZ5KamkpRURELFizgX//6Fz169HAvZzVu3DieeuopLr30Uq6++mqys7N54oknjtlr3lj+/v48+eSTFBUVMXjwYHf18nPOOafGkl2HmzFjBh988AGnnXYaN954I3369MHhcLB7926++eYbbr75Zk4++eQjPv7WW29lw4YN3Hvvvfz+++9ceumlpKamkp+fz08//cRLL73ErFmzGD58OFOmTOG5555j6tSp7Ny5k969e/PLL78we/Zsxo4dy5lnnlnj2NOnT+fRRx/l0ksvJSgoiEmTJtW4v6mucfXSYtdddx0TJkxgz549PPDAAyQlJTV6CPZTTz3FiBEjOPnkk7njjjvo3LkzBw4c4JNPPuHFF18kLCyM+++/n2+//ZZhw4bx97//nW7dulFWVsbOnTv54osveOGFF445RL20tJTffvutzvuqk8yTTz6Z8ePH06dPH6KiotiwYQNvvvkmQ4cOddcPqP6i6dFHH3WPTunTp497aLgnnXXWWfj7+zN58mRuu+02ysrKeP7558nNza21b+/evZk3bx7PP/88AwcOxGKxHHFt7Hvvvdc9T/6ee+4hOjqat99+m88//5zHHnuMiIgIjz6PtWvX1lk5vlOnTkedy3803bp14+qrr+bZZ5/FYrFwzjnnuKuXp6amcuONN3ogchERL/B2JTcRkZZs0aJF5oQJE8yEhATTZrOZ8fHx5kUXXWT++uuvde7/xRdfmP369TODgoLMjh07mv/+97/rrF6+cuVKc/jw4WZwcLAJmCNHjjxmLKWlpebtt99utmvXzvTz8zOTkpLMa6+91szNza2xX32rl5eXl5tPPPGEec4555ht27Y1AwICzMDAQLNHjx7mbbfdZmZnZ9fY/7XXXjO7detmBgQEmB07djQffvhh89VXXzUBc8eOHe792rVrZ44bN67W+QDzr3/9a41tO3bsMAHz8ccfrxX/6tWrzVGjRplBQUFmdHS0ee2115pFRUU1Hl9Xpe6ioiLzH//4h9mtWzfT39/fjIiIMHv37m3eeOON5v79+495XUzTND/++GNz3LhxZlxcnGmz2cyoqChz9OjR5gsvvGCWl5e798vOzjavueYaMykpybTZbGa7du3MmTNnmmVlZXUed9iwYSZgXnbZZXXef7zX+EjX5JFHHjHbt29vBgQEmD169DBffvnlOttlXa/RkY65fv16c+LEiWZMTIzp7+9vtm3b1pw2bVqN556ZmWn+/e9/Nzt06GD6+fmZ0dHR5sCBA8277rqr1mt5uKNVLwfcVd/vuOMOc9CgQWZUVJT7ut14441mVlaW+1jl5eXmn//8ZzMuLs40DKPG9TxS9fL//ve/NeKprsh9eGX86uuYmZnp3vbpp5+affv2NQMDA82UlBTz1ltvNb/88ksTMOfPn+/eLycnx5wwYYIZGRnpjuvQ1+LQ6uWmaZpr1qwxzz33XDMiIsL09/c3+/bta86ZM6fGPkeKv/pv7fD9D3e06uWA+fLLL9eIsa72cqRrZbqquT/66KNm165dTT8/PzM2Ntb805/+ZO7Zs6fGfiNHjjRPOumko8YqIuIrDPPQ0rMiIiI+btq0afzvf/+rUQ1aRERExFdpTreIiIiIiIhIE1HSLSIiIiIiItJENLxcREREREREpImop1tERERERESkiSjpFhEREREREWkiSrpFREREREREmojN2wEcD4fDQVpaGmFhYRiG4e1wREREREREpJUwTZPCwkKSk5OxWI7cn92ik+60tDRSU1O9HYaIiIiIiIi0Unv27KFNmzZHvL9FJ91hYWHgepLh4eHeDueoHA4HmZmZxMXFHfVbEGmd1D7kWNRG5GjUPuRY1EbkWNRG5GjUPupWUFBAamqqOy89khaddFcPKQ8PD28RSXdZWRnh4eFqqFKL2occi9qIHI3ahxyL2ogci9qIHI3ax9Eda6qzrpiIiIiIiIhIE1HSLSIiIiIiItJElHSLiIiIiIiINJEWPadbRERERER8g91up7Ky0tthSBNwOBxUVlZSVlbWquZ0+/n5YbVaj/s4SrpFRERERKTRTNNk//795OXleTsUaSKmaeJwOCgsLDxm0bATTWRkJImJicf1vL2adLdv355du3bV2n7dddfx3HPPeSUmERERERGpv+qEOz4+nuDg4FaXlLUGpmlSVVWFzWZrNa+vaZqUlJSQkZEBQFJSUqOP5dWke8mSJdjtdvfttWvXctZZZzFx4kRvhiUiIiIiIvVgt9vdCXdMTIy3w5Em0hqTboCgoCAAMjIyiI+Pb/RQc68m3XFxcTVuP/LII3Tq1ImRI0d6LSYREREREamf6jncwcHB3g5FpElUt+3KysqWmXQfqqKigrfeeoubbrrpiN+elJeXU15e7r5dUFAAron9Doej2WJtDIfD4Z4LIXI4tQ85FrURORq1DzkWtRE5lsa2kerH4eoNlRNXa36dq/82Dv/7qO/fi88k3R999BF5eXlMmzbtiPs8/PDDzJo1q9b2zMxMysrKmjjC4+NwOMjPz8c0zVZV8U/qR+1DjkVtRI5G7UOORW1EjqWxbaSyshKHw0FVVRVVVVVNGqN4j2ma7mnBrWl4OUBVVRUOh4Ps7Gz8/Pxq3FdYWFivY/hM0v3qq69yzjnnkJycfMR9Zs6cyU033eS+XVBQQGpqKnFxcYSHhzdTpI3jcDgwDIO4uDj9Zye1qH3IsaiNyNGofcixqI3IsTS2jZSVlVFYWIjNZsNm85nU4oRgsViYN28eF1xwgbdDcTs86Txec+fO5cYbbyQ3N9ejx/Ukm82GxWIhJiaGwMDAGvcdfvuIx2ii2Bpk165dfPfdd8ybN++o+wUEBBAQEFBru8ViaRH/gRiG0WJilean9iHHojYiR6P2IceiNiLH0pg2YrFYMAzD/dOSZGRkcPfdd/Pll19y4MABoqKi6Nu3L/fddx9Dhw71dnjgek2O97p+8MEHPPvss6xYsQK73U7Hjh2ZMGEC119/PdHR0fU6hmma7jg8+TpfcskljBs3zqfbTvVrUNffRn3/VnziXXfOnDnEx8czbtw4b4ciIiIiIiKtwB//+EdWrVrF66+/zubNm/nkk08YNWoUOTk53g7NY+666y4mTZrE4MGD+fLLL1m7di1PPvkkq1at4s033/RqbJWVlQQFBREfH+/VOJqD15Nuh8PBnDlzmDp1qoakiIiIiIhIk8vLy+OXX37h0UcfZfTo0bRr144hQ4Ywc+bMGh2BTz31FL179yYkJITU1FSuu+46ioqK3PfPnTuXyMhIPvvsM7p160ZwcDATJkyguLiY119/nfbt2xMVFcXf/va3Gkslt2/fngceeIBLL72U0NBQkpOTefbZZ48a8759+5g0aRJRUVHExMRw/vnns3PnziPu//vvvzN79myefPJJHn/8cYYNG0b79u0566yz+OCDD5g6dap73+eff55OnTrh7+9Pt27daiTkkydPZvLkyTWOXVlZSWxsLHPmzAHgq6++YsSIEURGRhITE8P48ePZtm2be/+dO3diGAbvv/8+o0aNIjAwkLfeest9/apt27aN888/n4SEBEJDQxk8eDDfffddjXO3b9+e2bNnM336dMLCwmjbti0vvfRSjX327t3LJZdcQnR0NCEhIQwaNIjFixe77//0008ZOHAggYGBdOzYkVmzZjVpTQKvJ93fffcdu3fvZvr06d4ORURERERamtwDYFcBL19imiZlFVVe+alvZe3Q0FBCQ0P56KOPaqyOdDiLxcIzzzzD2rVref311/nhhx+47bbbauxTUlLCM888w3vvvcdXX33FggULuOiii/jiiy/44osvePPNN3nppZf43//+V+Nxjz/+OH369GH58uXMnDmTG2+8kW+//bbOOEpKShg9ejShoaH89NNP/PLLL4SGhnL22WdTUVFR52PefvttQkNDue666+q8vzrZ/fDDD7nhhhu4+eabWbt2LX/5y1+44oormD9/PgCXXXYZn3zySY0vG77++muKi4v54x//CEBxcTE33XQTS5Ys4fvvv8disXDhhRfWqu59++238/e//50NGzYwZsyYWjEVFRUxduxYvvvuO1asWMGYMWM499xz2b17d439nnzySQYNGsSKFSu47rrruPbaa9m4caP7GCNHjiQtLY1PPvmEVatWcdttt7lj+frrr/nTn/7E3//+d9avX8+LL77I3Llzeeihh+q8Tp5gmC245ntBQQERERHk5+e3iEJq1Yuqay6VHE7tQ45FbUSORu1DjuWEbSN7NsKrM6Hf6XDB37wdTYvW2DZSVlbGjh076NChg7uoVFlFFec/+nUTRntkH98+hkD/+o2e/eCDD7jqqqsoLS1lwIABjBw5kksuuYQ+ffoc8TH//e9/ufbaa8nKygJXT/cVV1zB1q1b6dSpEwDXXHMNb775JgcOHCA0NBSAs88+m/bt2/PCCy+Aq7e2R48efPnll+5jX3LJJRQUFPDFF1+Aay7xhx9+yAUXXMBrr73GY489xoYNG9zznysqKoiMjOSjjz7iD3/4Q61Yx44dy759+1i1atVRr8Pw4cM56aSTavQWX3zxxRQXF/P5559TWVlJcnIyjz32GNOmTcMwDC699FKqqqp4//336zxmZmYm8fHxrFmzhl69erFz5046dOjA008/zQ033ODeb+7cucyYMYO8vLwjxnfSSSdx7bXXcv3117uv3amnnurujTdNk8TERGbNmsU111zDSy+9xC233MLOnTvrnLN+2mmncc455zBz5kz3trfeeovbbruNtLS0WvvX1car1TcfPYHedUVERESkVdm5zvnvgSMPsRU5kj/+8Y/u3tAxY8awYMECBgwYwNy5c937zJ8/n7POOouUlBTCwsKYMmUK2dnZFBcXu/cJDg52J9wACQkJtG/f3p1wV2/LyMiocf7Di7UNHTqUDRs21BnrsmXL2Lp1K2FhYe5e+ujoaMrKymoM4z7UocXPjmbDhg0MHz68xrbhw4e7Y/Hz82PChAm899574OrV/vjjj7nsssvc+2/bto1LL72Ujh07Eh4eTocOHQBq9VAPGjToqLEUFxdz22230bNnTyIjIwkNDWXjxo21jnPoFyOGYZCYmOi+vitXrqR///5HLBK3bNky7r//fvd1DA0N5aqrriI9PZ2SkpJjXq/G0CRqEREREWmZMvc6/y3O93YkcogAPysf31576HBznbshAgMDOeusszjrrLO45557+POf/8y9997LtGnT2LVrF2PHjuWaa67hgQceIDo6ml9++YUrr7ySyspK9zEOX0bLMIw6tx0+1LouR0qSHQ4HAwcO5O233651X1xcXJ2P6dq1K7/88guVlZXHXOrr8PMenrBfdtlljBo1ioyMDL777jsCAwM555xz3Pefe+65pKam8vLLL5OcnIzD4aBXr161hr6HhIQcNY5bb72Vr7/+mieeeILOnTsTFBTEhAkTah3naNc3KCjoqOdwOBzMmjWLiy66qNZ99V0CrKGUdIuIiIhIy5RVnXQXgGmCDy871JoYhlHvId6+pmfPnnz00UcALF26lKqqKp588kn3kPsjDadujN9++63W7e7du9e574ABA/jPf/5DfHx8vafVXnrppTzzzDP83//9X40h3dXy8vKIjIykR48e/PLLL0yZMsV936+//kqPHj3ct4cNG0Zqair/+c9/+Oqrr5g4cSL+/v4AZGdns2HDBl588UVOPfVUAH755Zd6XoWafv75Z6ZNm8aFF14IrvnZRysWV5c+ffrwyiuvkJOTU2dv94ABA9i0aROdO3duVIyN0TL/GkRERESkdXM4DvZ02yuhogwCjt7DJVItOzubiRMnMn36dPr06UNYWBhLly7lscce4/zzzwegU6dOVFVV8eyzz3LuueeycOFC95xsT1i4cCGPPfYYF1xwAd9++y3//e9/+fzzz+vc97LLLuPxxx/n/PPP5/7776dNmzbs3r2befPmceutt9KmTZtajzn55JO57bbbuPnmm9m3bx8XXnghycnJbN26lRdeeIERI0Zwww03cOutt3LxxRczYMAAzjjjDD799FPmzZtXo2q4YRhMmjSJF198kc2bN7uLrAHuauovvfQSSUlJ7N69mzvuuKNR16Rz587MmzePc889F8MwuPvuu+s1QuBQkydPZvbs2VxwwQU8/PDDJCUlsWLFCpKTkxk6dCj33HMP48ePJzU1lYkTJ2KxWFi9ejVr1qzhwQcfbFTcx6I53SIiIiLS8hRkQ2XZwdvFRy7EJHK40NBQTj75ZP75z39y2mmn0atXL+6++26uuuoq/v3vfwPQr18/nnrqKR599FF69erF22+/zcMPP+yxGG6++WaWLVtG//79eeCBB3jyySfrrOiNa974Tz/9RNu2bbnooovo0aMH06dPp7S09Kg9348++ijvvPMOixcvZsyYMZx00kncdNNN9OnTx71k2AUXXMC//vUvHn/8cU466SRefPFF5syZw6hRo2oca/Lkyaxfv56UlJQac8AtFgvvvfcey5Yto1evXtx44408/vjjjbom//znP4mKimLYsGGce+65jBkzhgEDBjToGP7+/nzzzTfEx8czduxYevfuzSOPPILV6px6MGbMGD777DO+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",
|
|
"text/plain": [
|
|
"<Figure size 1000x500 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"\"\"\"\n",
|
|
"==================================\n",
|
|
"Out-of-sample comparison: sample vs. shrunk covariance\n",
|
|
"==================================\n",
|
|
"\n",
|
|
"We use a rolling window: estimate covariance on trailing 60 months,\n",
|
|
"compute portfolio variance forecast, compare to realized variance\n",
|
|
"over the next month. Lower Frobenius error = better estimator.\n",
|
|
"\"\"\"\n",
|
|
"window = 60\n",
|
|
"dates = df_returns.index\n",
|
|
"errors_sample = []\n",
|
|
"errors_shrunk = []\n",
|
|
"\n",
|
|
"for i in range(window, len(dates) - 1, 6): # Every 6 months for speed\n",
|
|
" train = df_returns.iloc[i-window:i].dropna(axis=1, thresh=window//2).dropna()\n",
|
|
" test = df_returns.iloc[i:i+1][train.columns]\n",
|
|
" \n",
|
|
" if test.shape[1] < 20:\n",
|
|
" continue\n",
|
|
" \n",
|
|
" # Shrunk covariance (recompute on this window)\n",
|
|
" lw = ledoit_wolf_shrinkage(df_returns.iloc[i-window:i])\n",
|
|
" S_shrunk = lw['cov_shrunk']\n",
|
|
" \n",
|
|
" # Find common tickers between train and the shrunk estimator\n",
|
|
" common = train.columns.intersection(lw['tickers'])\n",
|
|
" if len(common) < 20:\n",
|
|
" continue\n",
|
|
" \n",
|
|
" # Sample covariance on common tickers only\n",
|
|
" train_common = train[common]\n",
|
|
" S_sample = np.cov(train_common, rowvar=False, ddof=1)\n",
|
|
" \n",
|
|
" # Shrunk covariance aligned to common tickers\n",
|
|
" S_shrunk_aligned = pd.DataFrame(\n",
|
|
" S_shrunk, index=lw['tickers'], columns=lw['tickers']\n",
|
|
" ).loc[common, common].values\n",
|
|
" \n",
|
|
" # Realized covariance (outer product of next month's returns) on common tickers\n",
|
|
" test_common = test[common]\n",
|
|
" realized = np.outer(test_common.values[0], test_common.values[0])\n",
|
|
" \n",
|
|
" err_sample = np.linalg.norm(S_sample - realized, 'fro')\n",
|
|
" err_shrunk = np.linalg.norm(S_shrunk_aligned - realized, 'fro')\n",
|
|
" \n",
|
|
" errors_sample.append(err_sample)\n",
|
|
" errors_shrunk.append(err_shrunk)\n",
|
|
"\n",
|
|
"print(f\"Number of evaluation windows: {len(errors_sample)}\")\n",
|
|
"print(f\"Mean Frobenius error (sample): {np.mean(errors_sample):.4f}\")\n",
|
|
"print(f\"Mean Frobenius error (shrunk): {np.mean(errors_shrunk):.4f}\")\n",
|
|
"print(f\"Improvement: {(1 - np.mean(errors_shrunk)/np.mean(errors_sample))*100:.1f}%\")\n",
|
|
"\n",
|
|
"fig, ax = plt.subplots(figsize=(10, 5))\n",
|
|
"ax.plot(errors_sample, label='Sample Covariance', color='steelblue')\n",
|
|
"ax.plot(errors_shrunk, label='Ledoit-Wolf Shrunk', color='coral')\n",
|
|
"ax.set_xlabel('Evaluation Window')\n",
|
|
"ax.set_ylabel('Frobenius Error')\n",
|
|
"ax.set_title('Out-of-Sample Covariance Estimation Error')\n",
|
|
"ax.legend()\n",
|
|
"ax.grid(alpha=0.3)\n",
|
|
"\n",
|
|
"plt.tight_layout()\n",
|
|
"plt.savefig('../images/05_risk_decomposition/ledoit_wolf_comparison.png', dpi=150, bbox_inches='tight')\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "99d9a4fd",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Portfolio Variance Decomposition\n",
|
|
"\n",
|
|
"Let $B\\in\\mathbb{R}^{N\\times k}$ hold the top $k$ eigenvectors and let\n",
|
|
"\n",
|
|
"$$\\Sigma_f=\\mathrm{diag}(\\lambda_1,\\ldots,\\lambda_k).$$\n",
|
|
"\n",
|
|
"The top-$k$ approximation to the covariance matrix is\n",
|
|
"\n",
|
|
"$$\\Sigma_{\\text{factor}}=B\\Sigma_fB^\\top.$$\n",
|
|
"\n",
|
|
"The residual covariance is\n",
|
|
"\n",
|
|
"$$\\Sigma_{\\text{resid}}=\\Sigma-B\\Sigma_fB^\\top.$$\n",
|
|
"\n",
|
|
"For a portfolio $w$, variance splits exactly under this construction:\n",
|
|
"\n",
|
|
"$$w^\\top\\Sigma w = w^\\top\\Sigma_{\\text{factor}}w + w^\\top\\Sigma_{\\text{resid}}w.$$\n",
|
|
"\n",
|
|
"Geometrically, $B^\\top w$ is the portfolio's exposure to the top PCA directions. The systematic term is the variance from those common directions. The residual term is everything left outside that retained subspace.\n",
|
|
"\n",
|
|
"This is a PCA decomposition, not a full economic factor model. The first few PCs often resemble broad market or style factors, but the math itself only knows about covariance structure."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 8,
|
|
"id": "226662f6",
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2026-07-31T11:09:13.090599Z",
|
|
"iopub.status.busy": "2026-07-31T11:09:13.090421Z",
|
|
"iopub.status.idle": "2026-07-31T11:09:13.125912Z",
|
|
"shell.execute_reply": "2026-07-31T11:09:13.125261Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Last rebalance: 2025-11-30 00:00:00\n",
|
|
"Number of long holdings: 49\n",
|
|
"Weight per stock: 0.0204\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"\"\"\"\n",
|
|
"==================================\n",
|
|
"Reconstruct the long portfolio weights at the last rebalance\n",
|
|
"==================================\n",
|
|
"\"\"\"\n",
|
|
"df_signal = pd.read_csv('../data/processed/momentum_signal.csv', index_col=0, parse_dates=True)\n",
|
|
"\n",
|
|
"# Take the last rebalance date\n",
|
|
"last_date = df_signal.index[-2] # -2 because we trade t+1\n",
|
|
"scores = df_signal.loc[last_date].dropna()\n",
|
|
"\n",
|
|
"n_long = max(int(len(scores) * 0.1), 1)\n",
|
|
"long_tickers = scores.sort_values(ascending=False).head(n_long).index.tolist()\n",
|
|
"\n",
|
|
"# Equal-weighted weights\n",
|
|
"w = pd.Series(1.0 / len(long_tickers), index=long_tickers)\n",
|
|
"\n",
|
|
"print(f\"Last rebalance: {last_date}\")\n",
|
|
"print(f\"Number of long holdings: {len(long_tickers)}\")\n",
|
|
"print(f\"Weight per stock: {w.iloc[0]:.4f}\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 9,
|
|
"id": "7351ba96",
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2026-07-31T11:09:13.127569Z",
|
|
"iopub.status.busy": "2026-07-31T11:09:13.127371Z",
|
|
"iopub.status.idle": "2026-07-31T11:09:13.339158Z",
|
|
"shell.execute_reply": "2026-07-31T11:09:13.338629Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Using top 9 PCs as statistical factors\n",
|
|
"\n",
|
|
"### Portfolio Variance Decomposition\n",
|
|
"\n",
|
|
"Total portfolio variance: 0.001336\n",
|
|
"Systematic (factor) variance: 0.001212 (90.7%)\n",
|
|
"Idiosyncratic variance: 0.000124 (9.3%)\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAxYAAAHqCAYAAACZcdjsAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAXI9JREFUeJzt3Xd8FVX+//H3TQ+QIDVFWkBAQhFI1kiUJr0IAVxiC0pTRBdIUIqYpbgLgisg0iwIsriAa0BAikR6iUgNq2YtGMkCiRSBRFra/P74kvvjksK9TMIl8Ho+Hjz0njkz53PnJsN9M2dmLIZhGAIAAAAAE1ycXQAAAACA0o9gAQAAAMA0ggUAAAAA0wgWAAAAAEwjWAAAAAAwjWABAAAAwDSCBQAAAADTCBYAAAAATCNYAAAAADCNYAHcwRYtWiSLxWL94+bmpmrVqql///46fvx4sY41efJkff755wUu27Rpk0JDQ1W2bFlZLJZC+xVk69atslgs2rp1q7VtwoQJslgsxVJ3r1695O3trXPnzhXa5+mnn5a7u7t+++030+P9+uuvslgsWrRokeltOdu1P1uurq6qUKGCHnjgAb3wwgv6+uuvnV1eqVerVi0999xz1tcnTpzQhAkTdOjQoXx9i/N34macO3dOlStX1rJly6w/4/b8+fXXX0u8ttTUVD333HOqWrWqvLy81KRJEy1YsMCudfOOP9f+nPv5+enPf/6zkpKS8vX/7bffNGbMGDVu3FjlypWTl5eX6tatq+HDh+unn35yqO5WrVppxIgRDq0DOJubswsAUPIWLlyo+++/X5cuXdL27ds1ZcoUbdu2Tf/5z39UtmzZYhlj8uTJevzxxxUREWHTbhiG+vbtq3r16mn16tUqW7as6tevb2qsQYMGqXPnziYr/j8DBw7U559/rn/9618aOnRovuXnz5/XypUr1b17d/n5+ZkeLyAgQAkJCapTp47pbd0OHn/8cY0cOVKGYSg9PV3ffvutFi9erPfff1/Dhg3TO++84+wSS62VK1fK19fX+vrEiROaOHGiatWqpaZNm9r0Lc7fiZsxceJEBQYGKjIyUpmZmUpISLBZPnToUJ0/f16ffPKJTXtAQECJ1nX+/Hk98sgjyszM1LRp0xQQEKClS5dq0KBBOn/+vGJiYuzazuTJk9W2bVtlZmZq3759mjRpkjZt2qT//Oc/uvfeeyVJ33zzjbp37y7DMPTyyy+rRYsW8vDw0A8//KAlS5bowQcf1NmzZ+2u/Y033lCHDh304osvmj5mAreMAeCOtXDhQkOSsXfvXpv22NhYQ5KxZMkS02NcvHjRMAzDKFu2rPHss8/mW37s2DFDkjF16tSb2v6WLVsMScaWLVtM11qQ7OxsIzAw0AgJCSlw+bx58wxJxpo1a0yPc/nyZVPbuN1IMl566aV87dnZ2caAAQMMScbcuXOdUtudaO/evYYkY+HChc4uxcaZM2cMb29vY/78+YX2ad26tdGwYcNbWpdhGMaUKVMMSca+ffts2jt27GiULVvWOHv2bJHr5x1//v3vf9u0L1iwwJBk/O1vfzMMwzDOnz9v+Pv7G9WrVzf+97//Fbit67dhj0aNGhmDBw92eD3AWZgKBdyFHnroIUnS0aNHJUmXL1/W2LFjFRQUJA8PD91777166aWX8k0PqlWrlrp3764VK1aoWbNm8vLy0sSJE2WxWHThwgV9/PHH1ikDbdq00YQJE1StWjVJ0ujRo2WxWFSrVi3r9nbu3Kl27drJx8dHZcqUUXh4uNauXXvD+gua9pGbm6tp06bp/vvvl6enp6pWrap+/frp2LFjRW7L1dVVzz77rPbv36///Oc/+ZYvXLhQAQEB6tKli06dOqWhQ4cqODhY5cqVU9WqVfXoo49qx44dNuvkTQWZNm2a/va3vykoKEienp7asmVLgVOhfv75Z/Xv319169ZVmTJldO+99+qxxx7LV0/etIylS5dq3LhxCgwMlK+vr9q3b68ffvghX+0bNmxQu3btVL58eZUpU0YNGjTQlClTbPrs27dPPXr0UMWKFeXl5aVmzZrp008/vcEnUDRXV1fNnj1blStX1ltvvWWzLD09Xa+88orNz9qIESN04cIFm365ubl699131bRpU3l7e+uee+7RQw89pNWrV9v0seczb9OmjRo1aqSEhASFh4fL29tbtWrV0sKFCyVJa9euVfPmzVWmTBk1btxYGzZssFk/7+ft4MGD6t27t3x9fVW+fHk988wzOnXqVL667anp4MGD6t69u6pWrSpPT08FBgaqW7duNv2unQq1detW/elPf5Ik9e/f3/p7NmHCBJsab6aWvP2zd+9etWzZUmXKlFHt2rX15ptvKjc39waf9v9NuczOzlZkZOQN+14rJSVFzzzzjHUfNGjQQG+//bbNmNf+Lv39739XjRo15OXlpdDQUG3atOmGY+zatUt+fn4KCQmxae/evbsuXLiQ77O21/XH0A8++EBpaWmaNm2a9Zh3vccff9z6/7/88oueeOIJBQYGytPTU35+fmrXrl2+aW5RUVH617/+pYyMjJuqE7jVCBbAXejnn3+WJFWpUkWGYSgiIkL/+Mc/FBUVpbVr1yomJkYff/yxHn30UV25csVm3QMHDujVV1/VsGHDtGHDBvXp00cJCQny9vZW165dlZCQoISEBM2dO1eDBg3SihUrJEl/+ctflJCQoJUrV0qStm3bpkcffVTnz5/XggULtHTpUvn4+Oixxx7T8uXLHX5PL774okaPHq0OHTpo9erVeuONN7RhwwaFh4fr9OnTRa47YMAAWSwWffTRRzbt33//vb755hs9++yzcnV11e+//y5JGj9+vNauXauFCxeqdu3aatOmjc01IHlmzZqlzZs36x//+IfWr1+v+++/v8DxT5w4oUqVKunNN9/Uhg0bNGfOHLm5uSksLKzAwPDaa6/p6NGj+vDDD/X+++/rp59+0mOPPaacnBxrnwULFqhr167Kzc3V/PnztWbNGg0bNszmS+WWLVv08MMP69y5c5o/f75WrVqlpk2bKjIy0vQ1IN7e3mrfvr2Sk5OtY168eFGtW7fWxx9/rGHDhmn9+vUaPXq0Fi1apB49euj/ToL8n+eee07Dhw/Xn/70Jy1fvlzLli1Tjx49bObkO/KZp6WlqX///ho0aJBWrVqlxo0ba8CAAZo0aZLGjh2rUaNGKS4uTuXKlVNERIROnDiR7z316tVL9913nz777DNNmDBBn3/+uTp16qSsrCyHarpw4YI6dOig3377TXPmzFF8fLxmzpypGjVqFPoFsnnz5tYg9Prrr1t/zwYNGlToZ+Do/nn66af1zDPPaPXq1erSpYvGjh2rJUuW3PCzXrt2rZo1a6Z77rnnhn3znDp1SuHh4dq4caPeeOMNrV69Wu3bt9crr7yil19+OV//2bNna8OGDZo5c6aWLFkiFxcXdenSJd+Uq+tlZmbK09MzX3te2+HDh+2u+VrXHkMlaePGjXJ1ddVjjz1m1/pdu3bV/v37NW3aNMXHx2vevHlq1qxZvn/MadOmjS5cuFDg8QW4LTn7lAmAkpM3Ferrr782srKyjIyMDOOLL74wqlSpYvj4+BhpaWnGhg0bDEnGtGnTbNZdvny5Icl4//33rW01a9Y0XF1djR9++CHfWIVNhUpOTjYkGW+99ZZN+0MPPWRUrVrVyMjIsLZlZ2cbjRo1MqpVq2bk5uYaRiFTocaPH29ce/hKSkoyJBlDhw61GWPPnj2GJOO111674b5q3bq1UblyZSMzM9PaNnLkSEOS8eOPPxa4TnZ2tpGVlWW0a9fO6NWrV773XKdOHZvtXbusqOks2dnZRmZmplG3bl0jOjra2p63L7p27WrT/9NPPzUkGQkJCYZhGEZGRobh6+trPPLII9b9WJD777/faNasmZGVlWXT3r17dyMgIMDIyckpdF2jiKlQeUaPHm1IMvbs2WMYV6eluLi45Jua99lnnxmSjHXr1hmGYRjbt283JBnjxo0rdNuOfOatW7fONx3mzJkzhqurq+Ht7W0cP37c2n7o0CFDkjFr1ixrW97P27WfhWEYxieffGIzpdDemvbt22dIMj7//PNC359x9fft2t+poqZCmfmdyNs/eZ9TnuDgYKNTp05F1mgYhlGmTBljyJAhRfa5firUmDFjChzzxRdfNCwWi/UYk/f7EhgYaFy6dMnaLz093ahYsaLRvn37IscdMWKE4eLiYhw9etSmPSoqypBkPP/880Wun/c7t3z5ciMrK8u4ePGisX37duO+++4zXF1djcTERMO4+rvk7+9f5LbynD592pBkzJw584Z9MzMzDYvFYowePdqubQPOxhkL4C7w0EMPyd3dXT4+Purevbv8/f21fv16+fn5afPmzdLVfyG+1p///GeVLVs233SDJk2aqF69eqbquXDhgvbs2aPHH39c5cqVs7a7uroqKipKx44dK/Bf6guzZcuWAt/Dgw8+qAYNGtg1ZWLgwIE6ffq0dapNdna2lixZopYtW6pu3brWfvPnz1fz5s3l5eUlNzc3ubu7a9OmTQXeIaZHjx5yd3e/4djZ2dmaPHmygoOD5eHhITc3N3l4eOinn34qdLvXatKkiXTNtIzdu3crPT1dQ4cOLfROQT///LP++9//6umnn7bWkPena9euSk1NdegzKMi1ZyAk6YsvvlCjRo3UtGlTm/E6depkc+ev9evXS5JeeumlQrft6GceEBBgMx2mYsWKqlq1qpo2barAwEBre4MGDaRr9uW18vZVnr59+8rNzc1ai701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vlNsbKweeOAB9e3bV3Lg5/CLL77Q3LlzFRERodq1a8swDK1YsULnzp1Thw4dCh2/Tp068vb21ieffKIGDRqoXLlyCgwMtLlGJM+t3D9t2rSxXhdjr+joaC1evFjdunXTpEmTVLNmTa1du1Zz587Viy++mO8fFlxdXdWhQwfFxMQoNzdXU6dOVXp6uiZOnHjDsf7yl7+oTZs2qlSpkn755RfNmjVLx44d07Zt2xx+r4UpX768Vq1ape7du6tZs2Y2D8j76aeftGTJEiUmJqp37946fPiwXn75Zf35z39W3bp15eHhoc2bN+vw4cP5zlblPcH++qAF3LacffU4gJJT2APyrnfp0iVj9OjRRs2aNQ13d3cjICDAePHFF/M9PKpmzZpGt27dCtzGoUOHjIcfftgoU6aMIclo3bq1YRRxVyjDMIwdO3YYjz76qFG2bFnD29vbeOihh/I9iM6eu0IZhmHk5OQYU6dONerVq2e4u7sblStXNp555plCH1ZVmHfeeceQZAQHB+dbduXKFeOVV14x7r33XsPLy8to3ry58fnnnxvPPvusUbNmTWu/ot5zQXeFOnv2rDFw4ECjatWqRpkyZYxHHnnE2LFjh9G6dWvrfjSKeFhXYXeaWrdundG6dWujbNmyRpkyZYzg4OB8DypMTEw0+vbta1StWtVwd3c3/P39jUcffbTIh53lkWT94+LiYvj6+hqNGzc2nn/+eesdqq73xx9/GK+//rpRv359w8PDwyhfvrzRuHFjIzo62khLS7P2y8nJMWbMmGE0atTI2q9FixY2Px/2fuaFPZytsJ/n6+92lffztn//fuOxxx4zypUrZ/j4+BhPPvmk8dtvv9msa09N//3vf40nn3zSqFOnjuHt7W2UL1/eePDBB41Fixblq+/6O60tXbrUuP/++w13d3dDkjF+/HibGh2tpaj9c/3PdWE2bdpkSDK++eabQvsUNMbRo0eNp556yqhUqZLh7u5u1K9f33jrrbds7kaW97M9depUY+LEiUa1atUMDw8Po1mzZsaXX355w9oMwzB69uxpBAQEWH++n3vuOePXX3+1a93CfucKk5aWZowePdpo2LChUaZMGcPT09O47777jBdeeMH4z3/+YxiGYfz222/Gc889Z9x///1G2bJljXLlyhlNmjQxZsyYYWRnZ9tsLyoqymjcuLFdYwO3A4tR2HlyAACgCRMmaOLEiTp16hRz3QvRpEkTPfzww0VOX7sZv/76q4KCgvTWW2/plVdeKdZt3+7S09MVGBioGTNm2Jz5A25nXGMBAABMmTZtmhYtWnTDJ93DfjNmzFCNGjXUv39/Z5cC2I1gAQAATOncubPeeustJScnO7uUO4avr68WLVokNzcuh0XpwVQoAAAAAKZxxgIAAACAaQQLAAAAAKYRLAAAAACYxhVBJSg3N1cnTpyQj4+PQw/7AgAAAG4HeQ9ADQwMlItL0eckCBYl6MSJE6pevbqzywAAAABM+d///qdq1aoV2YdgUYJ8fHykqx+Er6+vs8sBAAAAHJKenq7q1atbv9cWhWBRgvKmP/n6+hIsAAAAUGrZM62fi7cBAAAAmEawAAAAAGAawQIAAACAaQQLAAAAAKYRLAAAAACYRrAAAAAAYBrBAgAAAIBpBAsAAAAAphEsAAAAAJhGsAAAAABgGsECAAAAgGkECwAAAACmESwAAAAAmEawAAAAAGAawQIAAACAaQQLAAAAAKYRLAAAAACY5vRgMXfuXAUFBcnLy0shISHasWNHkf23bdumkJAQeXl5qXbt2po/f36+PnFxcQoODpanp6eCg4O1cuVKm+Xbt2/XY489psDAQFksFn3++ec2y7OysjR69Gg1btxYZcuWVWBgoPr166cTJ04U07sGAAAA7ixuzhx8+fLlGjFihObOnauHH35Y7733nrp06aLvv/9eNWrUyNc/OTlZXbt21eDBg7VkyRLt2rVLQ4cOVZUqVdSnTx9JUkJCgiIjI/XGG2+oV69eWrlypfr27audO3cqLCxMknThwgU98MAD6t+/v3W9a128eFEHDhxQbGysHnjgAZ09e1YjRoxQjx49tG/fvluwZ4pHpzfWOrsEAHeoL2O7ObsEAMBtxmIYhuGswcPCwtS8eXPNmzfP2tagQQNFRERoypQp+fqPHj1aq1evVlJSkrVtyJAhSkxMVEJCgiQpMjJS6enpWr9+vbVP586dVaFCBS1dujTfNi0Wi1auXKmIiIgia927d68efPBBHT16tMDQU5D09HSVL19e58+fl6+vr13rFCeCBYCSQrAAgLuDI99nnTYVKjMzU/v371fHjh1t2jt27Kjdu3cXuE5CQkK+/p06ddK+ffuUlZVVZJ/Ctmmv8+fPy2Kx6J577jG1HQAAAOBO5LSpUKdPn1ZOTo78/Pxs2v38/JSWllbgOmlpaQX2z87O1unTpxUQEFBon8K2aY/Lly9rzJgxeuqpp4pMaleuXNGVK1esr9PT0yVJubm5ys3Nvenxb5ZFTjsZBeAO54xjGgDg1nPkeO/Uayx0dSrStQzDyNd2o/7Xtzu6zaJkZWXpiSeeUG5urubOnVtk3ylTpmjixIn52k+dOqXLly/f1Phm1PAhWAAoGSdPnnR2CQCAWyAjI8Puvk4LFpUrV5arq2u+MwknT57Md8Yhj7+/f4H93dzcVKlSpSL7FLbNomRlZalv375KTk7W5s2bbzivbOzYsYqJibG+Tk9PV/Xq1VWlShWnXGORknFzYQoAbqRq1arOLgEAcAt4eXnZ3ddpwcLDw0MhISGKj49Xr169rO3x8fHq2bNngeu0aNFCa9assWnbuHGjQkND5e7ubu0THx+v6Ohomz7h4eEO1ZcXKn766Sdt2bLFGlyK4unpKU9Pz3ztLi4ucnG59ZezGCJYACgZzjimAQBuPUeO906dChUTE6OoqCiFhoaqRYsWev/995WSkqIhQ4ZIV88AHD9+XIsXL5au3gFq9uzZiomJ0eDBg5WQkKAFCxbY3O1p+PDhatWqlaZOnaqePXtq1apV+uqrr7Rz505rnz/++EM///yz9XVycrIOHTqkihUrqkaNGsrOztbjjz+uAwcO6IsvvlBOTo71LEjFihXl4eFxC/cSAAAAcPtzarCIjIzUmTNnNGnSJKWmpqpRo0Zat26datasKUlKTU1VSkqKtX9QUJDWrVun6OhozZkzR4GBgZo1a5bNsyjCw8O1bNkyvf7664qNjVWdOnW0fPly6zMsJGnfvn1q27at9XXe9KVnn31WixYt0rFjx7R69WpJUtOmTW1q3rJli9q0aVOCewUAAAAofZz6HIs7Hc+xAHCn4jkWAHB3KBXPsQAAAABw5yBYAAAAADCNYAEAAADANIIFAAAAANMIFgAAAABMI1gAAAAAMI1gAQAAAMA0ggUAAAAA0wgWAAAAAEwjWAAAAAAwjWABAAAAwDSCBQAAAADTCBYAAAAATCNYAAAAADCNYAEAAADANIIFAAAAANMIFgAAAABMI1gAAAAAMI1gAQAAAMA0ggUAAAAA0wgWAAAAAEwjWAAAAAAwjWABAAAAwDSCBQAAAADTCBYAAAAATCNYAAAAADCNYAEAAADANIIFAAAAANMIFgAAAABMI1gAAAAAMI1gAQAAAMA0ggUAAAAA0wgWAAAAAEwjWAAAAAAwjWABAAAAwDSCBQAAAADTCBYAAAAATCNYAAAAADCNYAEAAADANIIFAAAAANMIFgAAAABMI1gAAAAAMI1gAQAAAMA0ggUAAAAA0wgWAAAAAEwjWAAAAAAwjWABAAAAwDSCBQAAAADTCBYAAAAATCNYAAAAADCNYAEAAADANIIFAAAAANMIFgAAAABMI1gAAAAAMI1gAQAAAMA0ggUAAAAA05weLObOnaugoCB5eXkpJCREO3bsKLL/tm3bFBISIi8vL9WuXVvz58/P1ycuLk7BwcHy9PRUcHCwVq5cabN8+/bteuyxxxQYGCiLxaLPP/883zYMw9CECRMUGBgob29vtWnTRt99910xvGMAAADgzuPUYLF8+XKNGDFC48aN08GDB9WyZUt16dJFKSkpBfZPTk5W165d1bJlSx08eFCvvfaahg0bpri4OGufhIQERUZGKioqSomJiYqKilLfvn21Z88ea58LFy7ogQce0OzZswutbdq0aZo+fbpmz56tvXv3yt/fXx06dFBGRkYx7wUAAACg9LMYhmE4a/CwsDA1b95c8+bNs7Y1aNBAERERmjJlSr7+o0eP1urVq5WUlGRtGzJkiBITE5WQkCBJioyMVHp6utavX2/t07lzZ1WoUEFLly7Nt02LxaKVK1cqIiLC2mYYhgIDAzVixAiNHj1aknTlyhX5+flp6tSpeuGFF+x6f+np6SpfvrzOnz8vX19fu/dLcen0xtpbPiaAu8OXsd2cXQIA4BZw5Pus085YZGZmav/+/erYsaNNe8eOHbV79+4C10lISMjXv1OnTtq3b5+ysrKK7FPYNguSnJystLQ0m+14enqqdevWDm0HAAAAuFu4OWvg06dPKycnR35+fjbtfn5+SktLK3CdtLS0AvtnZ2fr9OnTCggIKLRPYdssbJy89a7fztGjRwtd78qVK7py5Yr1dXp6uiQpNzdXubm5do9fXCxy2skoAHc4ZxzTAAC3niPHe6cFizwWi8XmtWEY+dpu1P/6dke3WVy1TZkyRRMnTszXfurUKV2+fNnh8c2q4UOwAFAyTp486ewSAAC3gCPXFzstWFSuXFmurq75ziScPHky35mCPP7+/gX2d3NzU6VKlYrsU9g2CxtHV89cBAQE2L2dsWPHKiYmxvo6PT1d1atXV5UqVZxyjUVKhuNhCgDsUbVqVWeXAAC4Bby8vOzu67Rg4eHhoZCQEMXHx6tXr17W9vj4ePXs2bPAdVq0aKE1a9bYtG3cuFGhoaFyd3e39omPj1d0dLRNn/DwcLtrCwoKkr+/v+Lj49WsWTPp6jUh27Zt09SpUwtdz9PTU56envnaXVxc5OJy6y9nMUSwAFAynHFMAwDceo4c7506FSomJkZRUVEKDQ1VixYt9P777yslJUVDhgyRrp4BOH78uBYvXixdvQPU7NmzFRMTo8GDByshIUELFiywudvT8OHD1apVK02dOlU9e/bUqlWr9NVXX2nnzp3WPn/88Yd+/vln6+vk5GQdOnRIFStWVI0aNWSxWDRixAhNnjxZdevWVd26dTV58mSVKVNGTz311C3dRwAAAEBp4NRgERkZqTNnzmjSpElKTU1Vo0aNtG7dOtWsWVOSlJqaavNMi6CgIK1bt07R0dGaM2eOAgMDNWvWLPXp08faJzw8XMuWLdPrr7+u2NhY1alTR8uXL1dYWJi1z759+9S2bVvr67zpS88++6wWLVokSRo1apQuXbqkoUOH6uzZswoLC9PGjRvl4+NzS/YNAAAAUJo49TkWdzqeYwHgTsVzLADg7lAqnmMBAAAA4M5BsAAAAABgGsECAAAAgGkECwAAAACmESwAAAAAmEawAAAAAGAawQIAAACAaQQLAAAAAKYRLAAAAACYRrAAAAAAYBrBAgAAAIBpBAsAAAAAphEsAAAAAJhGsAAAAABgGsECAAAAgGkECwAAAACmESwAAAAAmEawAAAAAGAawQIAAACAaQQLAAAAAKYRLAAAAACYRrAAAAAAYBrBAgAAAIBpBAsAAAAAphEsAAAAAJhGsAAAAABgGsECAAAAgGkECwAAAACmESwAAAAAmEawAAAAAGAawQIAAACAaQQLAAAAAKYRLAAAAACYRrAAAAAAYBrBAgAAAIBpBAsAAAAAphEsAAAAAJhGsAAAAABgGsECAAAAgGkECwAAAACmESwAAAAAmEawAAAAAGCam6Mr5OTkaNGiRdq0aZNOnjyp3Nxcm+WbN28uzvoAAAAAlAIOB4vhw4dr0aJF6tatmxo1aiSLxVIylQEAAAAoNRwOFsuWLdOnn36qrl27lkxFAAAAAEodh6+x8PDw0H333Vcy1QAAAAAolRwOFiNHjtQ777wjwzBKpiIAAAAApY7DU6F27typLVu2aP369WrYsKHc3d1tlq9YsaI46wMAAABQCjgcLO655x716tWrZKoBAAAAUCo5HCwWLlxYMpUAAAAAKLUcDhZ5Tp06pR9++EEWi0X16tVTlSpVircyAAAAAKWGwxdvX7hwQQMGDFBAQIBatWqlli1bKjAwUAMHDtTFixdLpkoAAAAAtzWHg0VMTIy2bdumNWvW6Ny5czp37pxWrVqlbdu2aeTIkSVTJQAAAIDbmsNToeLi4vTZZ5+pTZs21rauXbvK29tbffv21bx584q7RgAAAAC3OYfPWFy8eFF+fn752qtWrcpUKAAAAOAu5XCwaNGihcaPH6/Lly9b2y5duqSJEyeqRYsWxV0fAAAAgFLA4WDxzjvvaPfu3apWrZratWun9u3bq3r16tq9e7feeecdhwuYO3eugoKC5OXlpZCQEO3YsaPI/tu2bVNISIi8vLxUu3ZtzZ8/P1+fuLg4BQcHy9PTU8HBwVq5cqXD4/7xxx96+eWXVa1aNXl7e6tBgwZM8wIAAAAK4XCwaNSokX766SdNmTJFTZs2VZMmTfTmm2/qp59+UsOGDR3a1vLlyzVixAiNGzdOBw8eVMuWLdWlSxelpKQU2D85OVldu3ZVy5YtdfDgQb322msaNmyY4uLirH0SEhIUGRmpqKgoJSYmKioqSn379tWePXscGjc6OlobNmzQkiVLlJSUpOjoaP3lL3/RqlWrHN1lAAAAwB3PYhiG4azBw8LC1Lx5c5szAQ0aNFBERISmTJmSr//o0aO1evVqJSUlWduGDBmixMREJSQkSJIiIyOVnp6u9evXW/t07txZFSpU0NKlS+0et1GjRoqMjFRsbKy1T0hIiLp27ao33njDrveXnp6u8uXL6/z58/L19XVw75jX6Y21t3xMAHeHL2O7ObsEAMAt4Mj3WbvuCrV69Wp16dJF7u7uWr16dZF9e/ToYVeRmZmZ2r9/v8aMGWPT3rFjR+3evbvAdRISEtSxY0ebtk6dOmnBggXKysqSu7u7EhISFB0dna/PzJkzHRr3kUce0erVqzVgwAAFBgZq69at+vHHH29quhcAAABwp7MrWERERCgtLU1Vq1ZVREREof0sFotycnLsGvj06dPKycnJd4cpPz8/paWlFbhOWlpagf2zs7N1+vRpBQQEFNonb5v2jjtr1iwNHjxY1apVk5ubm1xcXPThhx/qkUceKfQ9XblyRVeuXLG+Tk9PlyTl5uYqNzfXjr1SvCxy2skoAHc4ZxzTAAC3niPHe7uCxbUbLO6/TCwWi81rwzDytd2o//Xt9mzzRn1mzZqlr7/+WqtXr1bNmjW1fft2DR06VAEBAWrfvn2BtU2ZMkUTJ07M137q1Cmbu2jdKjV8CBYASsbJkyedXQIA4BbIyMiwu6/DD8hbvHixIiMj5enpadOemZmpZcuWqV+/fnZtp3LlynJ1dc13duLkyZMFPidDkvz9/Qvs7+bmpkqVKhXZJ2+b9ox76dIlvfbaa1q5cqW6dfu/ecRNmjTRoUOH9I9//KPQYDF27FjFxMRYX6enp6t69eqqUqWKU66xSMkoPKABgBlVq1Z1dgkAgFvAy8vL7r4OB4v+/furc+fO+f5SycjIUP/+/e0OFh4eHgoJCVF8fLx69eplbY+Pj1fPnj0LXKdFixZas2aNTdvGjRsVGhoqd3d3a5/4+Hib6yw2btyo8PBwu8fNyspSVlaWXFxsb5rl6upa5BkbT0/PfIFLklxcXPJt61YwRLAAUDKccUwDANx6jhzvHQ4WhU1VOnbsmMqXL+/QtmJiYhQVFaXQ0FC1aNFC77//vlJSUjRkyBDp6hmA48ePa/HixdLVO0DNnj1bMTExGjx4sBISErRgwQLr3Z4kafjw4WrVqpWmTp2qnj17atWqVfrqq6+0c+dOu8f19fVV69at9eqrr8rb21s1a9bUtm3btHjxYk2fPt3RXQYAAADc8ewOFs2aNZPFYpHFYlG7du3k5vb/V83JyVFycrI6d+7s0OCRkZE6c+aMJk2apNTUVDVq1Ejr1q1TzZo1JUmpqak2z5YICgrSunXrFB0drTlz5igwMFCzZs1Snz59rH3Cw8O1bNkyvf7664qNjVWdOnW0fPlyhYWF2T2uJC1btkxjx47V008/rd9//101a9bU3//+d2v4AAAAAPD/2f0ci7yLkidOnKiRI0eqXLly1mUeHh6qVauW+vTpIw8Pj5KrtpThORYA7lQ8xwIA7g7F/hwLSRo/frwkqVatWoqMjHToQg4AAAAAdzaHr7F49tlnS6YSAAAAAKWWw8HCxcWlyOdM2PuAPAAAAAB3DoeDxYoVK2yCRVZWlg4ePKiPP/64wIfDAQAAALjzORwsIiIi8rU9/vjjatiwoZYvX66BAwcWV20AAAAASolie8JRWFiYvvrqq+LaHAAAAIBSpFiCxaVLl/Tuu++qWrVqxbE5AAAAAKWMw1OhKlSoYHONhWEYysjIUJkyZbRkyZLirg8AAABAKeBwsJg5c6bNaxcXF1WpUkVhYWGqUKFCcdYGAAAAoJTgORYAAAAATHM4WEjS2bNntWDBAiUlJclisahBgwbq37+/KlasWPwVAgAAALjtOXzx9rZt21SrVi3NmjVLZ8+e1e+//65Zs2YpKChI27ZtK5kqAQAAANzWHD5j8dJLLykyMlLz5s2Tq6urdPVp20OHDtVLL72kb7/9tiTqBAAAAHAbc/iMxZEjRzRy5EhrqJAkV1dXxcTE6MiRI8VdHwAAAIBSwOFg0bx5cyUlJeVrT0pKUtOmTYurLgAAAACliF1ToQ4fPmz9/2HDhmn48OH6+eef9dBDD0mSvv76a82ZM0dvvvlmyVUKAAAA4LZlMQzDuFEnFxcXWSwW3airxWJRTk5OcdZXqqWnp6t8+fI6f/68fH19b/n4nd5Ye8vHBHB3+DK2m7NLAADcAo58n7XrjEVycnJx1QYAAADgDmRXsKhZs2bJVwIAAACg1LIrWKxevVpdunSRu7u7Vq9eXWTfHj16FFdtAAAAAEoJu4JFRESE0tLSVLVqVUVERBTaj2ssAAAAgLuTXcEiNze3wP8HAAAAADn6HIusrCy1bdtWP/74Y8lVBAAAAKDUcShYuLu769tvv5XFYim5igAAAACUOg4/ebtfv35asGBByVQDAAAAoFSy6xqLa2VmZurDDz9UfHy8QkNDVbZsWZvl06dPL876AAAAAJQCDgeLb7/9Vs2bN5ckrrUAAAAAIN1MsNiyZUvJVAIAAACg1HL4GosBAwYoIyMjX/uFCxc0YMCA4qoLAAAAQCnicLD4+OOPdenSpXztly5d0uLFi4urLgAAAACliN1TodLT02UYhgzDUEZGhry8vKzLcnJytG7dOlWtWrWk6gQAAABwG7M7WNxzzz2yWCyyWCyqV69evuUWi0UTJ04s7voAAAAAlAJ2B4stW7bIMAw9+uijiouLU8WKFa3LPDw8VLNmTQUGBpZUnQAAAABuY3YHi9atW0uSkpOTVb16dbm4OHx5BgAAAIA7lMO3m61Zs6bOnTunb775RidPnlRubq7N8n79+hVnfQAAAABKAYeDxZo1a/T000/rwoUL8vHxkcVisS6zWCwECwAAAOAu5PB8ppEjR1qfZXHu3DmdPXvW+uf3338vmSoBAAAA3NYcDhbHjx/XsGHDVKZMmZKpCAAAAECp43Cw6NSpk/bt21cy1QAAAAAolRy+xqJbt2569dVX9f3336tx48Zyd3e3Wd6jR4/irA8AAABAKeBwsBg8eLAkadKkSfmWWSwW5eTkFE9lAAAAAEoNh4PF9beXBQAAAACecgcAAADAtJsKFtu2bdNjjz2m++67T3Xr1lWPHj20Y8eO4q8OAAAAQKngcLBYsmSJ2rdvrzJlymjYsGF6+eWX5e3trXbt2ulf//pXyVQJAAAA4Lbm8DUWf//73zVt2jRFR0db24YPH67p06frjTfe0FNPPVXcNQIAAAC4zTl8xuKXX37RY489lq+9R48eSk5OLq66AAAAAJQiDgeL6tWra9OmTfnaN23apOrVqxdXXQAAAABKEYenQo0cOVLDhg3ToUOHFB4eLovFop07d2rRokV65513SqZKAAAAALc1h4PFiy++KH9/f7399tv69NNPJUkNGjTQ8uXL1bNnz5KoEQAAAMBtzuFgIUm9evVSr169ir8aAAAAAKWS3ddYnD17Vu+++67S09PzLTt//nyhywAAAADc+ewOFrNnz9b27dvl6+ubb1n58uW1Y8cOvfvuu8VdHwAAAIBSwO5gERcXpyFDhhS6/IUXXtBnn31WXHUBAAAAKEXsDhZHjhxR3bp1C11et25dHTlypLjqAgAAAFCK2B0sXF1ddeLEiUKXnzhxQi4uDj8WAwAAAMAdwO4k0KxZM33++eeFLl+5cqWaNWvmcAFz585VUFCQvLy8FBISoh07dhTZf9u2bQoJCZGXl5dq166t+fPn5+sTFxen4OBgeXp6Kjg4WCtXrrypcZOSktSjRw+VL19ePj4+euihh5SSkuLwewQAAADudHYHi5dffllvv/22Zs+erZycHGt7Tk6O3n33Xc2YMUMvvfSSQ4MvX75cI0aM0Lhx43Tw4EG1bNlSXbp0KfTLe3Jysrp27aqWLVvq4MGDeu211zRs2DDFxcVZ+yQkJCgyMlJRUVFKTExUVFSU+vbtqz179jg07pEjR/TII4/o/vvv19atW5WYmKjY2Fh5eXk59B4BAACAu4HFMAzD3s7jxo3TlClT5OPjo9q1a8tisejIkSP6448/9Oqrr+rNN990aPCwsDA1b95c8+bNs7Y1aNBAERERmjJlSr7+o0eP1urVq5WUlGRtGzJkiBITE5WQkCBJioyMVHp6utavX2/t07lzZ1WoUEFLly61e9wnnnhC7u7u+uc//+nQe7pWenq6ypcvr/Pnzxd4N62S1umNtbd8TAB3hy9juzm7BADALeDI91mHHpD397//XT179tQnn3yin3/+WYZhqFWrVnrqqaf04IMPOlRkZmam9u/frzFjxti0d+zYUbt37y5wnYSEBHXs2NGmrVOnTlqwYIGysrLk7u6uhIQERUdH5+szc+ZMu8fNzc3V2rVrNWrUKHXq1EkHDx5UUFCQxo4dq4iIiELf05UrV3TlyhXr67zneuTm5io3N9fOPVN8LLI7MwKAQ5xxTAMA3HqOHO8dfvL2gw8+6HCIKMjp06eVk5MjPz8/m3Y/Pz+lpaUVuE5aWlqB/bOzs3X69GkFBAQU2idvm/aMe/LkSf3xxx9688039be//U1Tp07Vhg0b1Lt3b23ZskWtW7cusL4pU6Zo4sSJ+dpPnTqly5cv27VfilMNH4IFgJJx8uRJZ5cAALgFMjIy7O7rcLAobhaLxea1YRj52m7U//p2e7ZZVJ+8ZNazZ0/r2Y+mTZtq9+7dmj9/fqHBYuzYsYqJibG+Tk9PV/Xq1VWlShWnTIVKySh8PwKAGVWrVnV2CQCAW8CR64udFiwqV64sV1fXfGcnTp48me9sQh5/f/8C+7u5ualSpUpF9snbpj3jVq5cWW5ubgoODrbp06BBA+3cubPQ9+Tp6SlPT8987S4uLk65Fa8hggWAksHtxQHg7uDI8d5pfzN4eHgoJCRE8fHxNu3x8fEKDw8vcJ0WLVrk679x40aFhobK3d29yD5527RnXA8PD/3pT3/SDz/8YNPnxx9/VM2aNW/6PQMAAAB3KqdOhYqJiVFUVJRCQ0PVokULvf/++0pJSdGQIUOkq1OLjh8/rsWLF0tX7wA1e/ZsxcTEaPDgwUpISNCCBQusd3uSpOHDh6tVq1aaOnWqevbsqVWrVumrr76yOdNwo3El6dVXX1VkZKRatWqltm3basOGDVqzZo22bt16S/cRAAAAUBrcVLDIzs7W1q1bdeTIET311FPy8fHRiRMn5Ovrq3Llytm9ncjISJ05c0aTJk1SamqqGjVqpHXr1lnPCqSmpto8WyIoKEjr1q1TdHS05syZo8DAQM2aNUt9+vSx9gkPD9eyZcv0+uuvKzY2VnXq1NHy5csVFhZm97iS1KtXL82fP19TpkzRsGHDVL9+fcXFxemRRx65mV0GAAAA3NEceo6FJB09elSdO3dWSkqKrly5oh9//FG1a9fWiBEjdPny5QKfhH234jkWAO5UPMcCAO4Ojnyfdfgai+HDhys0NFRnz56Vt7e3tb1Xr17atGnTzVUMAAAAoFRzeCrUzp07tWvXLnl4eNi016xZU8ePHy/O2gAAAACUEg6fscjNzVVOTk6+9mPHjsnHx6e46gIAAABQijgcLDp06KCZM2daX1ssFv3xxx8aP368unbtWtz1AQAAACgFHJ4KNWPGDLVt21bBwcG6fPmynnrqKf3000+qXLmyzW1fAQAAANw9HA4WgYGBOnTokJYtW6b9+/crNzdXAwcO1NNPP21zMTcAAACAu8dNPcfC29tb/fv3V//+/Yu/IgAAAACljsPXWEyZMkUfffRRvvaPPvpIU6dOLa66AAAAAJQiDgeL9957T/fff3++9oYNG/JwPAAAAOAu5XCwSEtLU0BAQL72KlWqKDU1tbjqAgAAAFCKOBwsqlevrl27duVr37VrlwIDA4urLgAAAACliMMXbw8aNEgjRoxQVlaWHn30UUnSpk2bNGrUKI0cObIkagQAAABwm3M4WIwaNUq///67hg4dqszMTEmSl5eXRo8erbFjx5ZEjQAAAABucw4HC4vFoqlTpyo2NlZJSUny9vZW3bp15enpWTIVAgAAALjt3dRzLCSpXLly+tOf/lS81QAAAAAolRwOFhcuXNCbb76pTZs26eTJk8rNzbVZ/ssvvxRnfQAAAABKgZu6eHvbtm2KiopSQECALBZLyVQGAAAAoNRwOFisX79ea9eu1cMPP1wyFQEAAAAodRx+jkWFChVUsWLFkqkGAAAAQKnkcLB444039Ne//lUXL14smYoAAAAAlDoOT4V6++23deTIEfn5+alWrVpyd3e3WX7gwIHirA8AAABAKeBwsIiIiCiZSgAAAACUWg4Hi/Hjx5dMJQAAAABKLYevsQAAAACA6zl8xiInJ0czZszQp59+qpSUFGVmZtos//3334uzPgAAAAClgMNnLCZOnKjp06erb9++On/+vGJiYtS7d2+5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c9q5c6emTp2qtm3bqmbNmnrwwQc1duxYdevWTQMGDFD37t1t1snOzpa/v78++ugjSdJnn32mxo0by9vbW5UqVVL79u114cIFTZgwQR9//LFWrVoli8Uii8WirVu3SpKOHz+uyMhIVahQQZUqVVLPnj3166+/WsfI+5e+yZMny8/PT/fcc48mTpyo7Oxsvfrqq6pYsaKqVatmrSHP6NGjVa9ePZUpU0a1a9dWbGyssrKypKv/SjZx4kQlJiZa61m0aJFUwFSoY8eO6YknnlDFihVVtmxZhYaGas+ePSX4SQC4k124cEH9+vVTuXLlFBAQoLfffjtfn+unAqWkpKhnz54qV66cfH191bdvX/3222/W5YmJiWrbtq18fHzk6+urkJAQ7du3TxcuXJCvr68+++wzm+2vWbNGZcuWVUZGhn799VdZLBatWLFCbdu2VZkyZfTAAw/kO1O9a9cutW7dWmXKlFGFChXUqVMnnT17Vro6levll19WTEyMKleurA4dOkiSpk+frsaNG6ts2bKqXr26hg4dqj/++EOStHXrVvXv31/nz5+3HocnTJhQ4Ps/d+6cnn/+efn5+cnLy0uNGjXSF198UUyfCO50BAvACcqVK6dy5crp888/15UrV/ItHzRokDZs2KDU1FRr27p16/THH3+ob9++Sk1N1ZNPPqkBAwYoKSlJW7duVe/evWUYhl555RX17dtXnTt3VmpqqlJTUxUeHq6LFy+qbdu2KleunLZv366dO3eqXLly6ty5szIzM63jbN68WSdOnND27ds1ffp0TZgwQd27d1eFChW0Z88eDRkyREOGDNH//vc/6zo+Pj5atGiRvv/+e73zzjv64IMPNGPGDOnqAylHjhyphg0bWuuJjIzM957/+OMPtW7dWidOnNDq1auVmJioUaNGKTc3twQ+AQB3g1dffVVbtmzRypUrtXHjRm3dulX79+8vtL9hGIqIiNDvv/+ubdu2KT4+XkeOHLE5Zj399NOqVq2a9u7dq/3792vMmDFyd3dX2bJl9cQTT2jhwoU221y4cKEef/xxmwfsjhs3Tq+88ooOHTqkevXq6cknn1R2drYk6dChQ2rXrp0aNmyohIQE7dy5U4899phycnKs63/88cdyc3PTrl279N5770mSXFxcNGvWLH377bf6+OOPtXnzZo0aNUq6+vDgmTNnytfX13ocfuWVV/K9/9zcXHXp0kW7d+/WkiVL9P333+vNN9+Uq6urqc8BdxEDgFN89tlnRoUKFQwvLy8jPDzcGDt2rJGYmGhdHhwcbEydOtX6OiIiwnjuuecMwzCM/fv3G5KMX3/9tcBtP/vss0bPnj1t2hYsWGDUr1/fyM3NtbZduXLF8Pb2Nr788kvrejVr1jRycnKsferXr2+0bNnS+jo7O9soW7assXTp0kLf27Rp04yQkBDr6/HjxxsPPPBAvn6SjJUrVxqGYRjvvfee4ePjY5w5c6bQ7QLAjeQd/zIyMgwPDw9j2bJl1mVnzpwxvL29jeHDh1vbatasacyYMcMwDMPYuHGj4erqaqSkpFiXf/fdd4Yk45tvvjEMwzB8fHyMRYsWFTj2nj17DFdXV+P48eOGYRjGqVOnDHd3d2Pr1q2GYRhGcnKyIcn48MMP820/KSnJMAzDePLJJ42HH3640PfXunVro2nTpjfcD59++qlRqVIl6+uFCxca5cuXz9fv2vf/5ZdfGi4uLsYPP/xww+0DBeGMBeAkffr0sf7rfKdOnbR161Y1b97cOk1o0KBB1n/5OnnypNauXasBAwZIkh544AG1a9dOjRs31p///Gd98MEH1tPkhdm/f79+/vln+fj4WM+YVKxYUZcvX9aRI0es/Ro2bCgXl/9/aPDz81Pjxo2tr11dXVWpUiWdPHnS2vbZZ5/pkUcekb+/v8qVK6fY2FilpKQ4tD8OHTqkZs2aqWLFig6tBwAFOXLkiDIzM9WiRQtrW8WKFVW/fv1C10lKSlL16tVVvXp1a1twcLDuueceJSUlSZJiYmI0aNAgtW/fXm+++abN8fPBBx9Uw4YNtXjxYknSP//5T9WoUUOtWrWyGadJkybW/w8ICJCuHud1zRmLooSGhuZr27Jlizp06KB7771XPj4+6tevn86cOaMLFy4Uua1rHTp0SNWqVVO9evXsXge4FsECcCIvLy916NBBf/3rX7V7924999xzGj9+vCSpX79++uWXX5SQkKAlS5aoVq1aatmypXT1y318fLzWr1+v4OBgvfvuu6pfv76Sk5MLHSs3N1chISE6dOiQzZ8ff/xRTz31lLWfu7u7zXoWi6XAtrwpSl9//bWeeOIJdenSRV988YUOHjyocePG2Uyvsoe3t7dD/QGgKP93UtTxdSwWS5HtEyZM0Hfffadu3bpp8+bNCg4O1sqVK619r/1HoYULF6p///75tnntMTVvWd4x1Z5jYdmyZW1eHz16VF27dlWjRo0UFxen/fv3a86cOZJkvd7NHhyHYRbBAriNBAcHW/91qVKlSoqIiNDChQutfzldy2Kx6OGHH9bEiRN18OBBeXh4WP9y8/DwsJmPK0nNmzfXTz/9pKpVq+q+++6z+VO+fPmbrnnXrl2qWbOmxo0bp9DQUNWtW1dHjx616VNQPddr0qSJDh06dFfdFQtAybnvvvvk7u6ur7/+2tp29uxZ/fjjj4WuExwcrJSUFJtryL7//nudP39eDRo0sLbVq1dP0dHR2rhxo3r37m1zXcUzzzyjlJQUzZo1S999952effZZh+pu0qSJNm3a5NA6+/btU3Z2tt5++2099NBDqlevnk6cOGHTx97j8LFjx4rcR0BRCBaAE5w5c0aPPvqolixZosOHDys5OVn//ve/NW3aNPXs2dPab9CgQfr444+VlJRk85fTnj17NHnyZO3bt08pKSlasWKFTp06Zf2Lr1atWjp8+LB++OEHnT59WllZWXr66adVuXJl9ezZUzt27FBycrK2bdum4cOH69ixYzf9Xu677z6lpKRo2bJlOnLkiGbNmmXzr3d59SQnJ+vQoUM6ffp0gResP/nkk/L391dERIR27dqlX375RXFxccXyXA8Ad59y5cpp4MCBevXVV7Vp0yZ9++23eu6552ymel6vffv2atKkiZ5++mkdOHBA33zzjfr166fWrVsrNDRUly5d0ssvv6ytW7fq6NGj2rVrl/bu3WsTOipUqKDevXvr1VdfVceOHVWtWjWH6h47dqz27t2roUOH6vDhw/rvf/+refPm6fTp04WuU6dOHWVnZ+vdd9/VL7/8on/+85+aP3++TZ9atWrpjz/+0KZNm3T69GldvHgx33Zat26tVq1aqU+fPoqPj1dycrLWr1+vDRs2OPQecPciWABOUK5cOYWFhWnGjBlq1aqVGjVqpNjYWA0ePFizZ8+29mvfvr0CAgLUqVMnBQYGWtt9fX21fft2de3aVfXq1dPrr7+ut99+2/qwucGDB6t+/foKDQ1VlSpVtGvXLpUpU0bbt29XjRo11Lt3bzVo0EADBgzQpUuX5Ovre9PvpWfPnoqOjtbLL7+spk2bavfu3YqNjbXp06dPH3Xu3Flt27ZVlSpVtHTp0nzb8fDw0MaNG1W1alV17dpVjRs35m4kAEx566231KpVK/Xo0UPt27fXI488opCQkEL7590Cu0KFCmrVqpXat2+v2rVra/ny5dLVaahnzpxRv379VK9ePfXt21ddunTRxIkTbbYzcOBAZWZmWq+Lc0S9evW0ceNGJSYm6sEHH1SLFi20atUqubkV/uixpk2bavr06Zo6daoaNWqkTz75RFOmTLHpEx4eriFDhigyMlJVqlTRtGnTCtxWXFyc/vSnP+nJJ59UcHCwRo0adcMzHUAei3EzkxAB3BIXL15UYGCgPvroI/Xu3dvZ5QAA7PDJJ59o+PDhOnHihKmH1wGlDU/eBm5Dubm5SktL09tvv63y5curR48ezi4JAHADFy9eVHJysqZMmaIXXniBUIG7DlOhgNtQSkqK7r33Xn366af66KOPijwFDgC4PUybNk1NmzaVn5+fxo4d6+xygFuOqVAAAAAATOOMBQAAAADTCBYAAAAATCNYAAAAADCNYAEAAADANIIFAAAAANMIFgAAAABMI1gAAAAAMI1gAQAAAMA0ggUAAAAA0/4fS1tZQXeu9rcAAAAASUVORK5CYII=",
|
|
"text/plain": [
|
|
"<Figure size 800x500 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"\"\"\"\n",
|
|
"==================================\n",
|
|
"Variance decomposition using top-k PCs as factors\n",
|
|
"==================================\n",
|
|
"\"\"\"\n",
|
|
"# Align weights to PCA tickers\n",
|
|
"pca_tickers = pca_result['tickers']\n",
|
|
"w_aligned = w.reindex(pca_tickers).fillna(0).values\n",
|
|
"\n",
|
|
"cov = pca_result['cov']\n",
|
|
"eigenvalues = pca_result['eigenvalues']\n",
|
|
"eigenvectors = pca_result['eigenvectors']\n",
|
|
"\n",
|
|
"k = n_signal # Number of signal PCs\n",
|
|
"print(f\"Using top {k} PCs as statistical factors\")\n",
|
|
"\n",
|
|
"# Factor loadings: B = eigenvectors (N x k)\n",
|
|
"B = eigenvectors[:, :k]\n",
|
|
"\n",
|
|
"# Factor covariance: diagonal matrix of top-k eigenvalues\n",
|
|
"Sigma_f = np.diag(eigenvalues[:k])\n",
|
|
"\n",
|
|
"# Idiosyncratic variance: residual variance per stock\n",
|
|
"# D = diag(Sigma - B Sigma_f B^T)\n",
|
|
"Sigma_factor = B @ Sigma_f @ B.T\n",
|
|
"\n",
|
|
"# Portfolio variance\n",
|
|
"total_var = w_aligned @ cov @ w_aligned\n",
|
|
"systematic_var = w_aligned @ Sigma_factor @ w_aligned\n",
|
|
"# Idiosyncratic = variance in the orthogonal complement of the top-k factor\n",
|
|
"# subspace. Equals total - systematic by construction, so the split sums to 100%.\n",
|
|
"idiosyncratic_var = total_var - systematic_var\n",
|
|
"\n",
|
|
"print(f\"\\n### Portfolio Variance Decomposition\\n\")\n",
|
|
"print(f\"Total portfolio variance: {total_var:.6f}\")\n",
|
|
"print(f\"Systematic (factor) variance: {systematic_var:.6f} ({systematic_var/total_var*100:.1f}%)\")\n",
|
|
"print(f\"Idiosyncratic variance: {idiosyncratic_var:.6f} ({idiosyncratic_var/total_var*100:.1f}%)\")\n",
|
|
"\n",
|
|
"# Plot\n",
|
|
"fig, ax = plt.subplots(figsize=(8, 5))\n",
|
|
"ax.bar(['Systematic', 'Idiosyncratic'], [systematic_var, idiosyncratic_var], \n",
|
|
" color=['steelblue', 'coral'])\n",
|
|
"ax.set_ylabel('Variance Contribution')\n",
|
|
"ax.set_title(f'Portfolio Variance Decomposition (Top {k} PCs)')\n",
|
|
"ax.grid(alpha=0.3, axis='y')\n",
|
|
"\n",
|
|
"plt.tight_layout()\n",
|
|
"plt.savefig('../images/05_risk_decomposition/variance_decomposition.png', dpi=150, bbox_inches='tight')\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"id": "3b1f2340",
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2026-07-31T11:09:13.340816Z",
|
|
"iopub.status.busy": "2026-07-31T11:09:13.340640Z",
|
|
"iopub.status.idle": "2026-07-31T11:09:13.685130Z",
|
|
"shell.execute_reply": "2026-07-31T11:09:13.684539Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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",
|
|
"text/plain": [
|
|
"<Figure size 800x500 with 2 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<div>\n",
|
|
"<style scoped>\n",
|
|
" .dataframe tbody tr th:only-of-type {\n",
|
|
" vertical-align: middle;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe tbody tr th {\n",
|
|
" vertical-align: top;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe thead th {\n",
|
|
" text-align: right;\n",
|
|
" }\n",
|
|
"</style>\n",
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
" <thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>Mkt-RF</th>\n",
|
|
" <th>SMB</th>\n",
|
|
" <th>HML</th>\n",
|
|
" <th>Mom</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>PC1</th>\n",
|
|
" <td>0.957</td>\n",
|
|
" <td>0.407</td>\n",
|
|
" <td>0.292</td>\n",
|
|
" <td>-0.493</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>PC2</th>\n",
|
|
" <td>-0.155</td>\n",
|
|
" <td>-0.022</td>\n",
|
|
" <td>0.646</td>\n",
|
|
" <td>-0.366</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>PC3</th>\n",
|
|
" <td>0.031</td>\n",
|
|
" <td>0.104</td>\n",
|
|
" <td>0.085</td>\n",
|
|
" <td>0.004</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>PC4</th>\n",
|
|
" <td>-0.059</td>\n",
|
|
" <td>0.221</td>\n",
|
|
" <td>-0.134</td>\n",
|
|
" <td>-0.288</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>PC5</th>\n",
|
|
" <td>-0.052</td>\n",
|
|
" <td>-0.012</td>\n",
|
|
" <td>-0.286</td>\n",
|
|
" <td>-0.048</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" Mkt-RF SMB HML Mom\n",
|
|
"PC1 0.957 0.407 0.292 -0.493\n",
|
|
"PC2 -0.155 -0.022 0.646 -0.366\n",
|
|
"PC3 0.031 0.104 0.085 0.004\n",
|
|
"PC4 -0.059 0.221 -0.134 -0.288\n",
|
|
"PC5 -0.052 -0.012 -0.286 -0.048"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"\"\"\"\n",
|
|
"==================================\n",
|
|
"Compare statistical factors to known FF factors\n",
|
|
"==================================\n",
|
|
"\"\"\"\n",
|
|
"df_ff = pd.read_csv('../data/raw/ff_factors.csv', index_col=0, parse_dates=True)\n",
|
|
"\n",
|
|
"# Project top PCs onto FF factor returns\n",
|
|
"# Align dates: df_returns has month-end, df_ff has month-start\n",
|
|
"# Convert to month-end timestamps, then normalize midnight for exact matching\n",
|
|
"common_dates = df_returns.index.to_period('M').intersection(\n",
|
|
" df_ff.index.to_period('M')\n",
|
|
").to_timestamp(how='end').normalize()\n",
|
|
"df_ret_aligned = df_returns.loc[common_dates, pca_tickers].dropna()\n",
|
|
"df_ff_aligned = df_ff.copy()\n",
|
|
"df_ff_aligned.index = df_ff_aligned.index.to_period('M').to_timestamp(how='end').normalize()\n",
|
|
"df_ff_aligned = df_ff_aligned.loc[df_ret_aligned.index]\n",
|
|
"\n",
|
|
"# Compute PC returns: PC_i = eigenvector_i^T @ returns\n",
|
|
"pc_returns = pd.DataFrame(\n",
|
|
" df_ret_aligned.values @ eigenvectors[:, :5],\n",
|
|
" index=df_ret_aligned.index,\n",
|
|
" columns=[f'PC{i+1}' for i in range(5)]\n",
|
|
")\n",
|
|
"\n",
|
|
"# Correlate PCs with FF factors\n",
|
|
"factor_cols = ['Mkt-RF', 'SMB', 'HML', 'Mom']\n",
|
|
"df_corr = pd.DataFrame(index=[f'PC{i+1}' for i in range(5)], columns=factor_cols)\n",
|
|
"\n",
|
|
"for pc in pc_returns.columns:\n",
|
|
" for ff in factor_cols:\n",
|
|
" mask = pc_returns[pc].notna() & df_ff_aligned[ff].notna()\n",
|
|
" df_corr.loc[pc, ff] = pc_returns.loc[mask, pc].corr(df_ff_aligned.loc[mask, ff])\n",
|
|
"\n",
|
|
"df_corr = df_corr.astype(float)\n",
|
|
"\n",
|
|
"fig, ax = plt.subplots(figsize=(8, 5))\n",
|
|
"sns.heatmap(df_corr, annot=True, fmt='.2f', cmap='RdBu_r', center=0, ax=ax, square=True)\n",
|
|
"ax.set_title('Correlation: Statistical PCs vs. Fama-French Factors')\n",
|
|
"\n",
|
|
"plt.tight_layout()\n",
|
|
"plt.savefig('../images/05_risk_decomposition/pc_vs_ff_correlation.png', dpi=150, bbox_inches='tight')\n",
|
|
"plt.show()\n",
|
|
"\n",
|
|
"display(df_corr.round(3))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 11,
|
|
"id": "2566bdea",
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2026-07-31T11:09:13.686923Z",
|
|
"iopub.status.busy": "2026-07-31T11:09:13.686718Z",
|
|
"iopub.status.idle": "2026-07-31T11:09:13.693767Z",
|
|
"shell.execute_reply": "2026-07-31T11:09:13.693164Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Saved:\n",
|
|
" - variance_decomposition.csv\n",
|
|
" - pca_spectrum.csv\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"\"\"\"\n",
|
|
"==================================\n",
|
|
"Save risk decomposition results\n",
|
|
"==================================\n",
|
|
"\"\"\"\n",
|
|
"decomp_results = pd.DataFrame({\n",
|
|
" 'component': ['total', 'systematic', 'idiosyncratic'],\n",
|
|
" 'variance': [total_var, systematic_var, idiosyncratic_var],\n",
|
|
" 'pct': [100, systematic_var/total_var*100, idiosyncratic_var/total_var*100]\n",
|
|
"})\n",
|
|
"decomp_results.to_csv('../data/processed/variance_decomposition.csv', index=False)\n",
|
|
"\n",
|
|
"pd.DataFrame({\n",
|
|
" 'eigenvalue': eigenvalues[:50],\n",
|
|
" 'explained_pct': pca_result['explained_ratio'][:50] * 100\n",
|
|
"}).to_csv('../data/processed/pca_spectrum.csv', index=False)\n",
|
|
"\n",
|
|
"print(\"Saved:\")\n",
|
|
"print(\" - variance_decomposition.csv\")\n",
|
|
"print(\" - pca_spectrum.csv\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "edf65c16",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Conclusion\n",
|
|
"\n",
|
|
"This notebook decomposes the risk of the long-only momentum portfolio.\n",
|
|
"\n",
|
|
"- The Marchenko-Pastur cutoff gives an objective estimate of how many covariance eigenvalues are too large to dismiss as random-matrix noise.\n",
|
|
"- Ledoit-Wolf shrinkage shows why the raw sample covariance should be treated cautiously when $N$ is large relative to $T$.\n",
|
|
"- The portfolio variance decomposition shows that most of the long-only portfolio's risk lives in common PCA directions rather than purely stock-specific residual risk.\n",
|
|
"\n",
|
|
"One wording caveat: the Fama-French alpha from notebook 04 is orthogonal to the Fama-French benchmark factors, not literally to these PCA directions. The two ideas are related because both are factor decompositions, but they are not the same basis.\n",
|
|
"\n",
|
|
"Notebook 06 uses the PCA factor structure to generate alternate market histories and ask whether the observed alpha looks unusually lucky."
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": ".venv",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.14.6"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|