用R进行多元线性回归分析建模

article/2025/8/28 10:11:03

概念:多元回归分析预测法,是指通过对两个或两个以上的自变量与一个因变量的相关分析,建立预测模型进行预测的方法。当自变量与因变量之间存在线性关系时,称为多元线性回归分析。

 

下面我就举几个例子来说明一下

 

例一:谋杀率与哪些因素有关

变量选择

states<-as.data.frame(state.x77[,c('Murder','Population','Illiteracy','Income','Frost')])
cor(states)#查看变量相关系数Murder Population Illiteracy     Income      Frost
Murder      1.0000000  0.3436428  0.7029752 -0.2300776 -0.5388834
Population  0.3436428  1.0000000  0.1076224  0.2082276 -0.3321525
Illiteracy  0.7029752  0.1076224  1.0000000 -0.4370752 -0.6719470
Income     -0.2300776  0.2082276 -0.4370752  1.0000000  0.2262822
Frost      -0.5388834 -0.3321525 -0.6719470  0.2262822  1.0000000

我们可以明显的看出谋杀率与人口,文盲率相关性较大

将它们的关系可视化

library(car)
scatterplotMatrix(states,spread=FALSE)

还可以这么看

fit<-lm(Murder~Population+Illiteracy+Income+Frost,data = states)
summary(fit)Call:
lm(formula = Murder ~ Population + Illiteracy + Income + Frost, data = states)Residuals:Min      1Q  Median      3Q     Max 
-4.7960 -1.6495 -0.0811  1.4815  7.6210 Coefficients:Estimate Std. Error t value Pr(>|t|)    
(Intercept) 1.235e+00  3.866e+00   0.319   0.7510    
Population  2.237e-04  9.052e-05   2.471   0.0173 *  
Illiteracy  4.143e+00  8.744e-01   4.738 2.19e-05 ***
Income      6.442e-05  6.837e-04   0.094   0.9253    
Frost       5.813e-04  1.005e-02   0.058   0.9541    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1Residual standard error: 2.535 on 45 degrees of freedom
Multiple R-squared:  0.567,	Adjusted R-squared:  0.5285 
F-statistic: 14.73 on 4 and 45 DF,  p-value: 9.133e-08

还可以这么看

#install.packages('leaps')
library(leaps)
leaps<-regsubsets(Murder~Population+Illiteracy+Income+Frost,data = states,nbest = 4)
plot(leaps,scale = 'adjr2')


 

最大值0.55是只包含人口,文盲率这两个变量和截距的。

 

还可以这样,比较标准回归系数的大小

 

zstates<-as.data.frame(scale(states))#scale()标准化
zfit<-lm(Murder~Population+Illiteracy+Income+Frost,data = zstates)
coef(zfit)(Intercept)    Population    Illiteracy        Income         Frost 
-2.054026e-16  2.705095e-01  6.840496e-01  1.072372e-02  8.185407e-03 

 

 

 

通过这几种方法,我们都可以明显的看出谋杀率与人口,文盲率相关性较大,与其它因素相关性较小。

回归诊断

> confint(fit)2.5 %       97.5 %
(Intercept) -6.552191e+00 9.0213182149
Population   4.136397e-05 0.0004059867
Illiteracy   2.381799e+00 5.9038743192
Income      -1.312611e-03 0.0014414600
Frost       -1.966781e-02 0.0208304170

标记异常值

qqPlot(fit,labels = row.names(states),id.method = 'identify',simulate = T)

图如下,点一下异常值然后点finish就可以了

查看它的实际值11.5与拟合值3.878958,这条数据显然是异常的,可以抛弃

> states['Nevada',]Murder Population Illiteracy Income Frost
Nevada   11.5        590        0.5   5149   188
> fitted(fit)['Nevada']Nevada 
3.878958 
> outlierTest(fit)#或直接这么检测离群点rstudent unadjusted p-value Bonferonni p
Nevada 3.542929         0.00095088     0.047544

car包有多个函数,可以判断误差的独立性,线性,同方差性

library(car)
durbinWatsonTest(fit)
crPlots(fit)
ncvTest(fit)
spreadLevelPlot(fit)

 

综合检验

 

#install.packages('gvlma')
library(gvlma)
gvmodel<-gvlma(fit);summary(gvmodel)

检验多重共线性

根号下vif>2则表明有多重共线性

> sqrt(vif(fit))
Population Illiteracy     Income      Frost 1.115922   1.471682   1.160096   1.443103

都小于2所以不存在多重共线性

 

 

 

 

例二:女性身高与体重的关系

attach(women)
plot(height,weight)

通过图我们可以发现,用曲线拟合要比直线效果更好

那就试试呗

 

