多元线性回归分析(R语言)

article/2025/10/8 21:33:24

▼多元线性回归分析▼

一、多元线性回归模型

设变量Y与X1,X2,……,Xp之间有线性关系

                                        Y = \beta _{0} + \beta _{1} X_{1}+ \beta _{2} X_{2}+ \cdots +\beta _{p} X_{p} + \varepsilon

其中  \varepsilon \sim N(0,\sigma ^{^{2}})  ,\beta _{0},\beta _{1},\beta _{2},\cdots ,\beta _{p} 和 \sigma ^{2} 是未知参数,p≥2,称上公式为多元线性回归模型。

二、参数估计

我们根据多元线性回归模型,认为误差 \varepsilon 应是比较小的,然后对 \beta _{0},\beta _{1},\beta _{2},\cdots ,\beta _{p} 求偏导并令其等于0,可以得到正规方程:

                                           X^{^{T}}X\beta = X^{T}Y

因为 rank(X^{T}X) = rank(X) = p+1 ,故 \left ( X^{T} X\right )^{-1} 存在,解正规方程,可以得到β的最小二乘估计:

                                          \hat{\beta }=\left ( X^{T}X \right )^{-1}X^{T}Y

三、回归方程的显著性检验

给出定义:回归方程的显著性检验等价于检验回归系数是否全为零,即检验:

                   H_{0}:\beta _{1}=\beta _{2}=\cdots =\beta _{p}=0,H_{1}:\beta _{1},\beta _{2},\cdots ,\beta _{p} 不全为零

下面给出必要的公式:

残差平方和SSE:

                                 SSE=\sum_{i=1}^{n}\left ( y_{i} -\hat{y}\right )^{2}

回归平方和SSR:

                                SSR=\sum_{i=1}^{n}\left (\hat{} y_{i} -\bar{y}\right )^{2}

总的离差平方和:

                                SST=SSE+SSR

统计量F:

                                 F=\frac{SSR/p}{SSE/(n-p-1)}

对于给定的显著性水平α,检验的拒绝域:

                                 F|F>F_{\alpha }(p,n-p-1)

四、回归系数的显著性检验

回归方程显著,并不意味着每个自变量对因变量的影响都显著,通常会进行回归系数的检验,假设检验为:

                                 H_{0i}:\beta _{i}=0, H_{1i}:\beta _{i}\neq 0

给出t值检验法公式:

                                  t_{i}=\frac{\hat{\beta i}}{\hat{\sigma }\sqrt{c_{ii}}}\sim t(n-p-1)

其中  

                                   \hat{\alpha }=\sqrt{\frac{SSE}{n-p-1}}

对于给定的显著性水平α,检验的拒绝域:

                                  |t_{i}|>t_{\frac{\alpha }{2}}(n-p-1)

另外,还可以确定\beta _{i} 的置信度为1-α的置信区间:

                                 (\hat{\beta _{i}}-t_{\frac{\alpha }{2}}(n-p-1)\sqrt{c_{ii}}\hat{\sigma},\hat{\beta _{i}}+t_{\frac{\alpha }{2}}(n-p-1)\sqrt{c_{ii}}\hat{\sigma})

五、例题实战

题目: 文件“T3house.txt”中给出了美国某住宅区的20个家庭房价相关数据。

数据:T3house.txt

   15.31    57.3    74.8
   15.20    63.8    74.0
   16.25    65.4    72.9
   14.33    57.0    70.0
   14.57    63.8    74.9
   17.33    63.2    76.0
   14.48    60.2    72.0
   14.91    57.7    73.5
   15.25    56.4    74.5
   13.89    55.6    73.5
   15.18    62.6    71.5
   14.44    63.4    71.0
   14.87    60.2    78.9
   18.63    67.2    86.5
   15.20    57.1    68.0
   25.76    89.6   102.0
   19.05    68.6    84.0
   15.37    60.1    69.0
   18.06    66.3    88.0
   16.35    65.8    76.0

 a.将矩阵第一列记为变量z1=总居住面积,第二列记为变量z2=评估价值,第三列记为Y=售价。

