• 线性回归模型(OLS)2


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

    本文是系列文章的第二篇,将介绍线性回归模型中的一些常见假设以及基于这些假设对回归系数的检验。

    本文包括以下4个小节:
    1. 常见假设
    2. 示例:mtcars数据集
    3. 模型推导
    4. 附录代码

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

    1. 常见假设

    在前文《线性回归模型(OLS)1》中我们已经介绍过线性回归模型的定义以及基于普通最小二乘(OLS)求解回归系数的方法。在此我们作简要回顾:

    假设我们观察到一些数据 { 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 )

    yi=β0+β1xi1+β2xi2++βpxip+ϵi=j=0pβjxij+ϵi,(xi0=1)" role="presentation" style="position: relative;">yi=β0+β1xi1+β2xi2++βpxip+ϵi=j=0pβjxij+ϵi,(xi0=1)
    yi=β0+β1xi1+β2xi2++βpxip+ϵi=j=0pβjxij+ϵi,(xi0=1)

    其中 β j \beta_j βj 是回归系数,而 ϵ i \epsilon_i ϵi 是误差项。上面的式子用矩阵表示就是:

    y = X β + ϵ

    (2.1)y=Xβ+ϵ" role="presentation" style="position: relative;">(2.1)y=Xβ+ϵ
    y=Xβ+ϵ(2.1)

    OLS要求最优的回归系数 β ^ \hat{\boldsymbol{\beta}} β^ 应该让所有观测数据的误差项平方的和最小,即

    β ^ = arg ⁡ min ⁡ β ∥ y − X β ∥ 2

    (2.2)β^=argminβyXβ2" role="presentation" style="position: relative;">(2.2)β^=argminβyXβ2
    β^=argβminyXβ2(2.2)

    据此得到其解析解,作为OLS方法下得到的回归系数的估计值:

    β ^ = ( X T X ) − 1 X T y

    (2.3)β^=(XTX)1XTy" role="presentation" style="position: relative;">(2.3)β^=(XTX)1XTy
    β^=(XTX)1XTy(2.3)

    实际上,当我们对数据和模型添加一些假设后,我们可以对模型进行更详尽的分析。对OLS而言,除了基础假设“因变量与自变量之间是线形关系”之外,常用的假设包括:

    1. 误差项与自变量无关,即自变量是“外生“(exogenous)的:

    E [ ϵ ∣ X ] = 0

    (2.4)E[ϵ|X]=0" role="presentation" style="position: relative;">(2.4)E[ϵ|X]=0
    E[ϵX]=0(2.4)

    1. 误差项互相独立且同方差,即:

    var [ ϵ ∣ X ] = σ 2 I n

    (2.5)var[ϵ|X]=σ2In" role="presentation" style="position: relative;">(2.5)var[ϵ|X]=σ2In
    var[ϵX]=σ2In(2.5)

    1. 误差项符合多元正态分布,且:

    ϵ ∼ N ( 0 , σ 2 I n )

    (2.6)ϵN(0,σ2In)" role="presentation" style="position: relative;">(2.6)ϵN(0,σ2In)
    ϵN(0,σ2In)(2.6)

    1. 自变量之间不是线性相关的,即

    rank ( X ) = p + 1

    (2.7)rank(X)=p+1" role="presentation" style="position: relative;">(2.7)rank(X)=p+1
    rank(X)=p+1(2.7)

    在上述几个前提条件下,我们可以证明:

    E [ β ^ ] = β

    (2.8)E[β^]=β" role="presentation" style="position: relative;">(2.8)E[β^]=β
    E[β^]=β(2.8)

    var [ β ^ ] = σ 2 ( X T X ) − 1

    (2.9)var[β^]=σ2(XTX)1" role="presentation" style="position: relative;">(2.9)var[β^]=σ2(XTX)1
    var[β^]=σ2(XTX)1(2.9)

    β ^ ∼ N ( β , σ 2 ( X T X ) − 1 )

    (2.10)β^N(β,σ2(XTX)1)" role="presentation" style="position: relative;">(2.10)β^N(β,σ2(XTX)1)
    β^N(β,σ2(XTX)1)(2.10)

    在对回归系数估计值作假设检验时,一般零假设(null hypothesis)为 β j = 0 \beta_j = 0 βj=0。我们可以证明(见下文)在此零假设条件下,我们可以构建一个统计量 T j T_j Tj 符合 t t t 分布(注意到 X \mathbf{X} X 是一个 n × ( p + 1 ) n \times (p+1) n×(p+1) 的矩阵):

    T j = β ^ j s . e . ^ ( β ^ j ) ∼ t n − p − 1 , j = 0 , 1 , … , p

    (2.11)Tj=β^js.e.^(β^j)tnp1,j=0,1,,p" role="presentation" style="position: relative;">(2.11)Tj=β^js.e.^(β^j)tnp1,j=0,1,,p
    Tj=s.e. (β^j)β^jtnp1,j=0,1,,p(2.11)

    其中 β ^ j \hat{\beta}_j β^j 的“标准差” s . e . ^ ( β ^ j ) \widehat{\mathrm{s.e.}}(\hat{\beta}_j) s.e. (β^j) 为:

    s . e . ^ ( β ^ j ) = s 2 ( X T X ) j j − 1

    (2.12)s.e.^(β^j)=s2(XTX)jj1" role="presentation" style="position: relative;">(2.12)s.e.^(β^j)=s2(XTX)jj1
    s.e. (β^j)=s2(XTX)jj1 (2.12)

    s 2 = ( y − X β ^ ) T ( y − X β ^ ) n − p − 1

    (2.13)s2=(yXβ^)T(yXβ^)np1" role="presentation" style="position: relative;">(2.13)s2=(yXβ^)T(yXβ^)np1
    s2=np1(yXβ^)T(yXβ^)(2.13)

    我们可以证明,上式中 s 2 s^2 s2 σ 2 \sigma^2 σ2 的一个无偏估计,即

    E [ s 2 ] = σ 2

    (2.14)E[s2]=σ2" role="presentation" style="position: relative;">(2.14)E[s2]=σ2
    E[s2]=σ2(2.14)

    并且 ( n − p − 1 ) s 2 / σ 2 (n-p-1)s^2/\sigma^2 (np1)s2/σ2 符合自由度是 n − p − 1 n-p-1 np1 的卡方分布。

    ( n − p − 1 ) s 2 σ 2 ∼ χ n − p − 1 2

    (2.15)(np1)s2σ2χnp12" role="presentation" style="position: relative;">(2.15)(np1)s2σ2χnp12
    (np1)σ2s2χnp12(2.15)

    我们会在“模型推导”小节中给出证明过程。

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

    2. 示例:mtcars数据集

  • 相关阅读:
    LeetCode刷题(python版)——Topic72. 编辑距离
    离线语音模块初步学习——LSYT201B(深圳雷龙发展)
    [Java]快速入门优先队列(堆),手撕相关面试题
    4. Java IO
    java毕业设计智慧问诊系统Mybatis+系统+数据库+调试部署
    梯度下降优化算法综述,梯度下降法 神经网络
    python:网络安全攻击与防御的工具(附零基础学习资料)
    D - New Year‘s Problem
    Gurobi使用(一)——操作指南(转自知乎)
    LVGL库入门教程03-布局方式
  • 原文地址:https://blog.csdn.net/biocity/article/details/126165204