fit<-lm(weight~height+I(height^2))#含平方项
summary(fit)Call:
lm(formula = weight ~ height + I(height^2))Residuals:Min       1Q   Median       3Q      Max 
-0.50941 -0.29611 -0.00941  0.28615  0.59706 Coefficients:Estimate Std. Error t value Pr(>|t|)    
(Intercept) 261.87818   25.19677  10.393 2.36e-07 ***
height       -7.34832    0.77769  -9.449 6.58e-07 ***
I(height^2)   0.08306    0.00598  13.891 9.32e-09 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1Residual standard error: 0.3841 on 12 degrees of freedom
Multiple R-squared:  0.9995,    Adjusted R-squared:  0.9994 
F-statistic: 1.139e+04 on 2 and 12 DF,  p-value: < 2.2e-16 

效果是很不错的,可以得出模型为

把拟合曲线加上看看

lines(height,fitted(fit))


非常不错吧

还可以用car包的scatterplot()函数

library(car)
scatterplot(weight~height,spread=FALSE,pch=19)#19实心圆,spread=FALSE删除了残差正负均方根在平滑曲线上
展开的非对称信息,听着就不像人话,你可以改成TRUE看看到底是什么,我反正不明白。

 

 

 

例三:含交互项

<strong>attach(mtcars)
fit<-lm(mpg~hp+wt+hp:wt)
summary(fit)
Call:
lm(formula = mpg ~ hp + wt + hp:wt)Residuals:Min      1Q  Median      3Q     Max 
-3.0632 -1.6491 -0.7362  1.4211  4.5513 Coefficients:Estimate Std. Error t value Pr(>|t|)    
(Intercept) 49.80842    3.60516  13.816 5.01e-14 ***
hp          -0.12010    0.02470  -4.863 4.04e-05 ***
wt          -8.21662    1.26971  -6.471 5.20e-07 ***
hp:wt        0.02785    0.00742   3.753 0.000811 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1Residual standard error: 2.153 on 28 degrees of freedom
Multiple R-squared:  0.8848,	Adjusted R-squared:  0.8724 
F-statistic: 71.66 on 3 and 28 DF,  p-value: 2.981e-13</strong>

其中的hp:wt就是交互项,表示我们假设hp马力与wt重量有相关关系,通过全部的三个星可以看出响应/因变量mpg(每加仑英里)与预测/自变量都相关,也就是说mpg(每加仑英里)与汽车马力/重量都相关,且mpg与马力的关系会根据车重的不同而不同。


 

 


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

相关文章

基于Python的多元线性回归分析

一、多元线性回归分析&#xff08;Multiple regression&#xff09; 1.与简单线性回归相比较&#xff0c;具有多个自变量x 2.多元回归模型 其中是误差值&#xff0c;与简单线性回归分析中的要求特点相一致。其余的系数和截距为参数。 3.多元回归方程 4.估计多元回归方程(点估…

多元线性回归--案例分析及python实践

回归分析--多元回归 介绍一下多元回归分析中的统计量 总观测值总自变量自由度&#xff1a;回归自由度 &#xff0c;残差自由度 SST总平方和 SSR回归平方和 SSE残差平方和 MSR均方回归 MSE均方残差 判定…

回归分析:多元线性回归模型 白话解析与案例实现

文章目录 线性学习多元线性回归模型多元线性回归模型的python实现 线性学习 回归分析是研究自变量x与因变量y的关系的方法。 上一节我们介绍了一元线性回归&#xff0c;经验公式为&#xff1a; $ \hat{y}\hat{\beta}1 x\hat{\beta}0 $ 在实际生活中&#xff0c;我们要研究的…

多元统计分析——多元线性回归