library(foreign)
data <-read.table("T3house.txt")
data1<-as.matrix(data[1:20,1:3],dimnames="cc")
colnames(data1) <- c("z1","z2","Y");data1

b.将a中的各个变量生成数据框,做关于Y和z1,z2的回归,显示计算结果。

data2<-data.frame(data1);data2#使用内置函数
#lm.1<-lm(Y~z1+z2,data=data2)
#summary(lm.1)#自编程序
z0<-c(rep(1,20))
data3<-data.frame(z0,data2)
attach(data3)
A<-as.matrix(data3)
X<-A[1:20,1:3]
Y<-A[1:20,4]
Y<-as.vector(Y)
b<-solve(t(X)%*%X)%*%t(X)%*%Y;b
#结果
#z0 30.96656634
#z1  2.63439962
#z2  0.04518386
#故回归方程为Y=30.6656634+2.63439962 z1 + 0.04518386 z2

c.根据b中的结果分别给出β1和β2的置信系数为90%的置信区间。

data3<-data.frame(z0,data2);data3
n<-nrow(data3);
p<-ncol(data3);
p<-p-1
C<-solve(t(X)%*%X)
A<-as.matrix(data3)
X<-A[1:20,1:3]
lm.1<-lm(Y~z1+z2,data=data3)
SSE=deviance(lm.1)
shita<-sqrt(SSE/(n-p-1))
t1<-b[2]/(shita*sqrt(C[1,1]));t1
t2<-b[3]/(shita*sqrt(C[2,2]));t2
b1<-c(b[2]-1.7247*shita*sqrt(C[1,1]),b[2]+1.7247*shita*sqrt(C[1,1]));b1
b2<-c(b[3]-1.7247*shita*sqrt(C[2,2]),b[3]+1.7247*shita*sqrt(C[2,2]));b2
#结果
#-11.37843  16.64723
#-1.351438  1.441806

d.假设某房间总居住面积为15,评估价值为55,试给出该房屋售价的点估计、预测区间和估计区间(置信系数95%)。

y0<-b[1]+15*b[2]+55*b[3];y0
#点估计72.96767newdata<-data.frame(z1=15,z2=55)
lmpred<-predict(lm.1,newdata,interval="prediction",level=0.95)
lmpred

e.计算20个房屋价格的拟合值,并做残差对拟合值的残差图。

resid<-residuals(lm.1)
pre<-predict(lm.1);pre #等价于y,拟合值#方法二
y=x
for(i in 1:20)
{y[i]=b[1]+X[i,2]*b[2]+X[i,3]*b[3]
}
y; #拟合值
plot(pre,resid)

f.计算回归系数β的最小二乘估计,误差方差σ2的估计,残差向量,残差平方和,回归平方和,方程显著性检验F统计量,复相关系数,修正的复相关系数。将上述8个量写入一个列表并显示出结果。

#第一个量
b;
#第二个量
shita2<-SSE/(n-p-1);shita2
#第三个量
e<-Y-X%*%b;e
#第四个量
y1<-mean(Y)
sse<-0
for(i in 1:20)
{y[i]=b[1]+X[i,2]*b[2]+X[i,3]*b[3]
}
for(j in 1:20)
{sse<-sse+(Y[j]-y[j])**2
}
sse;
#第五个量
ssr<-0;
y0<-mean(Y)
for(k in 1:20)
{ssr<-ssr+(y[k]-y0)**2
}
ssr;
#第六个量
F<-(ssr/p)/(sse/(n-p-1));F
#第七个量
R<-ssr/(sse+ssr);R
#第八个量
R2<-sqrt(1-(sse/(n-p-1))/((sse+ssr)/(n-1)));R2
#列表
list.data <- list(b, shita2, e, sse, ssr,F,R,R2);list.data

相关资料:数据分析与R软件第二版(李素兰著)每章例题代码和数据,下载地址:https://download.csdn.net/download/lph188/10802159


http://chatgpt.dhexx.cn/article/KLdM2NP1.shtml

相关文章

用Python进行多元线性回归分析(附代码)

