多元线性回归的系数及其标准差估计

这篇具有很好参考价值的文章主要介绍了多元线性回归的系数及其标准差估计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


专注系列化高质量的R语言教程

推文索引 | 联系小编 | 付费合集


线性回归是最基础的回归模型,但不知道有多少读者了解它的回归系数以及标准差是如何估计出来的。本篇就来介绍一下,目录如下:

  • 1 符号说明

  • 2 系数估计

  • 3 系数标准差

  • 4 相关函数和操作符

    • 4.1 %*%

    • 4.2 t函数

    • 4.3 solve函数

    • 4.4 diag函数

  • 5 案例

1 符号说明

使用表示样本标识,表示样本的因变量取值,表示自变量表示(,其中为自变量个数),表示样本的一系列自变量取值,表示随机项。

线性回归的方程如下:

使用矩阵可以表示为如下形式:

其中,和都来自已有的样本数据。

为的满秩矩阵(为样本数,为自变量个数),行表示样本,列表示变量,也称设计矩阵

是长度为的列向量:

为待估计的模型系数,是长度为的列向量:

为随机项,也是模型的残差,是长度为的列向量:

从方程组的角度看,和都属于未知数,共计个,而方程个数为,因此方程组是不可解的,它的自由度为未知数个数与方程个数之差,即。

2 系数估计

既然方程组是不可解的,我们可以使用优化的方法去估计出“最优”的系数组合。

众所周知,多元线性回归的优化目标是残差平方和最小。残差平方和为

复习一下,转置矩阵有如下运算性质:

因此,

从而,

问题转化为求取得最小值时的。可以看出,是一个二次型,它的最小值在偏导为0处取得。

使用矩阵直接求导有如下运算性质[1]

  • 其中,、、表示列向量,表示方阵。

因此,

令,即

可得的估计值为

3 系数标准差

因为,

显然有。

的方差是下面矩阵的对角线元素:

线性回归假设所有样本的随机项都服从同一个均值为0的正态分布,即

因此,

并且不同样本之间的随机项相互独立。因此,

所以,

进而,

取上面矩阵的对角线元素即为系数估计值的方差:

标准差为:

在回归模型中,系数估计值的标准差一般称为标准误(standard error, se)。其中,的无偏估计为:

4 相关函数和操作符

上面推导过程中涉及到一些R语言中的函数和操作符。

4.1 %*%

*用于矩阵相乘表示同型矩阵对应位置的元素相乘,而%*%才表示矩阵真正的乘法。

A = matrix(1:12, nrow = 3)
B = matrix(1:12, nrow = 4) 

A %*% B
##      [,1] [,2] [,3]
## [1,]   70  158  246
## [2,]   80  184  288
## [3,]   90  210  330

4.2 t函数

t()函数表示矩阵的转置。

A
##      [,1] [,2] [,3] [,4]
## [1,]    1    4    7   10
## [2,]    2    5    8   11
## [3,]    3    6    9   12

t(A)
##      [,1] [,2] [,3]
## [1,]    1    2    3
## [2,]    4    5    6
## [3,]    7    8    9
## [4,]   10   11   12

在R语言中,向量是没有维度的:

a <- 1:3

dim(a)
## NULL

但若取其转置,会默认其为列向量,转置结果为行向量(对应的数据结构实际上是矩阵):

t(a)
##      [,1] [,2] [,3]
## [1,]    1    2    3

4.3 solve函数

solve()函数的本职功能是解形如a %*% x=b(其中a为方阵)的矩阵方程:

a = matrix(c(1,1, 1, -1), nrow = 2)
b = c(3,1)

solve(a, b)
## [1] 2 1

但当b缺失时,会默认其为单位矩阵,进而方程组的解为,等价于求a的逆矩阵:

solve(a)
##      [,1] [,2]
## [1,]  0.5  0.5
## [2,]  0.5 -0.5

4.4 diag函数

diag()函数的功能主要有4个:

  1. 获取已知方阵的对角线元素:

A = matrix(1:9, nrow = 3)
A
##      [,1] [,2] [,3]
## [1,]    1    4    7
## [2,]    2    5    8
## [3,]    3    6    9

diag(A)
## [1] 1 5 9
  1. 将已知方阵的对角线元素修改为指定值:

diag(A) <- c(1,2,3)
A
##      [,1] [,2] [,3]
## [1,]    1    4    7
## [2,]    2    2    8
## [3,]    3    6    3
  1. 生成指定大小的单位矩阵:

diag(3)
##      [,1] [,2] [,3]
## [1,]    1    0    0
## [2,]    0    1    0
## [3,]    0    0    1
  1. 生成指定元素和大小的对角矩阵:

diag(2, 3)
##      [,1] [,2] [,3]
## [1,]    2    0    0
## [2,]    0    2    0
## [3,]    0    0    2

diag(c(1,2, 3), 3)
##      [,1] [,2] [,3]
## [1,]    1    0    0
## [2,]    0    2    0
## [3,]    0    0    3
  • 第一个参数表示对角线元素,第二个参数表示矩阵行数。

5 案例

下面使用一个案例验证系数和标准误的估计结果。

使用R语言的lm()函数运行一个线性模型并输出结果:

model <- lm(mpg ~ wt + qsec, data = mtcars)
summary(model)

## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  19.7462     5.2521   3.760 0.000765 ***
## wt           -5.0480     0.4840 -10.430 2.52e-11 ***
## qsec          0.9292     0.2650   3.506 0.001500 **

手动计算模型系数和标准误:

X <- mtcars[c("wt", "qsec")]
Y <- mtcars["mpg"]