1. 经典的线性回归分析与交叉验证 examDict{ 学习时 :[0.50, 0.75, 1.00, 1.25,1.50,1.75, 1.75,2.00, 2.25,2.50, 2.75,3.00,3.25,3.50,4.00,4.25,4.50,4.75,5.00,5.50], 分:[10,22,13 ,43,20,22,33,50,62 , 48,55,75,62,73,81,76,64,82,90,93]} examDf pd.DataFrame(examDi…

spss进行多元线性回归并分析表格(转载)

1.如何使用spss进行多元线性回归。 2.分析生成结果&#xff0c;并判断回归是否可行。 一、使用spss进行多元线性回归&#xff1a; 1.输入数据 二、表格结果分析&#xff1a; R方是检验回归是否成功的重要要素之一&#xff0c;DW是残差独立性检验&#xff0c;衡量标准如下&…

数据分析方法--回归分析方法((SPSS建模:多元线性回归案例)

文章目录 回归定义最常用回归方法一、线性回归(Linear Regression)二、逻辑回归(Logistic Regression)三、多项式回归(Polynomial Regression)四、逐步回归(Stepwise Regression)五、岭回归(Ridge Regression)六、套索回归(Lasso Regression)七、回归(ElasticNet) 如何正确选择…

线性回归 - 多元线性回归案例 - 分析步骤、输出结果详解、与Python的结果对比 -(SPSS建模)

现在用 Python 写线性回归的博客都快烂大街了&#xff0c;为什么还要用 SPSS 做线性回归呢&#xff1f;这就来说说 SPSS 存在的原因吧。 SPSS 是一个很强大的软件&#xff0c;不用编程&#xff0c;不用调参&#xff0c;点巴两下就出结果了&#xff0c;而且出来的大多是你想要的…

SPSS--回归-多元线性回归模型案例解析!(一)

SPSS--回归-多元线性回归模型案例解析&#xff01;(一&#xff09; 多元线性回归&#xff0c;主要是研究一个因变量与多个自变量之间的相关关系&#xff0c;跟一元回归原理差不多&#xff0c;区别在于影响因素&#xff08;自变量&#xff09;更多些而已&#xff0c;例如&#x…

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

多元线性回归分析 一、回归的基本理解&#xff08;1&#xff09;回归的基本任务&#xff08;2&#xff09;回归里的关键词&#xff08;3&#xff09;回归里的数据类型&#xff08;4&#xff09;回归方程中的系数解释&#xff08;5&#xff09;扰动项要满足的条件&#xff08;1&…

多元线性回归分析详细介绍

一文搞懂——多元线性回归分析 回归分析定义回归的使命回归分析的分类数据的分类数据的收集 线性回归对于线性的理解回归系数的解释核心解释变量和控制变量四类模型回归系数的解释特殊的自变量&#xff1a;虚拟变量X含有交互项的自变量 回归实例题目Stata解决第一步&#xff1a…

多元线性回归分析示例

GLM模型应用于脑功能影像分析时&#xff0c;在某个因素影响下&#xff0c;由beta图&#xff0c;经过t检验得到脑区显著激活的区域。应用于其他地方也可加深我们对于模型的理解。 clc,clear; X[ 136.5 215136.5 250136.5 180138.5 2501…

【课程设计】计算机组成与系统结构

计算机组成与系统结构课程设计(2020.12) 保姆式教程 目录 计算机组成与系统结构课程设计(2020.12)一、本课程设计的性质、目的、任务二、本课程设计的基本理论三、课程设计的主要内容四、微程序流程图&#xff08;树形图&#xff09;五、模型机微指令表六、机器指令程序的说明…

计算机组成与系统结构课程设计

课程设计题目 综合运用所学计算机原理知识&#xff0c;设计并实现具有以下16条指令的指令集结构的模型计算机&#xff1a; 编号 助记符 机器指令码 说明 0 SUB Rd,Rs 0000 RdRs Rd-Rs→Rd 1 ADD Rd,Rs 0001 RdRs RdRs→Rd 2 AND Rd,Rs 0010 RdRs Rd&Rs→Rd &#xff08;Rd和…

计算机毕业设计、计算机课程设计怎么做?计算机设计1900套来帮你!

计算机毕业设计、计算机课程设计怎么做&#xff1f;计算机设计1900套来帮你&#xff01; 人生做什么事都有套路&#xff0c;大学毕业设计、课程设计通常比较简单&#xff0c;大多数都是找个项目做参考&#xff0c;有的人随便抄一抄糊弄一下&#xff0c;只要查重&#xff0c;格…

pycharm 安装numpy包——超简单

非常简单的安装步骤&#xff0c;自己百试不爽哦&#xff0c;废话不多说直接上图按以下步骤进行即可 一、找到安装numpy的地方 file→settings→project interpreter&#xff0c;点击右侧的&#xff0b;号 二、进行numpy 安装 搜索框内手动输入numpy进行搜索&#xff0c;选中…

python 如何安装numpy库?

&#xff08;我的微信&#xff1a;Kingsplusa&#xff0c;我总结了人工智能手推笔记和思维导图&#xff0c;欢迎一起进步学习。&#xff09; 首先我们要找到python安装的位置 winR打开 进入以后输入&#xff1a; where python 找到安装目录后&#xff0c;找到Scripts文件…

python中Numpy包的安装及使用

*****安装 python &#xff08;本文安装 python2.7&#xff09; *****安装 pip (1)检查是否已安装pip 进入cmd命令窗口&#xff0c;输入 pip --version &#xff0c;查看是否已安装pip&#xff0c;说明已安装了pip 否则&#xff0c;说明未安装pip 需要进入&#xff08;2&am…

Python2.7中安装numpy包

前言 花了一个下午的时间才成功安装了numpy&#xff0c;血与泪的教训。记录一下踩的坑。 安装环境 系统&#xff1a; win10 Python版本&#xff1a; 2.7.9 IDE&#xff1a;Pycharm 踩坑过程 尝试一 在Pycharm的setting中安装numpy 1.20.2&#xff08;最新版本&#xff09…

numpy安装过程

下载numpy库的详细方法 安装前提&#xff1a; 1、Python3.8安装完成并能够正常使用 2、下载相应的numpy安装包&#xff0c;.whl格式 安装详细步骤&#xff1a;* 首先&#xff0c;点击下面的链接进入numpy下载官网 链接地址&#xff1a;添加链接描述 进去之后&#xff0c;点击…

pycharm怎么安装numpy库

打开界面后&#xff0c;在File菜单中点击Settings选项 在弹出的窗口中点击project interpreter选项 找到并点击窗口左侧的号键 在搜索框中输入numpy&#xff0c;并点击上方第一个选项 点击底部最下方的install package按钮 当下方出现successfully字样时&#xff0c;就代表num…