{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 古典线性回归\n", "\"最小二乘法\"( Ordinary Least Square,记 OLS)是单一方程线性回归模型最常见、最基本的估计方法。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 样本数据\n", "### 导入数据" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "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>日期</th>\n", " <th>hs300</th>\n", " <th>sz</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>2018-01-02</td>\n", " <td>4087.4012</td>\n", " <td>3348.3259</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>2018-01-03</td>\n", " <td>4111.3925</td>\n", " <td>3369.1084</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>2018-01-04</td>\n", " <td>4128.8119</td>\n", " <td>3385.7102</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", " <td>2018-01-05</td>\n", " <td>4138.7505</td>\n", " <td>3391.7501</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", " <td>2018-01-08</td>\n", " <td>4160.1595</td>\n", " <td>3409.4795</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " 日期 hs300 sz\n", "0 2018-01-02 4087.4012 3348.3259\n", "1 2018-01-03 4111.3925 3369.1084\n", "2 2018-01-04 4128.8119 3385.7102\n", "3 2018-01-05 4138.7505 3391.7501\n", "4 2018-01-08 4160.1595 3409.4795" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "\n", "df = pd.read_excel('./数据/上证指数与沪深300.xlsx')\n", "df['日期'] = pd.to_datetime(df['日期']) # 将字符串转为日期格式\n", "df.head()" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "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>hs300</th>\n", " <th>sz</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>count</th>\n", " <td>460.000000</td>\n", " <td>460.000000</td>\n", " </tr>\n", " <tr>\n", " <th>mean</th>\n", " <td>3664.266460</td>\n", " <td>2930.237842</td>\n", " </tr>\n", " <tr>\n", " <th>std</th>\n", " <td>333.651406</td>\n", " <td>243.874533</td>\n", " </tr>\n", " <tr>\n", " <th>min</th>\n", " <td>2964.842100</td>\n", " <td>2464.362800</td>\n", " </tr>\n", " <tr>\n", " <th>25%</th>\n", " <td>3364.816625</td>\n", " <td>2746.438775</td>\n", " </tr>\n", " <tr>\n", " <th>50%</th>\n", " <td>3762.250200</td>\n", " <td>2917.781900</td>\n", " </tr>\n", " <tr>\n", " <th>75%</th>\n", " <td>3897.218650</td>\n", " <td>3095.709675</td>\n", " </tr>\n", " <tr>\n", " <th>max</th>\n", " <td>4389.885300</td>\n", " <td>3559.465300</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " hs300 sz\n", "count 460.000000 460.000000\n", "mean 3664.266460 2930.237842\n", "std 333.651406 243.874533\n", "min 2964.842100 2464.362800\n", "25% 3364.816625 2746.438775\n", "50% 3762.250200 2917.781900\n", "75% 3897.218650 3095.709675\n", "max 4389.885300 3559.465300" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.describe() # 描述性统计" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 绘制图形\n", "#### 两指数走势图" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 648x432 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import matplotlib\n", "import matplotlib.pyplot as plt\n", "from pylab import mpl\n", "\n", "# 防止图形中文文字乱码\n", "mpl.rcParams['font.sans-serif'] = ['SimHei'] # 以黑体的字体显示中文\n", "mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题\n", "\n", "plt.figure(figsize=(9,6)) # 设置图形大小\n", "plt.title('两指数走势图', fontsize=14) # 标题,fontsize 为字体大小\n", "# 常见线的属性有:color, label, linewidth, linestyle, marker 等\n", "plt.plot(df['日期'], df['hs300'], color='blue', label='沪深 300 指数')\n", "plt.plot(df['日期'], df['sz'], color='red', label='上证指数')\n", "plt.legend(fontsize=14) # 显示上面的 label\n", "plt.xticks(fontsize=14) # x轴文字设置\n", "plt.yticks(fontsize=14)\n", "plt.xlabel('日期', fontsize=14)\n", "plt.ylabel('指数值', fontsize=14)\n", "# plt.axis([0, 2*np.pi, -1, 1]) #设置坐标范围 axis([xmin,xmax,ymin,ymax])\n", "# plt.ylim(-1,1) #仅设置 y 轴坐标范围\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 散点图" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 648x432 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(9,6))\n", "plt.scatter(x=df['sz'], y=df['hs300'], c='b', marker='o')\n", "plt.xticks(fontsize=14)\n", "plt.yticks(fontsize=14)\n", "plt.title('两指数散点图', fontsize=14)\n", "plt.xlabel('上证指数', fontsize=14)\n", "plt.ylabel('沪深300指数', fontsize=14)\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 原理讲解" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 古典线性回归模型的假定" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 假定1:线性假定" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "总体模型为:$y_i=\\beta_1x_{i1}+\\beta_2x_{i2}+\\cdots+\\beta_Kx_{iK}+\\varepsilon_i (i=1,\\cdots,n)\\tag{1}$ \n", "\n", "其中 $n$ 为样本容量,解释变量 $x_{ik}$ 的第一个下标表示第 $i$ 个“观测值”,而第二个下标则表示第 $k$ 个解释变量$(k=1,\\cdots,K)$,共有 $K$个 解释变量。如果有常数项,则通常令第一个解释变量为单位向量,即 $x_{i1}=1$\n", "\n", "为了更简洁地表达,下面引入矩阵符号。把方程(1)的所有解释变量和参数都写成向量,记第 $i$ 个观测数据为$x_i\\equiv\\left(x_{i 1} ,x_{i_{2}} \\cdots x_{i K}\\right)^{\\prime}$,$\\beta \\equiv\\left(\\beta_{1}, \\beta_{2} \\cdots \\beta_{K}\\right)^{\\prime}$,则方程(1)为:\n", "\n", "$y_{i}=x_{i}^{\\prime} \\boldsymbol{\\beta}+\\varepsilon_{i} \\quad(i=1, \\cdots, n)\\tag{2}$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 假定2:严格外生性" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$\\mathrm{E}\\left(\\varepsilon_{i} | X\\right)=\\mathrm{E}\\left(\\boldsymbol{\\varepsilon}_{i} | x_{1}, \\cdots, x_{n}\\right)=0 \\quad(i=1, \\cdots, n)\\tag{3}$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 假定3:不存在“严格多重共线性”(strict multicolinearity),即数据矩阵 $X$ 满列秩" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 假定4:球型扰动项(spherical disturbance),即扰动项满足“同方差”、“无自相关”的性质" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$\\operatorname{Var}(\\boldsymbol{\\varepsilon} | X)=\\mathrm{E}\\left(\\boldsymbol{\\varepsilon} \\boldsymbol{\\varepsilon}^{\\prime} | X\\right)=\\sigma^{2} \\boldsymbol{I}_{n}=\\left(\\begin{array}{ccc}\\sigma^{2} & & 0 \\\\ & \\ddots & \\\\ 0 & & \\sigma^{2}\\end{array}\\right)\\tag{4}$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 最小二乘法\n", "假定待估计方程为:$hs300 = c+sz$。其中 c 为常数项" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### OLS 估计量 b" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$b \\equiv\\left(X^{\\prime} X\\right)^{-1} X^{\\prime} y\\tag{5}$$" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "OLS估计值为:\n", " [[-124.69031687]\n", " [ 1.29305435]]\n" ] } ], "source": [ "import numpy as np\n", "\n", "n = df.shape[0] # 样本容量\n", "beta = np.array(df['sz']).reshape(n,1)\n", "c = np.ones((n,1)) # 常数项\n", "X = np.hstack((c,beta)) # hstack()在行上合并,vstack()在列上合并\n", "y = np.array(df['hs300']).reshape(n,1)\n", "\n", "b = np.linalg.inv(X.T @ X) @ X.T @ y\n", "print('OLS估计值为:\\n',b)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 残差 $e$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$e \\equiv\\left(\\begin{array}{llll}\n", "e_{1},e_{2},\\cdots,e_{n}\n", "\\end{array}\\right)=y-X \\widetilde{\\beta}\\tag{6}$$" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "e = y - X @ b" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 扰动项方差 $s^{2}$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "对于扰动项方差$\\sigma^{2}=\\operatorname{Var}\\left(\\varepsilon_{i}\\right)$,由于总体扰动项 $\\varepsilon$ 不可观测,而样本残差 $e$ 可以近似地看成是 $\\varepsilon$ 的实现值,故使用以下统计量作为对方差 $\\sigma^{2}$ 的估计:\n", "$$s^{2} \\equiv \\frac{1}{n-K} \\sum_{i=1}^{n} e_{i}^{2}\\tag{7}$$" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "平方和: [[5453855.41555515]]\n", "扰动项方差 [[11907.98125667]]\n", "扰动项标准差 109.12369704454952\n" ] } ], "source": [ "K = X.ndim\n", "SSE = e.T @ e\n", "s2 = SSE/(n-K) \n", "\n", "import math \n", "s = math.sqrt(s2)\n", "\n", "print('平方和:', SSE)\n", "print('扰动项方差', s2)\n", "print('扰动项标准差', s)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 估计量 b 的方差-协方差矩阵" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$\\operatorname{Var}(b | X)=\\boldsymbol{\\sigma}^{2}\\left(X^{\\prime} X\\right)^{-1}\\tag{8}$$" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "协方差矩阵:\n", " [[ 3.77128774e+03 -1.27819004e+00]\n", " [-1.27819004e+00 4.36206925e-04]]\n" ] } ], "source": [ "Varb = s2 * np.linalg.inv(X.T @ X)\n", "\n", "print('协方差矩阵:\\n', Varb)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 置信区间" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "由于 $\\frac{b_{k}-\\beta_{k}}{\\mathrm{SE}\\left(b_{k}\\right)} \\sim t(n-K)$,根据 $t_{\\alpha/2}$ 得:\n", "$$\\mathrm{P}\\left\\{-t_{\\alpha / 2}<\\frac{b_{k}-\\beta_{k}}{\\mathrm{SE}\\left(b_{k}\\right)}<t_{\\alpha / 2}\\right\\}=1-\\alpha\\tag{9}$$\n", "\n", "$$P\\left\\{b_{k}-t_{\\alpha / 2} \\operatorname{SE}\\left(b_{k}\\right)<\\boldsymbol{\\beta}_{k}<b_{k}+t_{\\alpha / 2} \\operatorname{SE}\\left(b_{k}\\right)\\right\\}=1-\\alpha\\tag{10}$$" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "95% 置信区间:\n", " [[-245.37220852 -4.00842522]\n", " [ 1.25201092 1.33409777]]\n" ] } ], "source": [ "from scipy. stats import t\n", "\n", "alpha = 0.05 # 置信度\n", "nu = max(0,n-K) # 自由度\n", "tval = t.ppf(1-alpha/2,nu) # 逆函数值\n", "SE_b = np.sqrt(np.diag(Varb)).reshape(K,1)\n", "bint = np.hstack((b-tval*SE_b,b+tval*SE_b))\n", "print('95% 置信区间:\\n', bint)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### t 检验" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$t_{k} \\equiv \\frac{b_{k}-\\bar{\\beta}_{k}}{\\mathrm{SE}\\left(b_{k}\\right)} \\equiv \\frac{b_{k}-\\bar{\\beta}_{k}}{\\sqrt{s^{2}\\left(X^{\\prime} X\\right)_{k k}^{-1}}} \\sim t(n-K)\\tag{11}$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "<div align=center><img src=\"https://lei-picture.oss-cn-beijing.aliyuncs.com/img/20200423133127.png\" width=\"450\"></div>" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "t检验为:\n", " [[-2.0304294 ]\n", " [61.91138223]]\n", "\n", "\n", "p值为:\n", " [[0.0428902]\n", " [0. ]]\n" ] } ], "source": [ "t_stat = b/SE_b\n", "t_p = 2*(1-t.cdf(abs(t_stat),n-K))\n", "\n", "print('t检验为:\\n', t_stat)\n", "print('\\n')\n", "print('p值为:\\n', t_p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 两类错误" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "根据样本信息对总体进行推断,有可能犯错误。特别地,在进行假设检验时,可能犯两类性质不同的错误。\n", "\n", "**第Ⅰ类错误**:虽然原假设为真,但却根据观测数据做出了拒绝原假设的错误判断,即“弃真”。\n", "\n", "**第Ⅱ类错误**:虽然原假设为假(替代假设为真),但却根据观测数据做出了接受原假设的错误判断,即“存伪”。\n", "\n", "由于在进行假设检验时,通常知道第Ⅰ类错误的发生概率,而不知道第Ⅱ类错误的发生概率。因此,如果拒绝原假设,可以比较理直气壮,因为知道犯错误的概率就是显著性水平(比如5%);另一方面,如果接受原假设,则比较没有把握,因为我们通常并不知道第Ⅱ类错误的发生概率(可能很高)。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 使用 statsmodels 库实现\n", "### 线性回归估计" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<table class=\"simpletable\">\n", "<caption>OLS Regression Results</caption>\n", "<tr>\n", " <th>Dep. Variable:</th> <td>y</td> <th> R-squared: </th> <td> 0.893</td> \n", "</tr>\n", "<tr>\n", " <th>Model:</th> <td>OLS</td> <th> Adj. R-squared: </th> <td> 0.893</td> \n", "</tr>\n", "<tr>\n", " <th>Method:</th> <td>Least Squares</td> <th> F-statistic: </th> <td> 3833.</td> \n", "</tr>\n", "<tr>\n", " <th>Date:</th> <td>Sun, 31 May 2020</td> <th> Prob (F-statistic):</th> <td>1.20e-224</td>\n", "</tr>\n", "<tr>\n", " <th>Time:</th> <td>17:10:48</td> <th> Log-Likelihood: </th> <td> -2810.3</td> \n", "</tr>\n", "<tr>\n", " <th>No. Observations:</th> <td> 460</td> <th> AIC: </th> <td> 5625.</td> \n", "</tr>\n", "<tr>\n", " <th>Df Residuals:</th> <td> 458</td> <th> BIC: </th> <td> 5633.</td> \n", "</tr>\n", "<tr>\n", " <th>Df Model:</th> <td> 1</td> <th> </th> <td> </td> \n", "</tr>\n", "<tr>\n", " <th>Covariance Type:</th> <td>nonrobust</td> <th> </th> <td> </td> \n", "</tr>\n", "</table>\n", "<table class=\"simpletable\">\n", "<tr>\n", " <td></td> <th>coef</th> <th>std err</th> <th>t</th> <th>P>|t|</th> <th>[0.025</th> <th>0.975]</th> \n", "</tr>\n", "<tr>\n", " <th>const</th> <td> -124.6903</td> <td> 61.411</td> <td> -2.030</td> <td> 0.043</td> <td> -245.372</td> <td> -4.008</td>\n", "</tr>\n", "<tr>\n", " <th>x1</th> <td> 1.2931</td> <td> 0.021</td> <td> 61.911</td> <td> 0.000</td> <td> 1.252</td> <td> 1.334</td>\n", "</tr>\n", "</table>\n", "<table class=\"simpletable\">\n", "<tr>\n", " <th>Omnibus:</th> <td>61.627</td> <th> Durbin-Watson: </th> <td> 0.010</td>\n", "</tr>\n", "<tr>\n", " <th>Prob(Omnibus):</th> <td> 0.000</td> <th> Jarque-Bera (JB): </th> <td> 83.387</td>\n", "</tr>\n", "<tr>\n", " <th>Skew:</th> <td> 1.031</td> <th> Prob(JB): </th> <td>7.81e-19</td>\n", "</tr>\n", "<tr>\n", " <th>Kurtosis:</th> <td> 2.692</td> <th> Cond. No. </th> <td>3.55e+04</td>\n", "</tr>\n", "</table><br/><br/>Warnings:<br/>[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.<br/>[2] The condition number is large, 3.55e+04. This might indicate that there are<br/>strong multicollinearity or other numerical problems." ], "text/plain": [ "<class 'statsmodels.iolib.summary.Summary'>\n", "\"\"\"\n", " OLS Regression Results \n", "==============================================================================\n", "Dep. Variable: y R-squared: 0.893\n", "Model: OLS Adj. R-squared: 0.893\n", "Method: Least Squares F-statistic: 3833.\n", "Date: Sun, 31 May 2020 Prob (F-statistic): 1.20e-224\n", "Time: 17:10:48 Log-Likelihood: -2810.3\n", "No. Observations: 460 AIC: 5625.\n", "Df Residuals: 458 BIC: 5633.\n", "Df Model: 1 \n", "Covariance Type: nonrobust \n", "==============================================================================\n", " coef std err t P>|t| [0.025 0.975]\n", "------------------------------------------------------------------------------\n", "const -124.6903 61.411 -2.030 0.043 -245.372 -4.008\n", "x1 1.2931 0.021 61.911 0.000 1.252 1.334\n", "==============================================================================\n", "Omnibus: 61.627 Durbin-Watson: 0.010\n", "Prob(Omnibus): 0.000 Jarque-Bera (JB): 83.387\n", "Skew: 1.031 Prob(JB): 7.81e-19\n", "Kurtosis: 2.692 Cond. No. 3.55e+04\n", "==============================================================================\n", "\n", "Warnings:\n", "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n", "[2] The condition number is large, 3.55e+04. This might indicate that there are\n", "strong multicollinearity or other numerical problems.\n", "\"\"\"" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import statsmodels.api as sm\n", "\n", "# sm.add_constant(data, prepend=False)\n", "mod = sm.OLS(y, X)\n", "res = mod.fit()\n", "res.summary() # 展示估计结果" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 常用命令" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([-124.69031687, 1.29305435])" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "res.params # 获取估计参数值" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([6.14108113e+01, 2.08855674e-02])" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "res.bse # 获取标准差" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[-117.4758394 -120.35744134 -124.40507098 -122.27638992 -123.79246764]\n" ] } ], "source": [ "resid = res.resid # 获取残差\n", "print(resid[:5]) # 只打印前五个" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 3.77128774e+03, -1.27819004e+00],\n", " [-1.27819004e+00, 4.36206925e-04]])" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "res.cov_params() # 获取协方差矩阵" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "<class 'statsmodels.stats.contrast.ContrastResults'>\n", "<F test: F=array([[3833.01924991]]), p=1.195406827896976e-224, df_denom=458, df_num=1>" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "res.f_test(\"x1 = 0\") # Wald检验" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 线性拟合示意图" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 648x432 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(9,6))\n", "plt.scatter(x=df['sz'], y=df['hs300'], c='b', marker='o')\n", "plt.plot(df['sz'], res.params[0]+res.params[1]*df['sz'], '-r', lw=2.5)\n", "plt.xticks(fontsize=14)\n", "plt.yticks(fontsize=14)\n", "plt.title('线性拟合示意图', fontsize=14)\n", "plt.xlabel('上证指数', fontsize=14)\n", "plt.ylabel('沪深300指数', fontsize=14)\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## matlab实现\n", "### 原理实现" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```matlab\n", "function [B,resid,siga2,bint,cov_matrix,t,t_p] = OLS_regress(Y,X)\n", "\n", "%输入变量:\n", "%Y - 被解释变量\n", "%X - 解释变量\n", "\n", "%输出变量:\n", "% B - 待估计参数beta\n", "% resid - 残差\n", "% siga2 - 残差方差\n", "% bint - 95%置信区间序列\n", "% cov_matrix - 协方差矩阵\n", "\n", "% 1.求OLS估计量B\n", "B = inv(X'*X)*X'*Y;\n", "\n", "% 2.计算协方差矩阵\n", "resid = Y - X*B; %残差\n", "[n,K] = size(X); \n", "siga2 = sum(resid.^2)/(n-K);\n", "cov_matrix = siga2*inv(X'*X);\n", "\n", "% 3.t检验\n", "t = B./sqrt(diag(cov_matrix));\n", "t_p = 2*(1-tcdf(abs(t),n-K));\n", "\n", "% 4.计算95%置信区间\n", "alpha = 0.05; %置信度\n", "nu = max(0,n-K); %自由度\n", "tval = tinv(1-alpha/2,nu);\n", "se = sqrt(diag(cov_matrix));\n", "bint = [B-tval*se, B+tval*se];\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### regress 函数介绍\n", "#### 参数解释\n", "* B:回归系数,是个向量(the vector of regression coefficients in the linear model Y =X*B)。\n", "* BINT:回归系数的区间估计(matrix BINT of95% confidence intervals for B)。\n", "* R:残差(vector of residuals)。\n", "* RINT:置信区间(matrix RINT of intervals that can be used to diagnose outliers)。\n", "* STATS:用于检验回归模型的统计量。有 4 数值:判定系数 $R^2$,F 统计量观测值,检验的 p 的值,误差方差的估计。\n", "* ALPHA:显著性水平(缺少时为默认值 0.05)。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 使用实例\n", "```matlab\n", "% 1.载入数据\n", "data = xlsread('./数据/hourse.xlsx');\n", "f1 = data(:,2); f2 = data(:,3); e = data(:,6);\n", "\n", "% 2.作线性回归 f1=e\n", "[B,BINT,R,RINT,STATS] = regress(f1,e);\n", "\n", "% 3.作线性回归 f1=c+e\n", "[B,BINT,R,RINT,STATS] = regress(f1,[ones(length(f1),1),e]);\n", "\n", "% 4.作线性回归 f1=c+f2+e\n", "[B,BINT,R,RINT,STATS] = regress(f1,[ones(length(f1),1),f2,e]);\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 }