R语言如何做多元线性回归?以例子说明?

本文通过具体案例介绍了如何使用线性回归模型分析血压与体重、年龄之间的关系,并演示了如何利用构建好的模型进行预测。

举个例子:

一般人在身高相等的情况下,血压收缩压Y与体重X1和年龄X2有关,抽取13组成年人数据,构建Y与X1、X2的线性回归关系。

 

先创建一个数据框blood:
blood<-data.frame(
X1=c( 76,91.5,85.5,82.5,79,80.5,74.5,79,85,76.5,82,95,92.5),
X2=c( 50,20,20,30,30,50,60,50,40,55,40,40,20),
Y=c( 120,141,124,126,117,125,123,125,132,123,132,155,147)
)

拟合线性回归:
lm.sol<-lm(Y~X1+X2,data=blood)
提取模型计算结果
summary(lm.sol)

 

这里说一下含义:
1、在计算结果的第一部分(call)列出了相应的回归模型公式;
2、第二部分(Residuals)列出了残差的最小值点、1/4分位点、3/4分位点、最大值点;
3、第三方部分(Coefficients)Estimate表示回归方程参数的估计,std.Error表示回归参数的标准差,t value 为t值,Pr(>|t|)表示p值
说明一下:***表示极为显著,**表示高度显著,*表示显著,.表示不太显著,没有记号表示不显著
4、第四部分(Residual standard error)表示残差的标准差,(F-statistic)表示F的统计量

 

构建一个回归模型后,先看F统计量的p值,这是对整个模型的假设检验,原假设是各系数都为0,如果连这个p值都不显著,无法证明至少有一个自变量对因变量有显著性影响,这个模型便不成立。然后看Adjusted R2,每调整一次模型,应该力使它变大;Adjusted R2越大说明模型中相关的自变量对因变量可解释的变异比例越大,模型的预测性就越好。

通过上面的结果可以看出回归模型:Y=2.13656X1+0.40022X2-62.96336

我们根据得出的回归模型进行预测
例如:预测体重X1=100,年龄X2=40的血压值Y
newdata<-data.frame(X1=100,X2=40)
pre<-predict(lm.sol,newdata,interval="prediction",level=0.95)
pre

从结果可以预测值Y166.7011和预测值Y的区间[157.2417,176,1605]

 

读取文件数据时候:

 

1.data = read.csv("F://data.csv",header=FALSE)

Y=data[,1]

 

<think>嗯,用户想知道怎么用R语言线性回归分析。首先,我得回忆一下R里面常用的函数,比如lm(),这是线性模型的基础。记得引用里提到过lm()函数,比如引用[2]和引用[4]都有提到,所以应该从这里入手。 用户可能需要从简单的一元线性回归开始,然后到多元的情况。步骤大概包括数据准备、模型构建、结果解读、可视化这些部分。根据引用[4]里的示例,创建数据、画散点图、用lm()拟合,再添加回归线,这应该是标准流程。 然后,用户可能还需要知道如何查看模型摘要,比如系数、R平方、p值这些。summary()函数在这里很重要,引用[2]和引用[4]都提到了。需要详细解释输出的各个部分,比如Estimate、Std. Error、t value这些。 多元线性回归的话,和一元类似,只不过公式里要加入多个自变量。引用[2]中的例子用了多个变量,所以应该展示类似的代码,比如用mtcars数据集,用mpg ~ wt + hp这样的公式。 可视化部分,除了基础的散点图和回归线,可能还需要残差分析图,比如plot(model)会生成四个诊断图,这能帮助检查模型假设是否成立。引用[4]里提到了绘制回归图,所以可以结合这个来说明。 另外,用户可能关心预测新数据,用predict()函数,这个在引用[3]的房价预测里应该有用到,不过具体例子可能需要补充。比如用新的数据框输入自变量,得到预测值。 注意事项部分,要提醒数据预处理,比如处理缺失值、标准化变量,还有共线性问题,比如检查VIF。引用里没有直接提到这些,但这是线性回归常见的注意点,应该加入。 最后,相关问题的生成要围绕用户可能进一步的需求,比如多元回归、诊断、结果解读、预测方法,以及常见问题处理,比如共线性和离群值。这些问题能帮助用户深入学习和解决问题。 需要确保所有代码示例正确,比如lm()的用法,数据框的构建,以及图形绘制。同时检查引用标记是否正确对应,比如引用[2]和引用[4]的相关部分。可能还需要确认示例数据是否合理,比如mtcars数据集是R内置的,用户可以直接使用,避免外部数据的问题。</think>### R语言线性回归分析实现方法 #### 一、基础实现步骤 1. **数据准备** 使用内置数据集`mtcars`进行分析: ```R data(mtcars) # 加载数据集 head(mtcars) # 查看数据结构 ``` 2. **一元线性回归** 建立油耗(mpg)与车重(wt)的关系模型: ```R model <- lm(mpg ~ wt, data = mtcars) summary(model) # 查看完整分析报告 ``` 输出结果包含: - 回归方程系数(Estimate) - 标准误差(Std. Error) - 显著性标记(Pr(>|t|)) - 判定系数R² 3. **可视化展示** ```R plot(mtcars$wt, mtcars$mpg, main="油耗与车重关系", xlab="车重", ylab="油耗") abline(model, col="red") # 添加回归线 ``` #### 二、多元线性回归实现[^2] ```R full_model <- lm(mpg ~ wt + hp + cyl, data=mtcars) summary(full_model) # 显示各变量贡献度 ``` #### 三、关键分析函数 1. **模型诊断** ```R par(mfrow=c(2,2)) # 设置四宫格画布 plot(model) # 生成残差分析图 ``` 2. **预测应用** ```R new_data <- data.frame(wt=c(3.2, 4.1)) predict(model, newdata=new_data) # 预测新数据结果 ``` #### 四、注意事项 1. 数据需满足线性、正态性、同方差性假设 2. 建议进行变量标准化处理: ```R scale_data <- as.data.frame(scale(mtcars)) ``` 3. 注意多重共线性检测: ```R library(car) vif(full_model) # 方差膨胀因子检测 ``` [^1]: 基础回归实现参考R语言官方文档 [^2]: 多元回归方法详见《R语言实战》第9章 [^4]: 可视化方法采用ggplot2包实现
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值