https://developer.51cto.com/art/202008/624683.htm 很多人在做数据分析时会经常用到一元线性回归&#xff0c;这是描述两个变量间统计关系的最简单的回归模型。但现实问题中&#xff0c;我们往往会碰到多个变量间的线性关系的问题&#xff0c;这时就要用到多元线性回归&#…

R语言 —— 多元线性回归

一、模型简介 一元线性回归是一个主要影响因素作为自变量来解释因变量的变化&#xff0c;在现实问题研究中&#xff0c;因变量的变化往往受几个重要因素的影响&#xff0c;此时就需要用两个或两个以上的影响因素作为自变量来解释因变量的变化&#xff0c;这就是多元回归亦称多…

机器学习10—多元线性回归模型

多元线性回归模型statsmodelsols 前言什么是多元线性回归分析预测法 一、多元线性回归二、多元线性回归模型求解2.1最小二乘法实现参数估计—估计自变量X的系数2.2决定系数&#xff1a;R 与调整后 R2.3F检验参数2.4对数似然、AIC与BIC2.5回归系数标准差2.6回归系数的显著性t检验…

线性回归——简单线性回归、多元线性回归

回归分析是用来评估变量之间关系的统计过程。用来解释自变量X与因变量Y的关系。即当自变量X发生改变时&#xff0c;因变量Y会如何发生改变。 线性回归是回归分析的一种&#xff0c;评估的自变量X与因变量Y之间是一种线性关系。当只有一个自变量时&#xff0c;称为简单线性回归&…

[学习笔记]多元线性回归分析——理解篇

回归分析是数据分析中最基础最重要的分析工具&#xff0c;绝大多数的数据分析问题&#xff0c;都可以使用回归的思想来解决。回归分析的任务就是&#xff0c;通过研究自变量x和因变量y的相关关系&#xff0c;尝试去解释y的形成机制&#xff0c;进而达到通过x去预测y的目的。 常…

用 Python 进行多元线性回归分析(附代码)

很多人在做数据分析时会经常用到一元线性回归&#xff0c;这是描述两个变量间统计关系的最简单的回归模型。但现实问题中&#xff0c;我们往往会碰到多个变量间的线性关系的问题&#xff0c;这时就要用到多元线性回归&#xff0c;多元线性回归是一元回归的一种推广&#xff0c;…

【数学建模】-多元线性回归分析

文章目录 回归的思想回归分析&#xff1a;研究X和Y之间相关性的分析。相关性因变量Y自变量X 回归分析的使命回归分析的分类数据的分类一元线性回归对于线性的理解回归系数的解释内生性的探究内生性的蒙特卡罗模拟核心解释变量和控制变量回归系数的解释什么时候取对数&#xff1…

多元回归分析

建模复习 目录 前言 一、回归的思想 1,介绍 2&#xff0c;回归分析的分类 3&#xff0c;数据类型 二、一元线性回归 1&#xff0c;一元线性函数拟合 2&#xff0c;一元线性回归模型 3&#xff0c;回归系数 1&#xff0c;回归系数的解释 2&#xff0c;内生性 3&…

VC2015运行库安装失败

VC2015安装失败&#xff0c;0x80240017-未指定的错误。 32位操作系统 64位操作系统 依次安装即可。 网盘链接&#xff1a;https://pan.baidu.com/s/1FGSAbpPuxTwszrQGMblPRg 提取码&#xff1a;z6ah 如遇到缺少什么.dll&#xff0c;可以通过增加某dll至环境变量中。

VC运行库修复安装一键安装

VC.RedistInstaller1.6.rar: http://u1.share.orcy.net.cn/file/12559096-413098201 如果上述安装不成功可尝试下载&#xff1a; Visual C AIO v2019.05.21&#xff08;自动强制安装谨慎双击&#xff09;.zip: http://u1.share.orcy.net.cn/file/12559096-413098413 ------…

phpstudy没有安装VC11、VC14运行库

文章目录 出现问题解决方案安装步骤安装VC11安装VC14验证结果出现问题 phpstudy2018–>切换版本php-5.5.36时—>提示错误 解决方案

