ESL翻译:Linear Methods for Regression
chapter 3: Linear Methods for Regression
第3章:回归的线性方法
3.1 Introduction
A linear regression model assumes that the regression function \(E(Y\mid X)\) is linear in the inputs \(X_1, \ldots , X_p\). Linear models were largely developed in the precomputer age of statistics, but even in today’s computer era there are still good reasons to study and use them. They are simple and often provide an adequate and interpretable description of how the inputs affect the output. For prediction purposes they can sometimes outperform fancier nonlinear models, especially in situations with small numbers of training cases, low signal-to-noise ratio or sparse data. Finally, linear methods can be applied to transformations of the inputs and this considerably expands their scope. These generalizations are sometimes called basis-function methods, and are discussed in Chapter 5.
线性回归模型假设输入为\(X_1,X_2,\ldots,X_p\)的回归函数\(E(Y\mid X)\)是线性的。虽然线性模型大部分是在前计算机统计时代发展的,但是甚至在现在的计算机时代仍然有很好的原因去学习、使用线性模型。它们简单,而且经常对于输入怎样影响输出提供充足的、可解释的描述。用作预测时有时比新奇的非线性模型表现得还要好,特别是在训练情形很少、低信噪比或者稀疏数据的情况下。最后,线性方法可以被应用到输入的变换并且在很大程度上扩大了它们的范围。这些规范化有时被称作基函数方法,将在第5章中讨论。
In this chapter we describe linear methods for regression, while in the next chapter we discuss linear methods for classification. On some topics we go into considerable detail, as it is our firm belief that an understanding of linear methods is essential for understanding nonlinear ones. In fact, many nonlinear techniques are direct generalizations of the linear methods discussed here.
在这一章中我们描述回归的线性方法,下一章我们将讨论分类的线性方法。在某些主题上我们将从细节上讨论,因为理解线性方法对理解非线性至关重要是我们坚定的信仰。事实上,许多非线性技巧是这里讨论的线性方法的直接概括。
3.2 Linear Regression Models and Least Squares
3.2 线性回归模型和最小二乘法
As introduced in Chapter 2, we have an input vector \(X^T = (X_1,X_2, \ldots, X_p)\), and want to predict a real-valued output \(Y\) . The linear regression model has the form
\[
f(X) = \beta\_0 +\sum\limits\_{j=1}^pX\_j\beta\_j\qquad (3.1)
\]
The linear model either assumes that the regression function \(E(Y\mid X)\) is linear, or that the linear model is a reasonable approximation. Here the \(\beta_j\)’s are unknown parameters or coefficients, and the variables \(X_j\) can come from different sources:
- quantitative inputs;
- transformations of quantitative inputs, such as log, square-root or square;
- basis expansions, such as \(X\_2 = X\_1^2, X\_3 = X\_1^ 3\), leading to a polynomial representation;
- numeric or “dummy” coding of the levels of qualitative inputs. For example, if \(G\) is a five-level factor input, we might create \(X\_j, j = 1,\ldots,5\), such that \(X\_j = I(G = j)\). Together this group of \(X\_j\) represents the effect of \(G\) by a set of level-dependent constants, since in \(\sum\_{j=1}^5X\_j\beta\_j\), one of the \(X\_j\)s is one, and the others are zero.
- interactions between variables, for example, \(X\_3 = X\_1\cdot X\_2\)
正如第二章介绍的那样,我们有输入向量\(X^T=(X\_1,X\_2,\ldots,X\_p)\),而且想要预测实数值输出\(Y\)。线性模型有如下形式
\[
f(X)=\beta\_0+\sum\limits_{j=1}^pX_j\beta_j \qquad (3.1)
\]
线性模型要么假设回归函数\(E(Y\mid X)\)是线性的,要么假设线性模型是一个合理的近似。这里\(\beta\_j\)是位置的参数或系数,变量\(X_j\)可以有下列不同的来源:
- 定量的输入
- 定量输入的变换,比如对数,平方根或者平方
- 基函数展开,比如\(X\_2=X\_1^2,X\_3=X\_1^3\),得到多项式表示
- 定性输入变量水平的数值或“虚拟”编码。举个例子,如果\(G\)是5个水平的因子输入,我们可能构造\(X_j,j=1,\ldots,5\)使得\(X\_j=I(G=j)\)。借助于一系列独立于水平的常数,整个\(X\_j\)用来表示\(G\)的效应。因为在\(\sum\_{j=1}^5X\_j\beta\_j\)中,其中一个\(X\_j\)的系数为1,其它的都是0。
- 变量之间的相交,举个例子,\(X\_3=X\_1\cdot X\_2\)
无论\(X\_j\)是哪个来源,用参数表示的模型是线性的。
一般地,我们有一系列用来估计参数\(\beta\)的训练数据\((x\_1,y\_1),\ldots,(x\_N,y\_N)\)。每个\(x\_i=(x\_{i1},x\_{i2},\ldots,x\_{ip})^T\)是第\(i\)个类别的特征衡量的向量。最受欢迎的估计方法是最小二乘(least squares),我们选择参数\(\beta=(\beta\_0,\beta\_1,\ldots,\beta\_p)^T\)使残差平方和最小
\begin{align}
RSS(\beta)&=\sum\limits_{i=1}^N(y_i-f(x_i))^2\
&=\sum\limits_{i=1}^N(y_i-\beta_0-\sum\limits_{j=1}^px_{ij}\beta_j)^2\qquad (3.2)
\end{align}
从统计学的观点来看,如果训练观测值\((x\_i,y\_i)\)为从总体独立随机抽取的则该标准是合理的。即使\(x\_i\)'s不是随机选取的,如果在给定输入\(x\_i\)的条件下\(y\_i\)条件独立。图3.1图示了在充满实数对\((X,Y)\)的\(R^{p+1}\)维空间的最小二乘拟合的几何意义。注意到(3.2)对模型(3.1)的有效性没有作假设,根据数据可以简单地找到最好的线性拟合。无论数据是怎样产生的,最小二乘拟合直观上看是满意的,这个准则衡量了拟合误差的平均。
我们怎样最小化(3.2)记\(\mathbf{X}\)为\(N\times (p+1)\)的矩阵,矩阵每一行为一个输入向量(在第一个位置为1),类似地令\(\mathbf{y}\)为训练集里的\(N\)个输出向量。然后我们可以将残差平方和写成如下形式
\[
RSS(\beta)=(\mathbf{y}-\mathbf{X}\beta)^T(\mathbf{y}-\mathbf{X}\beta)\qquad (3.3)
\]
这是含\(p+1\)个参数的二次函数。关于\(\beta\)求导有
\[
\begin{array}{cc}
\dfrac{\partial RSS}{\partial \beta}&=-2\mathbf{X}^T(\mathbf{y}-\mathbf{X}\beta)
\dfrac{\partial^2 RSS}{\partial \beta\partial \beta^T}&=2\mathbf{X}^T\mathbf{X}
\end{array}
\qquad (3.4)
\]
假设\(\mathbf{X}\)有列满秩,因此\(\mathbf{X}^T\mathbf{X}\)是正定的,我们令一阶微分为0,即
\[
\mathbf{X}^T(\mathbf{y}-\mathbf{X}\beta)
\]
得到唯一解
\[
\hat{\beta}=(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\mathbf{y}\qquad (3.6)
\]
在输入向量\(x\_0\)下的预测值由\(\hat{f}(x\_0)=(1:x\_0)^T\hat{\beta}\);在训练输入下的拟合值为
\[
\hat{y}=\mathbf{X}\hat{\beta}=\mathbf{X}(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\mathbf{y}\qquad (3.7)
\]
其中,\(\hat{y}\_i=\hat{f}(x\_i)\)。在式(3.7)中出现的矩阵\(\mathbf{H=X(X^TX)^{-1}X^T\)
对向量求导的问题
图3.2展示了在\(R^N\)中最小二乘估计的的不同几何表示。我们记\(\mathbf{X}\)的列向量为\(\mathbf(x\_0,x\_1,\ldots,x\_p)\),其中\(x\_0 \equiv 1\)。下文中第一列认为是跟其它的是一样的。这些向量张成了\(R^N\)的子空间,也被称作\(\mathbf{X}\)的列空间。我们通过选择\(\hat{\beta}\)来最小化\(RSS(\beta)=\abs(\mathbf{y}-\mathbf{X}\beta)\),则残差向量\(\mathbf{y-\hat{y}}\)正交于子空间。(3.5)式描述了这种正交,然后估计的结果\(\hat{y}\)因此是\(\mathbf{y}\)在子空间的正交投影。帽子矩阵\(\mathbf{H}\)计算正交投影,因此也被称作投影矩阵。
可能会出现\(\mathbf{X}\)的列不是线性独立的,则\(\mathbf{X}\)不是满秩的。举个例子,如果两个输入是完全相关的,(比如,\(x\_2=3x\_1\))。则矩阵\(\mathbf{X^TX}\)是奇异的,并且最小二乘的系数\(\hat{\beta}\)不是唯一的。然而,拟合值\(\mathbf{\hat{y}}=\mathbf{X}\hat{\beta}\)仍然是\(\mathbf{y}\)在列空间\(\mathbf{X}\)的投影;对于\(\mathbf{X}\)的列向量有多种方式表达这种投射。当一个或多个定性输入用一种冗余的方式编码时经常发现非满秩的情形。通过重编码或去除\(\mathbf{X}\)中的列,通常有一种自然的方式去分解不是唯一的表达方式。大多数回归软件包监测这些冗余并且用一些策略自动实现去除。秩缺失在信号和图像分析中经常发生,输入\(p\)可以超出训练的情形\(N\)。在这种情形下,特征经常通过滤波或由正则化控制的拟合。
截至目前我们已经对数据的真实分布做了很少的假设。为了约束\(\hat{\beta}\)的取样特点,我们现在假设观测值\(y\_i\)不相关,有恒定的方差\(\sigma^2\),并且\(x\_i\)是给定的(非随机)。最小二乘法的参数估计的方差-协方差阵可以很容易从式(3.6)得到
\[
Var(\hat{\beta})=(\mathbf{X}^T\mathbf{X})^{-1}\sigma^2\qquad (3.8)
\]
经常通过下式来估计方差\(\sigma^2\)
\[
\hat{\sigma^2}=\frac{1}{N-p-1}\sum\limits\_{i=1}^N(y\_i-\hat{y}\_i)^2
\]
分母是\(N-p-1\)而不是\(N\),因为此时使得\(\hat{\sigma}^2\)为无偏估计:\(E(\hat{\sigma}^2)=\sigma^2\)
为了对参数和模型进行推断,需要一些额外的假设。我们现在假设式\((3.1)\)是均值的正确模型;则\(Y\)的条件期望关于\(X\_1,X\_2,\ldots,X\_p\)是线性的。我们也假设\(Y\)与其期望的偏差是可加的和高斯的。因此
\begin{align}
Y&=E(Y\mid X_1,\ldots,X_p)+\epsilon\
&=\beta_0+\sum\limits_{j=1}^pX_j\beta_j+\epsilon\qquad (3.9)
\end{align}
其中误差\(\epsilon\)是期望值为0方差为\(\sigma^2\)的高斯随机变量,记作\(\epsilon\sim N(0,\sigma^2)\)
由式(3.9),可以很简单地证明
\[
\hat{\beta}\sim N(\beta,(\mathbf{X}^T\mathbf{X})^{-1}\sigma^2) \qquad (3.11)
\]
这是一个有上述均值向量和方差-协方差矩阵的多变量正态分布。同时有
\[
(N-p-1)\hat{\sigma^2}\sim \sigma^2\chi^2_{N-p-1}\qquad (3.11)
\]
是一个自由度为\(N-p-1\)的卡方分布。另外,\(\hat{\beta}\)和\(\hat{\sigma^2}\)是统计独立的。我们利用这些分布性质得到假设检验以及对于参数\(\beta\_j\)的置信区间
为了检验系数\(\beta\_j\)的这一假设,我们构造标准化因数或者Z-分数。
\[
z\_j=\dfrac{\hat{\beta}\_j}{\hat{\sigma}\sqrt{v\_j}}\qquad (3.12)
\]
其中\(v\_j\)是\((\mathbf{X}^T\mathbf{X})^{-1}\)的第\(j\)个对角元。零假设为\(\beta\_j=0\),\(z\_j\)分布为\(t_{N-p-1}\)(自由度为\(N-p-1\)的t分布),因此当\(z\_j\)的绝对值较大时会拒绝零假设。如果用已知的\(\sigma\)值替换\(\hat{\sigma}\),则\(z\_j\)服从标准正态分布。\(t\)分布和标准正态分布在尾概率之间的差异随着样本规模增大可以忽略,因此我们一般使用正态的分位数(图3.3)。
我们经常需要同时检验系数集体的显著性。举个例子,检验有\(k\)个水平的分类变量是否要从模型中排除,我们需要检验用来表示水平的虚拟变量的系数是否可以全部设定为0。这里我们利用\(F\)统计量
\[
F=\dfrac{(RSS_0-RSS_1)/(p_1-p_0)}{RSS_1/(N-p_1-1)}\qquad (3.13)
\]
其中\(RSS_1\)是有\(p_1+1\)个参数的大模型的最小二乘法拟合的残差平方和,\(RSS_0\)是有\(p_0+1\)参数的小模型的最小二乘法拟合的残差平方和,有\(p_1-p_0\)个参数限制为0.\(F\)统计量衡量了在大模型中每个增加的系数对残差平方和的改变,而且用\(\sigma^2\)的估计值进行标准化。在高斯分布以及小模型的零假设为正确的,则\(F\)统计量服从\(F\_{p\_1-p\_0,N-p\_1-1}\)分布
ESL翻译:Linear Methods for Regression的更多相关文章
- Linear and Logistic Regression in TensorFlow
Linear and Logistic Regression in TensorFlow Graphs and sessions TF Ops: constants, variables, funct ...
- [Scikit-learn] 1.1 Generalized Linear Models - Lasso Regression
Ref: http://blog.csdn.net/daunxx/article/details/51596877 Ref: https://www.youtube.com/watch?v=ipb2M ...
- PRML读书笔记——3 Linear Models for Regression
Linear Basis Function Models 线性模型的一个关键属性是它是参数的一个线性函数,形式如下: w是参数,x可以是原始的数据,也可以是关于原始数据的一个函数值,这个函数就叫bas ...
- PRML读书会第三章 Linear Models for Regression(线性基函数模型、正则化方法、贝叶斯线性回归等)
主讲人 planktonli planktonli(1027753147) 18:58:12 大家好,我负责给大家讲讲 PRML的第3讲 linear regression的内容,请大家多多指教,群 ...
- PRML-Chapter3 Linear Models for Regression
Example: Polynomial Curve Fitting The goal of regression is to predict the value of one or more cont ...
- [Scikit-learn] 1.1 Generalized Linear Models - Logistic regression & Softmax
二分类:Logistic regression 多分类:Softmax分类函数 对于损失函数,我们求其最小值, 对于似然函数,我们求其最大值. Logistic是loss function,即: 在逻 ...
- [Scikit-learn] 1.1 Generalized Linear Models - from Linear Regression to L1&L2
Introduction 一.Scikit-learning 广义线性模型 From: http://sklearn.lzjqsdd.com/modules/linear_model.html#ord ...
- [Sklearn] Linear regression models to fit noisy data
Ref: [Link] sklearn各种回归和预测[各线性模型对噪声的反应] Ref: Linear Regression 实战[循序渐进思考过程] Ref: simple linear regre ...
- [Scikit-learn] 1.5 Generalized Linear Models - SGD for Regression
梯度下降 一.亲手实现“梯度下降” 以下内容其实就是<手动实现简单的梯度下降>. 神经网络的实践笔记,主要包括: Logistic分类函数 反向传播相关内容 Link: http://pe ...
随机推荐
- pt-tcp-model
http://blog.9minutesnooze.com/analyzing-http-traffic-tcpdump-perconas-pttcpmodel/ #获取200k个packets tc ...
- ASP.NET Core 认证与授权[5]:初识授权
经过前面几章的姗姗学步,我们了解了在 ASP.NET Core 中是如何认证的,终于来到了授权阶段.在认证阶段我们通过用户令牌获取到用户的Claims,而授权便是对这些的Claims的验证,如:是否拥 ...
- alex python of day1
Print("hello word!")#打印hello word!向python世界发生第一声呐喊,仪式很重要 定义变量 name="Alex Li" nam ...
- Kaggle初入门
今天成功的进驻kaggle社区了! 所以以后就要跟kaggle上面的各位一起学习啦! 今天十分成功的在tensorflow的环境里面装了一堆库--什么seaborn啊pandas啊都一次过 然后--并 ...
- 理解HTTP幂等性(转)
基于HTTP协议的Web API是时下最为流行的一种分布式服务提供方式.无论是在大型互联网应用还是企业级架构中,我们都见到了越来越多的SOA或RESTful的Web API.为什么Web API如此流 ...
- ubuntu实时显示网速cpu占用和内存占用率
ubuntu实时显示网速cpu占用和内存占用率 大家在使用ubuntu的时候,有没有想让它实时显示网速,内存占用率,或者cpu占用率呢?现在我就教大家怎么实现,就像下面这样 1. 添加indicato ...
- css随笔属性
anchor伪类,用于阅读文章.a:link(没有接触过的链接),用于链接常规状态 (末访问的链接)a:hover(鼠标放在链接上的状态) 用于产生视觉效果(已访问的链接)a:visited(访问过的 ...
- VS2015远程调试
原文链接 VS2015远程调试 在PayPal支付时,PayPal回调函数一直报错,本地没有外网IP,没有办法在本地调试,需要远程调试: 1.找到远程调试的文件夹: 找到对应的服务器的型号:64位 ...
- js限制日期选择范围是两个月
$(".dateInputClass input:eq(0)").bind("click", function(){WdatePicker({dateFmt:' ...
- Javascript-数值运算 保留小数点位数,并对最后一位小数各种取整方法
今天遇到Javascript数值运算的坑,说到底,还是用得少啊.得多用多敲代码多遇坑. 先介绍以下三个Javascript number取整运算方法. Math.floor() 对一个数退一取整 例: ...