使用R进行统计分析——回归分析

/ default / 0 条评论 / 2730浏览

准备工作 首先导入数据并创建名为lr_data的数据表。

#读取并创建数据表 lr_data=data.frame(read.csv('lr_data.csv',header = 1)) 查看导入数据表的维度,结果显示456行,4列。

#查看数据表维度 dim(lr_data) 1 456 4 查看数据表中各字段的名称,结果显示共有4个字段,三个变量和一个目标。

#查看数据表的字段名称 names(lr_data) 1 "variable1" "variable2" "variable3" "goal"

一元回归 使用lm()函数对变量1和目标值进行一元回归分析,并创建回归方程。R方为0.7778。说明自变量可以对因变量78%的变化进行解释。

    #进行一元回归分析
fit=lm(goal~variable1,data=lr_data)
summary(fit)

请输入图片描述 多元回归 使用三个变量和目标值进行多元回归分析,R方为0.85,说明三个自变量可以对因变量85%的变化进行解释。

#进行多元回归分析
fit=lm(goal~variable1+variable2+variable3,data=lr_data)
summary(fit)

请输入图片描述

逐步回归(向后) 使用逐步回归的方法从三个自变量中选择用于预测的变量。逐步回归中有向前和向后两种方法。向前逐步回归每次增加一个变量,直到模型不再改变。向后逐步回归每次减少一个变量,直到模型不再改变。这里使用向后逐步回归的方法选择预测变量。

#加载MASS库
library(MASS)
#建立多元回归模型
fit1=lm(goal~variable1+variable2+variable3,data=lr_data)
#向后逐步回归
stepAIC(fit,direction="backward")

请输入图片描述

全子集回归 除了逐步回归方法外,还有全子集回归方法可以用于挑选预测变量。全子集回归检测所有的变量,并展示最佳的模型的结果。下面是使用全子集回归的代码和结果。

#加载leaps库
library(leaps)
#使用全子集回归方法并绘制图表
leaps=regsubsets(goal~variable1+variable2+variable3,data=lr_data,nbest=2)
plot(leaps,scale='adjr2')

请输入图片描述