Windows 技术篇-通过注册表查找vc运行库所在位置实战演示,通过ProductCode查看vc++运行库安装位置

vc 运行库各个版本的位置安装位置不尽相同&#xff0c;而且根据安装方式不同也有一定区别&#xff0c;总结了一套自己的方法&#xff0c;我们自己来探索&#xff1a; 我用 vc2015 举例&#xff0c;2015 有很多版本&#xff0c;每个版本对应的产品代码是不一样的&#xff0c;我…

vc2005运行库彻底卸载_VC运行库安装卸载工具-Visual C ++ AIO(VC运行库安装卸载工具)下载 v2019.05.21官方版--pc6下载站...

VisualCAIOVC运行库安装卸载工具包含了所有VisualC最新版&#xff0c;可以通过命令行静默安装&#xff0c;可以卸载所有已安装版本及更新为最新版&#xff0c;总之这是一个不错的VisualC运行库安装卸载程序。。 相关软件软件大小版本说明下载地址 Visual C AIO(VC运行库安装卸…

c语言 运行库 下载,Visual C++运行库合集

Visual C++运行库合集是基于Windows操作系统打造的可视化集成开发环境,能够为用户提供C、标准C++、ATL、MFC、OpenMP以及MSDIA等类库的运行支持,助广大用户能够更好在自己的电脑上运行VisualC++ 开发的应用程序。 Visual C++运行库具有集成开发环境,可提供编辑C语言,C++以及…

win10自带vc运行库吗?

运行库是系统中非常重要的组件&#xff0c;像一些绿化版的软件如果电脑没有运行库就无法运行&#xff0c;但是也不一定就要安装VC运行库一般而言&#xff0c;将相关的.dll文件复制出来&#xff0c;放在相关程序所在目录中就可以了。比如小编从网上下载了一款破解版的QQ&#xf…

phpStudy启动失败提示:缺少VC9运行库

镜像是官方2008 64位中文版 按照提示安装了VC9以后 软件依旧无法运行阿帕奇&#xff0c;提示缺少VC9运行库这是因为&#xff1a;64位系统除了要装64位的运行库也要装32位的运行库32位的VC9运行库下载&#xff1a;http://www.microsoft.com/zh-CN/download/details.aspx?id5582…

php程序检测不到vc9,XAMPP2016中文精简版启动失败 缺少运行库解决办法

[摘要] XAMPP是一款强大的建站集成软件包&#xff0c;但XAMPP2016 中文精简版在启动的时候会出现“缺少运行库”“程序检测不到VC9运行库”等问题&#xff0c;其实只需要正确安装vc9库就能解决问题了。 XAMPP是一款强大的建站集成软件包&#xff0c;对于经常折腾WordPress的博主…

请自行检查是否安装VC9运行库??

phpStudy是一款PHP调试环境的程序集成包&#xff0c;该程序包集成最新的ApachePHPMySQLphpMyAdminZendOptimizer&#xff0c;一次性安装&#xff0c;无须配置即可使用&#xff0c;是非常方便、好用的PHP调试环境。 1、程序自带FTP服务器&#xff0c;支持多用户&#xff0c;无需…

phpStudy启动失败时的解决方法 提示缺vc9运行库

php5.3、5.4和apache都是用vc9编译&#xff0c;电脑必须安装vc9运行库才能运行。 php5.5、5.6是vc11编译&#xff0c;如用php5.5、5.6必须安装vc11运行库。 php7.0、7.1是vc14编译&#xff0c;如用php7.0、7.1必须安装vc14运行库。 vc9和vc11运行库下载&#xff1a;http://www.…

django2.0调用银联支付接口实现银联支付

准备工作&#xff1a; 1.银联技术开放平台注册&#xff1a;https://open.unionpay.com/tjweb/acproduct/list?apiservId448 2.点击网关支付 --> 我要测试 &#xff08;按照提示下载密钥&#xff09; 3.安装需要的模块 pip install pyOpenSSL 代码实现&#xff1a; 目录结…