banner

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

作者: afenxi来源: afenxi时间:2016-11-24 14:23:17

摘要:使用R进行统计分析——回归分析。

使用R进行统计分析——回归分析-数据分析网 准备工作

首先导入数据并创建名为lr_data的数据表。

1 2 #读取并创建数据表 lr_data=data.frame(read.csv(lr_data.csv,header = 1))

查看导入数据表的维度,结果显示456行,4列。

1 2 3 #查看数据表维度 dim(lr_data) [1] 456 4

查看数据表中各字段的名称,结果显示共有4个字段,三个变量和一个目标。

1 2 3 #查看数据表的字段名称 names(lr_data) [1] "variable1" "variable2" "variable3" "goal" 一元回归

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

1 2 3 #进行一元回归分析 fit=lm(goal~variable1,data=lr_data) summary(fit) 使用R进行统计分析——回归分析-数据分析网 多元回归

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

1 2 3 #进行多元回归分析 fit=lm(goal~variable1+variable2+variable3,data=lr_data) summary(fit) 使用R进行统计分析——回归分析-数据分析网 逐步回归(向后)

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

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

使用R进行统计分析——回归分析-数据分析网 向后逐步回归每次减少一个变量,因此在第一步时使用了所有的三个变量,在第二步时减少了其中的一个变量,再次减少变量后模型不再变化,因此结果为使用变量2和变量3作为预测变量。

全子集回归

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

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

使用R进行统计分析——回归分析-数据分析网 在上图中,Y轴为R方值,X轴为截距和三个变量。只包含截距和变量1的模型R方为0.78,只包含截距和变量3的R方为0.82,只包含截距和变量2的R方式0.85。R方最高的模型包含截距,变量2和变量3,R方值为0.85。

变量重要性排序

在多元回归的三个变量中,还可以比较不同变量对结果的重要性。换句话说就是不同自变量对因变量的影响程度,具体的方法是先对数据进行标准化处理,然后对标准化回归系数进行对比,当其他预测变量不变的情况下,单独一个预测变量对因变量的变化。

1 2 3 4 5 6 #对数据表进行标准化处理 z_data=as.data.frame(scale(lr_data)) #创建多元回归模型 zfit=lm(goal~variable1+variable2+variable3,data=z_data) #输出标准化回归系数 coef(zfit) 使用R进行统计分析——回归分析-数据分析网

在上面截图中,变量2的一个标准差变化增加0.721个因变量的变化,变量3的一个标准差的变化增加0.157个因变量的变化。变量1的一个标准差的变化增加0.050个因变量的变化。因此重要程度依次为变量2,变量3和变量1。

比较模型拟合优度

我们选择最重要的变量2和变量3建立模型,并与之前包含三个变量的模型进行比较,看看去掉一个变量后模型的拟合优度是否有变化。

1 2 3 4 5 #创建模型 Fit2=lm(goal~variable2+variable3,data=lr_data) Fit3=lm(goal~variable1+variable2+variable3,data=lr_data) #对比模型拟合优度 anova(fit2,fit3)

使用R进行统计分析——回归分析-数据分析网 P=0.3931,检验不显著,因此可以将变量1从模型中删除。

banner
看过还想看
可能还想看
最新文章
Yonghong Z-Suite一站式大数据分析平台 —— 以卓越的数据技术为客户创造价值,实现客户成功。