{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# ARCH模型"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 原理讲解"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 产生背景\n",
    "\n",
    "通常认为,横截面数据容易存在异方差,而时间序列数据常存在自相关。然而,Engle(1982)指出,时间序列数据也常存在一种特殊的异方差,即“自回归条件异方差”(Autoregressive Conditional Heteroskedasticity,简记 ARCH)Bollerslev(1986)对 ARCH 进行了推广,称为“ Generalized ARCH“,简记 GARCH\n",
    "考察美国道琼斯股指在1953—1990年期间日收益率的波动,参见下图\n",
    "\n",
    "<div align=center><img src=\"https://gitee.com/lei940324/picture/raw/master/img/2020/0516/231510.png\" width=\"499\" ></div>\n",
    "\n",
    "从图可以看出,股指日收益率在某一段时间内剧烈波动,而在另一段时间内风平浪静。从理论上,这可以抽象为,当本期或过去若干期的波动(方差)较大时,未来几期的波动(方差)很可能也较大;反之亦然。换言之,方差大的观测值似乎集聚在一起,而方差小的观测值似乎也集聚在一起。这被称为“波动性集聚“( volatility clustering)或“扎堆“。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### ARCH 模型的性质\n",
    "\n",
    "考虑一般的线性回归模型:\n",
    "\n",
    "$$y_{t}=x_{t}^{\\prime} \\boldsymbol{\\beta}+\\varepsilon_{t}\\tag{1}$$\n",
    "\n",
    "记扰动项 $\\varepsilon_{t}$ 的条件方差为$\\sigma_{t}^{2} \\equiv \\operatorname{Var}\\left(\\varepsilon_{t} | \\varepsilon_{t-1}, \\cdots\\right)$,其中 $\\sigma_{t}^{2}$ 的下标 $t$ 表示条件方差可以随时间而变。受到波动性集聚现象的启发,假设 $\\sigma_{t}^{2}$ 取决于上一期扰动项之平方:\n",
    "\n",
    "$$\\sigma_{t}^{2}=\\alpha_{0}+\\alpha_{1} \\varepsilon_{t-1}^{2}\\tag{2}$$\n",
    "\n",
    "这就是“ ARCH(1)扰动项”。更一般地,假设 $\\sigma_{t}^{2}$ 依赖于前 $p$ 期扰动项之平方:\n",
    "\n",
    "$$\\sigma_{t}^{2}=\\alpha_{0}+\\alpha_{1} \\varepsilon_{t-1}^{2}+\\cdots+\\alpha_{p} \\varepsilon_{t-p}^{2}\\tag{3}$$\n",
    "\n",
    "就是“ ARCH(p)扰动项”。不失一般性,以 ARCH(1)扰动项为例,来考察 ARCH 扰动项的性质。假设扰动项 $\\varepsilon_{t}^{2}$ 的生成过程为:\n",
    "\n",
    "$$\\varepsilon_{t}=v_{t} \\sqrt{\\alpha_{0}+\\alpha_{1} \\varepsilon_{t-1}^{2}}\\tag{4}$$\n",
    "\n",
    "其中,$v_{t}$ 为白噪声,并将其方差标准化为 1,即 $\\operatorname{Var}\\left(v_{t}\\right)=\\mathrm{E}\\left(v_{t}^{2}\\right)=1$。假定 $v_{t}$ 与$\\epsilon _ { t - 1 }$相互独立,而且$\\alpha _ { 0 } > 0$,$0 < \\alpha _ { 1 } < 1$(为了保证 $\\sigma_{t}^{2}$ 为正,且 {$\\varepsilon_{t}^{2}$} 为平稳过程)。序列 {$\\varepsilon_{t}^{2}$} 具有怎样的性质呢?下面我们来考察其条件期望、无条件期望、条件方差、无条件方差及序列相关。\n",
    "\n",
    "由于 $v _ { t }$ 与 $\\epsilon _ { t - 1 }$ 相互独立,$\\epsilon_t$ 的条件期望为 $\\operatorname{Var}\\left(\\varepsilon_{t} | \\varepsilon_{t-1}\\right)=\\alpha_{0}+\\alpha_{1} \\varepsilon_{t-1}^{2}$\n",
    "\n",
    "扰动项 $\\epsilon _ { t }$ 完全满足古典模型关于\"同方差\"与\"无自相关\"的假定。事实上,虽然 $\\epsilon _ { t }$ 存在条件异方差,却是白噪声!因此,高斯-马尔可夫定理成立,OLS 是最佳线性无偏估计( BLUE)。然而,OLS 显然忽略了条件异方差这一重要信息。如果我们跳出线性估计的范围,则可以找到更优的非线性估计,即最大似然估计。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### ARCH 模型的 MLE 估计\n",
    "考虑在 $\\varepsilon_{1}$ 给定情况下的条件最大似然估计法。假设 $\\varepsilon_{t} \\sim N\\left(0, \\sigma_{t}^{2}\\right),$ 而 $\\sigma_{t}^{2}=\\alpha_{0}+\\alpha_{1} \\varepsilon_{t-1}^{2},$ 可得似然函数:\n",
    "\n",
    "$$L=\\prod_{t=2}^{T} \\frac{1}{\\sqrt{2 \\pi\\left(\\alpha_{0}+\\alpha_{1} \\varepsilon_{t-1}^{2}\\right)}} \\exp \\left\\{-\\frac{\\varepsilon_{t}^{2}}{2\\left(\\alpha_{0}+\\alpha_{1} \\varepsilon_{t-1}^{2}\\right)}\\right\\}\\tag{5}$$\n",
    "\n",
    "$$\\ln L=-\\frac{T-1}{2} \\ln 2 \\pi-\\frac{1}{2} \\sum_{t=2}^{T} \\ln \\left(\\alpha_{0}+\\alpha_{1} \\varepsilon_{t-1}^{2}\\right)-\\frac{1}{2} \\sum_{t=2}^{T} \\frac{\\varepsilon_{1}^{2}}{\\alpha_{0}+\\alpha_{1} \\varepsilon_{t-1}^{2}}\\tag{6}$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### arch 检验\n",
    "残差平方的自回归模型"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## arch 模块实现\n",
    "arch 模块是一个计算波动率模型和其他金融计量模型的 python 第三方库\n",
    "\n",
    "参考网址:[Introduction to ARCH Models](https://arch.readthedocs.io/en/latest/univariate/introduction.html#arch.univariate.arch_model)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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lqd5l13s63veE5/GRlOL437Pe9J/m89x+4Q7thE0lmodN2CHpocW6M5LvRx3X18yLXKj6EjhbqbjLpKsPuBpw7nzkOW4s86xfHl1faJDwu27QeSJcbtCN2OGXfBivfXi09hoigiVSB5+GDj2WBu+y3LcfM6iHXd3dzJlcFFzulTDttva13otI8YzXbascBPReABXA+gGsAzAocaYHLP51he34teaoe5cIY2iGuHOcsO33549w2GoISg2xl1thW+E43ZpZdEGiulVItlxR9tLI0a46xUqAazpWb68seLGTJtmuxfWswdRSws3gMMB/NAYczsRXQJgBoDfF5+s2ug0xx16xIudLQ6wo/Cy4IE97kr19Y5x88rZTFEx7rQ1JVudtBh3teVZdn/kMjychBuof7fPY46x4Z1GUVURMMZcLP6dBOC1YpNTDPXqVdKsGHejQiVc8F5+uXx7I7sDAvV13K2OFFkX37weMcgBR+y4+emrkcItz9FpnH56Y8+XWgSI6FIAsu39LmPMWUS0C4CJxpgH6pq6nBTtuJvVOJnluItunHzHO+xro4SbXVCRvUraXbg5/WmOe7/9qjumvBk0M1TCaVBqJ1XSjDEnuNuIaE0AFwH4ROU3/r3P8QCOB4ApsetmFUi9QiWNjnE32nGvuaadp+SrXy3fXi/h5rlCYhon8/TjbkfhTnPcI0faVWh4+bFYfI670cLN51XhLoZqGyd7AVwH4OvGmGBnHWPMTAAzAWD69Ol16oQTplNCJY123ER2nhQXnlhqp51qP4fLuHFxoZLh4rjThBsAttmmtmNyXWiW4+7UUEmjqTYbjwGwI4DTiehuIgrM2tFcOqVxMstxV9M4WQv7728XTPj4x4s/Ns8QKKklxv3e9ybv21G400IleZGOm8i630b24wY0VFI01TZOXgLAMyC5teg0x11Ed8BaqVeL+dixwKuvlm/zifP48XZfd+pcly9+0Q602Xnn9hTuLMedBxZuOftjsxx3vcvpcEEH4FRxvGb1444JlbTrI+jYscC//lW+LeS4n38+ez1EImCrrex7FW6LK9x9fc0RbjnHvFIbHSncnTbkvRUcd73gVXAYt1fJXXclE2nFzg9drxGAjaAeoRL3ZtDb25zugBomKY6OFG6Xdg+VFDEAp1XxLQslxWSvvao/JguEOm6LjHED2aGSeuQbO26lGDoyK12hq7XAtGrjZKeESoqmnYW7Ho6b84FfQ8LNIyvrUZZ6e9VxF0lHOu7YFdVjaVXH3SmhkqJpZ+Guh+M+5xy7YASv3NTba+fuACqFux49SgANlRRNRwp37IrqsTSrcZLnDgmtMq2O2w8RcOKJthtju1EP4R4/Hjj77OT/kOM+5phi55OXaKikWDpSuIt23M1qnDzjDLuuolxPUiJj3K7jnj8fWNVy8zZWErop1cpPflKf49abeoRKXELCvcMOyWCropkwwY6SVYqhI4W7Xo670cLd22uXlgqR5rg33LA+aSoa13HXa7L7dqEejtsl1B2wnpx6KnDkkY0513CgI4W7U2LcWWiMu/NolOMeHLTvG1VuJk2yf0oxdGTUqVNi3FlojLvzaITjluW4XW/4w502re7pDBfHnRbjbhfqFeNuV1S4lRg6UriLdtzNapzMQqZHHXdn0KhQoNVPjwAACM9JREFUCaPC3Z60aXVPp1MaJ7Mgav/pMlW4y1HHrcSgjZMRtGqMG7Bx7v7+9q2AoV4l//mfwAc/2PDkNJ1G9Sph2rXcDHdUuCNoVccN2Dj3m292nuO+4orGpqNV0FCJEkObVvd0hpNwc8+Sdq2AI0a059D0eqGhEiWGjhTu4dI4CSSi166OG9A4t0QdtxJDG1f3MOq42wsp3O38O4pAHbcSQ0cK93AZgAN0huPWvtwJKtxKDG1c3cMMJ8fNg3DauQJKxz3c5yrRUIkSQ0cK96abFnu8VhbuTnDcGuNO0O6ASgxtXN3DnHwy8NvfFne8DTe0E8zHrnnYSFS4OwsNlSgxdGQ/7q4uYL/9ijve/vsDCxa0psB0QuOkxrgTNFSixNDGPi2dIgs+UWuKNpDEuNVxdwbquJUY2ri6p9POQlYNneC4VbgrUeFW0uhYeRtuwt3Ov1eFuxIVbiWNNq7u6QyXFaU7wXHLGPdw7w7IqHAraXSscLezA62GTohxb7VVs1PQemh3QCWNXNWdiNYlokeLTkyRtLOQVcPGGwMTJ7ZmH/NY3v9+4Kmnmp2K1kIdt5JGXnk7H8CozL2ayHAJlRx+ODBvXmsOx68GFZByVLiVNKoWbiLaG8AyAAuKT05xDJcC2dXVGY17w+UJKRYVbiWN1AE4RHQpgC3FprsA7AXgIAA3pnzveADHA8CUKVNqT6XS8aiAlKPCraSR6nOMMScYY/bkv9Lmi40xSzK+N9MYM90YM33SpElFpVXpYFhAtFeJRYVbSaPaB9R9AJxIRHcDeBcR/bz4JBXLnns2OwVKDCog5WivEiWNquYqMcbszu+J6G5jzLHFJ6k4XnwRWHPNZqdCiUEFpBx13EoauSeZEqGTlmXy5GanQIlFBaQcFW4lDW3LV1oCFZBy6pkfKtztjwq30hJod8DGocLd/mh1UVoC7VXSOFS42x8VbqUlUAFpHN3dyROO5nt70pEr4CjthwqI5ckngYcfrv95+vqAFSs039sVFW6lJVABsUybZv/qTW+vCnc7o6ESpSVQAWksHOfWfG9PVLiVlkB7lTQWFe72RquL0hJor5LGosLd3qhwKy2BCkhjUeFub1S4lZZABaSxqHC3NyrcSkugAtJYeIZAzff2RIVbaQlUQBqLOu72RoVbaQlUQBqLCnd7o8KttATaq6SxqHC3NyrcSkugAtJYVLjbGxVuRRmGqHC3NyrcijIM0V4l7Y0Kt6IMQ9Rxtzcq3EpLMHIkMHEi8JOfNDslwwMV7vZGp3VVWoLubuCNN5qdiuGDCnd7o45bUYYhKtztjQq3ogxDVLjbGxVuRRmGqHC3NyrcijIM0e6A7Y0Kt6IMQ9Rxtzfaq0RRhiEf/zgwMACMHdvslCh5yOW4iehiIvpI0YlRFKUxbLopcNpp6rjblaqFm4h2A7CeMebmOqRHURRFyaAq4SaiEQB+BuAFIjqwPklSFEVR0kiNcRPRpQC2FJv+DOBJAOcB+AIRTTHGXOT53vEAjgeAKVOmFJdaRVEUJd1xG2NOMMbsyX8AJgGYaYxZAODXAPYKfG+mMWa6MWb6pEmTCk+0oijKcKbaGPczAKaW3k8HMK/Y5CiKoihZVNsd8DIAlxPRYQBGADi4+CQpiqIoaVQl3MaYtwEcUqe0KIqiKBHoyElFUZQ2g0ydl9UmooXIHwtfG8DrBSanSFo5bUyrp7HV0we0fho1fbXTqmnc2Bjj7d1Rd+GuBSKabYyZ3ux0+GjltDGtnsZWTx/Q+mnU9NVOO6TRRUMliqIobYYKt6IoSpvR6sI9s9kJSKGV08a0ehpbPX1A66dR01c77ZDGMlo6xq0oiqJU0uqOW1EURXGoi3AT0Xgi+iMR3UZEvyOiXiK6jIjuJ6JviP3WJaJZ4v+JRHQLEc0uTXCVdo7M47Va+sQxH2219BHR54jo7tLfYxHfb0QaK65nKF8LTuM7iOgPRDSLiH6QcY5mlMOa0ieOWa9ymDt9DSyH1aSxpnJYD+rluA8H8ENjzH4AFgA4DEC3MWYXAFOJaHMimgjgSgCjxfeOAPCbUtecsUTk7aJDRB+PPF7LpE98fD6AUa2WPmPMJWIysVmw0/c2M40V383I1yLTeC6A7xhjdgMwmYj2DKSxWeUwd/rEx/Ush7nT18ByGJvGIsph4dRFuI0xFxtjbi/9OwnApwFcW/r/NgC7AlgN4FAAb4mvLgKwDRFNALARgBcDp9gz8nitlD4Q0d4AlsEWsJZLXymNGwJY1xgzu8lp9H03mO6C07gFgEdK718DMD5wCl96GlEOa0lfI8phTekrpbHe5TA2jTWXw3pQ1zUniWgXABMBvADgpdLmNwDsaIx5q7SP/Mq9AD4E4GQA/wTwBlXOCX4X7N0v5ngtkz4i6gXwTQAHAbix1dInPj8RwCUx6atnGo0xZ3m+m5buItN4PYBvEdEDAGYA+HqLlcPc6WtQOcydPvF5vcthVBqLLIdFUjfhJqI1AVwE4BMATkHyWDYGYaf/LQCfNca8RUSnADjaGHOC59g/ijxeK6XvawAuNsYsianUzcg/IuqCnWP99MwE1jmNAZZGnqOmNBpjvktEuwL4CoArjTFLAbRMOawxfXUvh7XmXyPKYWwaA1RdDoumXo2TvQCuA/B1Y8w8AA8jeZzYHvau6GMigG2JqBvAewGE+irGHq+V0rcPgBOJ6G4A7yKin7dY+gBgNwAPmog+og1IYzXpLjqNAPAYgCkAflhUelokfY0oh7WkD2hMOYxNYzXpbhzGmML/AHwOwGIAd5f+jgLwd9gM+ieA8WLfu8X79wD4B+wd7XYAYwLHHxdzvFZMX0wam5U+AN8D8PFWuMaB76bma1FpLP3/bQBHZBy/KeWwiPTVsxzWmr5GlMPYNBZRDuvx17ABOKXW2X0B3GPs0md6vA46Xr2OWfQ5Wj0f9Xi10w7lsObzN0q4FUVRlGLQkZOKoihthgq3oihKm6HCrSiK0maocCuKorQZKtyKoihthgq3oihKm/H/AQZxPDNUaoYaAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from arch import arch_model\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib\n",
    "import matplotlib.pyplot as plt\n",
    "from pylab import mpl\n",
    "\n",
    "stock = pd.read_excel('../数据/上证指数与沪深300.xlsx')\n",
    "stock['sz收益率'] = 100*np.log(stock['sz']/stock['sz'].shift(1))\n",
    "stock = stock.dropna()   #删除缺失值\n",
    "stock = stock.reset_index(drop=True)\n",
    "\n",
    "# 防止图形中文文字乱码\n",
    "mpl.rcParams['font.sans-serif'] = ['SimHei']   # 以黑体的字体显示中文\n",
    "mpl.rcParams['axes.unicode_minus'] = False   # 解决保存图像是负号'-'显示为方块的问题\n",
    "\n",
    "plt.title('上证指数收益率', fontsize=14)   # 标题,fontsize 为字体大小\n",
    "# 常见线的属性有:color, label, linewidth, linestyle, marker 等\n",
    "pic = plt.plot(stock['日期'], stock['sz收益率'], color='blue')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Iteration:      1,   Func. Count:      6,   Neg. LLF: 730.9983454251976\n",
      "Iteration:      2,   Func. Count:     18,   Neg. LLF: 730.7137756168904\n",
      "Iteration:      3,   Func. Count:     26,   Neg. LLF: 730.4442239825785\n",
      "Iteration:      4,   Func. Count:     34,   Neg. LLF: 730.1517020552867\n",
      "Iteration:      5,   Func. Count:     42,   Neg. LLF: 729.9887862346242\n",
      "Iteration:      6,   Func. Count:     48,   Neg. LLF: 729.8902710737317\n",
      "Iteration:      7,   Func. Count:     54,   Neg. LLF: 729.8799275469953\n",
      "Iteration:      8,   Func. Count:     60,   Neg. LLF: 729.8776654073791\n",
      "Iteration:      9,   Func. Count:     66,   Neg. LLF: 729.876903523455\n",
      "Iteration:     10,   Func. Count:     72,   Neg. LLF: 729.8768999003003\n",
      "Optimization terminated successfully.    (Exit mode 0)\n",
      "            Current function value: 729.8768999003294\n",
      "            Iterations: 10\n",
      "            Function evaluations: 72\n",
      "            Gradient evaluations: 10\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<table class=\"simpletable\">\n",
       "<caption>Constant Mean - GARCH Model Results</caption>\n",
       "<tr>\n",
       "  <th>Dep. Variable:</th>        <td>sz收益率</td>       <th>  R-squared:         </th>  <td>  -0.000</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Mean Model:</th>       <td>Constant Mean</td>   <th>  Adj. R-squared:    </th>  <td>  -0.000</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Vol Model:</th>            <td>GARCH</td>       <th>  Log-Likelihood:    </th> <td>  -729.877</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Distribution:</th>        <td>Normal</td>       <th>  AIC:               </th> <td>   1467.75</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Method:</th>        <td>Maximum Likelihood</td> <th>  BIC:               </th> <td>   1484.27</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th></th>                        <td></td>          <th>  No. Observations:  </th>     <td>459</td>   \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Date:</th>           <td>Thu, Jun 04 2020</td>  <th>  Df Residuals:      </th>     <td>455</td>   \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Time:</th>               <td>09:08:30</td>      <th>  Df Model:          </th>      <td>4</td>    \n",
       "</tr>\n",
       "</table>\n",
       "<table class=\"simpletable\">\n",
       "<caption>Mean Model</caption>\n",
       "<tr>\n",
       "   <td></td>     <th>coef</th>     <th>std err</th>      <th>t</th>       <th>P>|t|</th>    <th>95.0% Conf. Int.</th>  \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>mu</th> <td>   -0.0321</td> <td>5.253e-02</td> <td>   -0.612</td> <td>    0.541</td> <td>[ -0.135,7.082e-02]</td>\n",
       "</tr>\n",
       "</table>\n",
       "<table class=\"simpletable\">\n",
       "<caption>Volatility Model</caption>\n",
       "<tr>\n",
       "      <td></td>        <th>coef</th>     <th>std err</th>      <th>t</th>       <th>P>|t|</th>     <th>95.0% Conf. Int.</th>  \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>omega</th>    <td>    0.0703</td> <td>5.410e-02</td> <td>    1.300</td> <td>    0.194</td> <td>[-3.571e-02,  0.176]</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>alpha[1]</th> <td>    0.0631</td> <td>3.519e-02</td> <td>    1.792</td> <td>7.306e-02</td> <td>[-5.895e-03,  0.132]</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>beta[1]</th>  <td>    0.8921</td> <td>5.544e-02</td> <td>   16.090</td> <td>2.996e-58</td>   <td>[  0.783,  1.001]</td> \n",
       "</tr>\n",
       "</table><br/><br/>Covariance estimator: robust"
      ],
      "text/plain": [
       "<class 'statsmodels.iolib.summary.Summary'>\n",
       "\"\"\"\n",
       "                     Constant Mean - GARCH Model Results                      \n",
       "==============================================================================\n",
       "Dep. Variable:                  sz收益率   R-squared:                      -0.000\n",
       "Mean Model:             Constant Mean   Adj. R-squared:                 -0.000\n",
       "Vol Model:                      GARCH   Log-Likelihood:               -729.877\n",
       "Distribution:                  Normal   AIC:                           1467.75\n",
       "Method:            Maximum Likelihood   BIC:                           1484.27\n",
       "                                        No. Observations:                  459\n",
       "Date:                Thu, Jun 04 2020   Df Residuals:                      455\n",
       "Time:                        09:08:30   Df Model:                            4\n",
       "                                Mean Model                                \n",
       "==========================================================================\n",
       "                 coef    std err          t      P>|t|    95.0% Conf. Int.\n",
       "--------------------------------------------------------------------------\n",
       "mu            -0.0321  5.253e-02     -0.612      0.541 [ -0.135,7.082e-02]\n",
       "                              Volatility Model                             \n",
       "===========================================================================\n",
       "                 coef    std err          t      P>|t|     95.0% Conf. Int.\n",
       "---------------------------------------------------------------------------\n",
       "omega          0.0703  5.410e-02      1.300      0.194 [-3.571e-02,  0.176]\n",
       "alpha[1]       0.0631  3.519e-02      1.792  7.306e-02 [-5.895e-03,  0.132]\n",
       "beta[1]        0.8921  5.544e-02     16.090  2.996e-58    [  0.783,  1.001]\n",
       "===========================================================================\n",
       "\n",
       "Covariance estimator: robust\n",
       "\"\"\""
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model_arch = arch_model(y=stock['sz收益率'], mean='Constant', lags=0, vol='GARCH',p=1,\n",
    "                       o=0, q=1, dist='normal')   # 构建 ARCH(1)模型\n",
    "res = model_arch.fit()\n",
    "res.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "pic = res.plot()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## matlab 实现\n",
    "### fmincon 函数介绍\n",
    "fmincon 是用于求解非线性多元函数最小值的 matlab 函数,优化工具箱提供 fmincon 函数用于对有约束优化问题进行求解。\n",
    "\n",
    "可参考:[百度百科关于 fmincon 函数的介绍](https://baike.baidu.com/item/fmincon/17032570?fr=aladdin)\n",
    "\n",
    "### 代码实现\n",
    "```matlab\n",
    "function archL = arch_model(beta,Y,X)\n",
    "\n",
    "%beta(1)=beta0,beta(2)=a0,beta(3)=a1\n",
    "\n",
    "% 1.均值方程\n",
    "T = length(Y);\n",
    "resid = Y - beta(1)*X;\n",
    "\n",
    "% 2.方差方程\n",
    "sigam1 = -0.5*(T-1)*log(2*pi)-0.5*log(beta(2)/(1-beta(3)))-0.5*resid(1)^2/(beta(2)/(1-beta(3)));\n",
    "for i = 2:T\n",
    "    c1(i-1) = -0.5*log(beta(2)+beta(3)*resid(i-1)^2);\n",
    "end\n",
    "for i = 2:T\n",
    "    c2(i-1) = -0.5*log(resid(i).^2/(beta(2)+beta(3)*resid(i-1)^2));\n",
    "end\n",
    "archL = sigam1-0.5*(T-1)*log(2*pi)+sum(c1)+sum(c2);\n",
    "archL = -archL;\n",
    "\n",
    "% %导入数据\n",
    "% data = xlsread('C:\\Users\\Administrator\\Desktop\\hourse.xlsx');\n",
    "% f1 = data(:,2); f2 = data(:,3); e = data(:,6);\n",
    "% \n",
    "% % 2.初始参数设定\n",
    "% maxsize         = 2000;         % 生成均匀随机数的个数(用于赋初值)\n",
    "% REP\t\t\t    = 100;          % 若发散则继续进行迭代的次数\n",
    "% nInitialVectors    = [maxsize, 2];    % 生成随机数向量\n",
    "% MaxFunEvals    = 5000;         % 函数评价的最大次数\n",
    "% MaxIter         = 5000;         % 允许迭代的最大次数\n",
    "% options = optimset('LargeScale', 'off','HessUpdate', 'dfp','MaxFunEvals', ...\n",
    "% MaxFunEvals, 'display', 'on', 'MaxIter', MaxIter, 'TolFun', 1e-6, 'TolX', 1e-6,'TolCon',10^-12);\n",
    "% \n",
    "% % 3.寻找最优初值\n",
    "% initialTargetVectors = [unifrnd(0,10, nInitialVectors),unifrnd(0,1,[maxsize,1])];\n",
    "% RQfval = zeros(nInitialVectors(1), 1);\n",
    "% for i = 1:nInitialVectors(1)\n",
    "%     RQfval(i) = arch_model (initialTargetVectors(i,:), f1,ones(length(f1),1));\n",
    "% end\n",
    "% Results          = [RQfval, initialTargetVectors];\n",
    "% SortedResults    = sortrows(Results,1);\n",
    "% BestInitialCond  = SortedResults(1,2: size(Results,2));    \n",
    "% \n",
    "% % 4.迭代求出最优估计值Beta\n",
    "% A = [0,0,1] ; b = 1;\n",
    "% [Beta, fval exitflag] = fmincon(@arch_model,BestInitialCond,A,b,[],[],0,[],[],options,f1,ones(length(f1),1));\n",
    "% for it = 1:REP\n",
    "% if exitflag == 1, break, end\n",
    "% [Beta, fval exitflag] = fmincon(@arch_model,BestInitialCond,A,b,[],[],0,[],[],options,f1,ones(length(f1),1));\n",
    "% end\n",
    "% if exitflag~=1, warning('警告:迭代并没有完成'), end\n",
    "```"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "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.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}