线性回归模型(OLS)1

本文介绍了线性回归模型的基本定义,并通过R语言中的lm函数展示了一个使用mtcars数据集的示例。线性回归是数据处理的基础,文章详细解释了最小二乘法(OLS)如何用于确定模型参数,并给出了模型参数的解析解。
摘要由CSDN通过智能技术生成

本系列文章基于R语言中lm函数的输出,介绍线性回归模型的例子和原理。

本文是系列文章的第一篇,将介绍线性回归模型的定义并给出一个R语言的示例。

线性回归模型是我们日常工作中处理数据时经常使用的一种基础模型。了解线性回归模型的原理和细节有助于我们学习其他模型,如广义线性模型(GLM模型)。
本文包括以下四个小节
1. 定义
2. 示例:mtcars数据集
3. 模型推导
4. 附录代码

以下文章为免费试读部分,完整文章可到 公号“生信了”付费阅读

1. 定义

假设我们观察到一些数据 { x i , y i } i = 1 n \{\mathbf{x}_i, y_i\}_{i=1}^n {xi,yi}i=1n,其中 x i = ( x i 1 , x i 2 , … , x i p ) T \mathbf{x}_i=(x_{i1},x_{i2},\ldots,x_{ip})^\mathsf{T} xi=(xi1,xi2,,xip)T,线性回归模型研究因变量 y i y_i yi和自变量 x i \mathbf{x}_i xi之间的关系:

y i = β 0 + β 1 x i 1 + β 2 x i 2 + ⋯ + β p x i p + ϵ i = ∑ j = 0 p β j x i j + ϵ i , ( x i 0 = 1 ) \begin{align*} y_i &= \beta_0 + \beta_1 x_{i1} + \beta_2 x_{i2} + \cdots + \beta_p x_{ip} + \epsilon_i \\ &= \sum_{j=0}^p \beta_j x_{ij} + \epsilon_i, \qquad (x_{i0} = 1) \tag{1.1} \end{align*} yi=β0+β1xi1+β2xi2++βpxip+ϵi=j=0pβjxij+ϵi,(xi0=1)(1.1)

其中 β j \beta_j βj是回归系数,是我们要求解的模型参数;而 ϵ i \epsilon_i ϵi是误差项,代表观测值 y i y_i yi与理论值 ∑ j = 0 p β j x i j \sum_{j=0}^p \beta_j x_{ij} j=0pβjxij之间的偏差。这里我们需要注意的是线性回归模型中的“线性”是针对回归系数而言的,也就是说模型可以泛化为:

y i = β 0 + β 1 ϕ 1 ( x i 1 ) + β 2 ϕ 2 ( x i 2 ) + ⋯ + β p ϕ p ( x i p ) + ϵ i = ∑ j = 0 p β j ϕ j ( x i j ) + ϵ i , ( ϕ 0 ( x i 0 ) = 1 ) \begin{align*} y_i &= \beta_0 + \beta_1 \phi_1(x_{i1}) + \beta_2 \phi_2(x_{i2}) + \cdots + \beta_p \phi_p(x_{ip}) + \epsilon_i \\ &= \sum_{j=0}^p \beta_j \phi_j(x_{ij}) + \epsilon_i, \qquad (\phi_0(x_{i0}) = 1) \tag{1.2} \end{align*} yi=β0+β1ϕ1(xi1)+β2ϕ2(xi2)++βpϕp(xip)+ϵi=j=0pβjϕj(xij)+ϵi,(ϕ0(xi0)=1)(1.2)

其中 ϕ j ( ⋅ ) \phi_j(\cdot) ϕj()可以是“非线性”函数(比如二次函数)。

我们希望模型的“拟合值”尽可能接近观测值。有多个指标可以用来衡量这个“接近”的程度,其中最常用的就是误差项的平方,也就是 ϵ i 2 \epsilon_i^2 ϵi2。在此指标下,最优的模型应该是让所有观测数据的误差项平方的和最小,也就是让“损失” L L L最小化:

L = ∑ i = 1 n ϵ i 2 = ∑ i = 1 n ( y i − ∑ j = 0 p β j x i j ) 2 \begin{align*} L &= \sum_{i=1}^n \epsilon_i^2 \\ &= \sum_{i=1}^n \left(y_i - \sum_{j=0}^p \beta_j x_{ij} \right)^2 \tag{1.3} \end{align*} L=i=1nϵi2=i=1n(yij=0pβjxij)2(1.3)

我们可以用矩阵形式来重新描述上面的式子(注意到 L L L β j \beta_j βj的函数):

L = S ( β ) = ∥ y − X β ∥ 2 \begin{align*} L = S(\boldsymbol{\beta}) = \| \mathbf{y} - \mathbf{X}\boldsymbol{\beta} \|^2 \tag{1.4} \end{align*} L=S(β)=yXβ2(1.4)

其中 y = ( y 1 , y 2 , … , y n ) T \mathbf{y}=(y_1, y_2, \ldots, y_n)^\mathsf{T} y=(y1,y2,,yn)T β = ( β 0 , β 1 , … , β p ) T \boldsymbol{\beta}=(\beta_0, \beta_1, \ldots, \beta_p)^\mathsf{T} β=(β0,β1,,βp)T,而 X \mathbf{X} X稍微复杂一点,

X = ( 1 x 11 x 12 ⋯ x 1 p 1 x 21 x 22 ⋯ x 2 p ⋮ ⋮ ⋮ ⋱ ⋮ 1 x n 1 x n 2 ⋯ x n p ) \begin{equation} \mathbf{X} = \begin{pmatrix} 1 & x_{11} & x_{12} & \cdots & x_{1p} \\ 1 & x_{21} & x_{22} & \cdots & x_{2p} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & x_{n1} & x_{n2} & \cdots & x_{np} \end{pmatrix} \tag{1.5} \end{equation} X= 111x11x21xn1x12x22xn2x1px2pxnp (1.5)

此时,我们要求解的模型最优参数(用 β ^ \hat{\boldsymbol{\beta}} β^表示)就是:

β ^ = arg ⁡ min ⁡ β ∥ y − X β ∥ 2 \begin{align*} \hat{\boldsymbol{\beta}} &= \arg \min_{\boldsymbol{\beta}} \| \mathbf{y} - \mathbf{X}\boldsymbol{\beta} \|^2 \tag{1.6} \end{align*} β^=argβminyXβ2(1.6)

我们可以比较容易地得到 β ^ \hat{\boldsymbol{\beta}} β^的解析解,

β ^ = ( X T X ) − 1 X T y \begin{equation} \hat{\boldsymbol{\beta}} = (\mathbf{X}^\mathsf{T} \mathbf{X})^{-1} \mathbf{X}^\mathsf{T} \mathbf{y} \tag{1.7} \end{equation} β^=(XTX)1XTy(1.7)

具体的推导过程见“模型推导”小节。上面这种根据最小误差平方和求解模型参数的方法称为普通最小二乘法(OLS),是最小二乘法中最常见的一种(其它包括加权最小二乘等)。

下文首先给出一个R语言中线性回归模型的例子,然后介绍其背后的原理。

2. 示例:mtcars数据集

很多人都了解,我们可以通过R语言中lm函数进行线性回归模型的分析。我们利用R语言中自带的mtcars数据集给出一个示例。mtcars数据集包含了32个品牌/型号的汽车11种不同属性的测量值。

在这里插入图片描述

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值