专注系列化高质量的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   12t(A)
##      [,1] [,2] [,3]
## [1,]    1    2    3
## [2,]    4    5    6
## [3,]    7    8    9
## [4,]   10   11   12

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

a <- 1:3dim(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    9diag(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    2diag(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

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

  1. python 多元线性回归的系数检验 t p值_多元线性回归检验t检验(P值),F检验,R方等参数的含义...

    做线性回归的时候,检验回归方程和各变量对因变量的解释参数很容易搞混乱,下面对这些参数进行一下说明: 1.t检验:t检验是对单个变量系数的显著性检验   一般看p值:    如果p值小于0.05表示该自 ...

  2. UA MATH571A 多元线性回归V 自相关与非线性模型简介

    UA MATH571A 多元线性回归V 自相关与非线性模型简介 一阶误差自相关模型 Durbin-Watson检验 一阶自相关的消去 Cochrane-Orcutt方法 Hildreth-Lu方法 非 ...

  3. matlab中多元线性回归regress函数精确剖析(附实例代码)

    matlab中多元线性回归regress函数精确剖析(附实例代码) 目录 前言 一.何为regress? 二.regress函数中的参数 三.实例分析 总结 前言 regress函数功能十分强大,它可 ...

  4. 三、多元线性回归模型(计量经济学学习笔记)

    ①多元线性回归模型及古典假定 1.1多元线性回归模式 多元线性回归模型是指对各个回归参数而言是线性的,而对于变量既可以是线性的,也可以不是线性的. 一般地,由n个单位构成的总体,包含被解释变量Y和k- ...

  5. [学习笔记]多元线性回归的matlab实现

    1. Matlab函数 函数:regress [b,bint,r,rint,stats]=regress(y,x); 参数:x.y X:矩阵x表示预测变量,要注意的是如果有常数项,要在矩阵x中包含一个 ...

  6. 回归方程的拟合优度检验_计量经济学第四讲(多元线性回归模型:基本假定,参数估计,统计检验)...

    第三章.经典单方程计量经济学模型:多元线性回归模型 3.1多元线性回归模型及其基本假定 3.1.1多元回归模型及其表示 解释变量至少有两个的线性回归模型,一般形式为 如果不作说明, 是不包括常数项的解 ...

  7. 简单线性回归(Simple Linear Regression)和多元线性回归(Multiple Regression)学习笔记

    简单线性回归(Simple Linear Regression) 0.前提介绍: 为什么需要统计量? 统计量:描述数据特征 0.1集中趋势衡量 0.1.1均值(平均数,平均值) (mean):(求和除 ...

  8. 统计学 多元线性回归

    文章目录 统计学 多元线性回归 多元线性回归模型 拟合优度 显著性检验 线性关系检验 回归系数检验 多重共线性及其处理 多重共线性的问题 多重共线性的识别与处理 变量选择 利用回归方程进行预测 哑变量 ...

  9. 多元线性回归分析spss结果解读_SPSS--回归-多元线性回归模型案例解析

    多元线性回归,主要是研究一个因变量与多个自变量之间的相关关系,跟一元回归原理差不多,区别在于影响因素(自变量)更多些而已,例如:一元线性回归方程 为: 毫无疑问,多元线性回归方程应该为: 上图中的 x ...

最新文章

  1. 顶级生物信息学 RSS 订阅源
  2. 用栈实现队列和用队列实现栈
  3. [蓝牙] 6、基于nRF51822的蓝牙心率计工程消息流Log分析(详细)
  4. mycat 编辑schema.xml
  5. python语法错误修改_python基础之错误、调试(异常处理)
  6. list循环赋值_Python之 for循环
  7. .NET Core第三方开源Web框架YOYOFx
  8. 非科班Java尝试全国高校计算机能力挑战赛第三届计挑赛
  9. python中的画布背景设置_教你用python画图—Turtle详细教程
  10. java 串的顺序存储_算法入门之串的顺序存储表示
  11. solr php大小写,Solr 学习(6) —- Solr的PHP客户端
  12. 自定义控件之绘图篇(一):概述及基本几何图形绘制
  13. java settimezone_Java时间处理2----时区TimeZone类方法探究(Java8以前)
  14. 关于map的初级应用
  15. 系统测试(重点知识)
  16. MC2D v0.0.6 Source Code
  17. Prometheus的函数和计算公式
  18. android长按呼出菜单,Android系统下长按菜单的实现方式
  19. sync.Once化作一道光让我顿悟
  20. 系统工程师应具备的技能

热门文章

  1. 东野圭吾:“放弃不难,但坚持一定很酷。 ”
  2. Metro UI CSS 学习笔记之一:简介和Metro UI CSS 环境搭建
  3. 启动未来城市数据中心的设想
  4. 情缘沙世界,妙笔如生花
  5. enspac启动失败代码2_eNSP华为路由交换设备模拟器AR设备启动失败“错误代码40”问题解决方案...
  6. Web开发人员的十大最佳角度课程,教程和书籍
  7. 云挖矿怎么玩?99Pool引发矿池行业新思考
  8. NOI 2014 动物园
  9. 最大化控制资源成本 华为OD真题 200
  10. css+y轴平移,如何使用css translate实现平移?