X <- as.matrix(X)
Y <- as.matrix(Y)

n <- dim(X)[1]
m <- dim(X)[2]
X <- cbind(rep(1,n), X)  


## 系数估计值

inv <- solve(t(X) %*% X) 
inv %*% t(X) %*% Y 
##            mpg
##      19.746223
## wt   -5.047982
## qsec  0.929198

### 标准误估计值 

sigma2 <- sum(residuals(model)^2)/(n-m-1)
sqrt(diag(sigma2 * inv))
##                  wt      qsec 
## 5.2520617 0.4839974 0.2650173
  • 比较可知,手动计算结果与lm()函数运行结果一致。

参考资料

[1]

矩阵求导公式的数学推导(矩阵求导——基础篇): https://zhuanlan.zhihu.com/p/273729929文章来源地址https://www.toymoban.com/news/detail-510526.html

到了这里,关于多元线性回归的系数及其标准差估计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 多元线性回归分析(Stata)

      本文借鉴了数学建模清风老师的课件与思路,可以点击查看链接查看清风老师视频讲解:清风数学建模:https://www.bilibili.com/video/BV1DW411s7wi 注:本节所有代码 在 regress_stata.do 文件里,复习的时候直接去运行里面的代码即可。 文章内容有点多,可以直接看最后的个人总结。

    2024年04月23日
    浏览(30)
  • 多元线性回归分析

    【基本思想】 1.多元线性回归分析的基本原理 多元线性回归模型是指含有多个自变量的线性回归模型,用于解释因变量与其他多个自变量之间的线性关系。多元线性回归模型数学表达式为: 式中,因变量y的变化可由两个部分解释:一是由k个自变量x的变化引起的y的变化部分

    2024年02月07日
    浏览(36)
  • GEE:多元线性回归

    作者:CSDN @ _养乐多_ 本文记录了在NDVI、EVI和LAI作为自变量,precipitation作为因变量的条件下,使用linearRegression函数进行线性回归分析的代码,代码在Google Earth Engine(GEE)平台上实现。具体而言,该函数可以计算NDVI、EVI和LAI对precipitation的影响关系。通过线性回归分析,可以了

    2024年02月16日
    浏览(31)
  • 机器学习——多元线性回归算法

    多元线性回归算法,即多特征量线性回归算法,用多个特征量来进行预测,如这里用多个特征量(房子面积、卧室数量、房屋楼层数、房子年龄)来预测房子的售价问题 假如有一个多特征量的机器学习问题,并且这个问题中的多个特征可以在一个相近的范围内取值,那么可以

    2024年02月22日
    浏览(35)
  • Python预测——多元线性回归

    答辩结束了,把论文里有用的东西摘出来。 多元线性回归模型: 其中 y 为要预测的变量,x 为影响 y 值的变量,b 为回归系数,计算方式为: 计算结果为一个矩阵,分别对应b0,b1,b2,b3。 对猪肉价格进行预测,即猪肉价格作为 y,选择猪肉价格指数,生猪屠宰量,猪粮比作

    2024年02月03日
    浏览(29)
  • 多元线性回归-Lasso

    目录 1.Lasso与多重共线性 2. Lasso的核心作用:特征选择 3. 选取最佳的正则化参数取值          Lasso全称最小绝对收缩和选择算子(Least absolute shrinkage and selection operator),由于这个名称过于复杂所以简称为Lasso,和岭回归一样,Lasso是用来作用于多重共线性的算法,不过Lass

    2024年02月16日
    浏览(31)
  • Matlab 多元线性回归

    使用matlab对tif格式的遥感影像进行多元线性回归,建立用NDVI、EVI、VV、VH等数据反演地上森林生物量(AGB)的方程。 Y = a 0 + a 1 ∗ X 1 + a 2 ∗ X 2 + ⋅ ⋅ ⋅ + a n ∗ X n Y=a_0+a_1*X_1+a_2*X_2+···+a_n*X_n Y = a 0 ​ + a 1 ​ ∗ X 1 ​ + a 2 ​ ∗ X 2 ​ + ⋅ ⋅ ⋅ + a n ​ ∗ X n ​ 其中 Y Y Y 是

    2024年02月07日
    浏览(30)
  • 多元线性回归算法(SPSS)

    接上篇 (1条消息) 多元线性回归算法(matlab)_成、谋的博客-CSDN博客 本篇博客主要参考自文章: (1条消息) 数学建模暑期集训6:用SPSS对数据进行多元线性回归分析_zstar-_的博客-CSDN博客_多元线性回归分析spss 三个变量:树干直径、树干高度、树干体积, 树干体积和树干直径、

    2023年04月20日
    浏览(32)
  • 多元线性回归模型

    目录 一、一元线性回归之旧轿车价格案例 二、多元线性回归之洞庭湖污染物案例实测 三、说一说plot函数的用法 四、感想 直接上例题 一、一元线性回归之旧轿车价格案 以x表示使用年数,y表示相应平均价格。根据表中x、y的数据,建立一个数据模型,分析旧轿车平均价格与

    2024年02月05日
    浏览(30)
  • 多元线性回归算法(matlab)

    b:回归系数点估计 bint:回归系数区间估计 r:残差 rint:置信区间 stats:用于检验的统计量,有三个数值,相关系数r^2,F值,与F对应的概率p alpha:显著性水平(缺省时为0.05) 说明:相关系数r^2越接近1,说明回归方程越显著; F越大,说明回归方程越显著 与F对应的概率pa(显著性水

    2024年02月07日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包