本站分享:大数据、数据分析师考试认证培训,包括:Python培训Excel培训Matlab培训SPSS培训SAS培训R语言培训Hadoop培训Amos培训Stata培训Eviews培训广告位

如何用R语言做逻辑回归模型_R语言逻辑回归

r语言 cdadata 3495℃ 0评论

如何用R语言做逻辑回归模型

关键词: r语言 逻辑回归r语言 逻辑回归预测逻辑回归模型

如何在R语言环境下进行回归模型预测。以下的案例来自美国社会调查机构:为了研究谋杀率与哪些因素有关,收集美国50个地区的谋杀率、收入水平、文盲率、生活经验、霜冻天数的数据,如下图:

R语言做逻辑回归模型

1.分析不同地区的谋杀率分布特征。

从面的核密度图可见,谋杀率呈现正态分布的特征,输入代码:

par(mfrow=c(2,1))

d<-density(sj$谋杀率)

plot(d)

R语言做逻辑回归模型

2.分析不同变量的拟合性情况

这里主要调用car包,通过使用scatterplotMatrix() 函数,分析不同变量的相关关系及对因变量的拟合情况,输入如下代码:

library(car)

scatterplotMatrix(sj[,2:6])

R语言做逻辑回归模型

上面的拟合组合图可见,谋杀率与收入水平、生活经验以及霜冻天数呈现出负相关关系,而和文盲率呈现出正相关关系,这个比较好理解。

3.进一步检验各个变量之间的相关性

这里主要是使用psych包,通过corr.test()函数,计算各个变量之间的相关性及其显著性,在R环境中输入如下代码:

library(psych)

corr.test(sj[,2:6])

R语言做逻辑回归模型

上图第一部分,显示的是各个变量之间的相关性,第二部分显示的是各个相关性的显著性检验P值。从第一部分可见,谋杀率与文盲率、生活经验、霜冻天数分别具有0.7、-0.78以及-0.54的相关性,并且显著性水平P值均小于0.05,而谋杀率与收入水平的相关性不具有显著性,所以不列入模型。

4.尝试建立多元一项式回归模型

根据前面的分析结果,将文盲率、生活经验和霜冻天数列入模型,首先建立多元一项式模型,输入如下代码:

谋杀率<-lm(谋杀率~文盲率+生活经验+霜冻天数,data=sj)

summary(谋杀率)R语言做逻辑回归模型

从上图可见,残差的最大值3.95,最小值-3.969,中值0.184,残差具有正态分布的特征!第二部分显示的是各变量的系数及其显著性系数,唯有文盲率p>0.05,其它两个变量的系数都具有显著性;从第三部分可见,R=0.7217,表明72.17%的情况可以用该模型进行预测;且模型的方差检验的显著性P<0.05.

5.模型的回归诊断

从下面的回归诊断图可见,残差并不随拟合值的变化而变化,而是呈现出一定的水平分别特征,第二幅QQ图正好印证了残差正态分布的特征;而从第三、四 幅图也可见,拟合值的标准差具有同一性。                                                                          R语言做逻辑回归模型

由于篇幅有限,各位读者除了按照上面的方式建模,还需要考虑以上3个自变量的交互效应对模型的影响,从中观察R方的变化。

6.检验拟合值的同方差性

从上面可以发现,拟合值具有同方差的特征,为了进一步检验,这里采用ncvTest()函数,对模型进行检验,输入如下代码:

par(mfrow=c(2,2))

ncvTest(谋杀率)R语言做逻辑回归模型上图可见,P值>0.05,拟合值具有同方差性,而通过分布水平图,进一步可见其中的点在最佳拟合曲线周围呈现水平分布的特征。R语言做逻辑回归模型综上所述:模型的显著性符合p<0.05,R方=72.17% ,并且残差呈现正态分布,拟合值具有同方差性的特征,模型的拟合效果整体看不错,可以达到实用的水平!

转载请注明:数据分析 » 如何用R语言做逻辑回归模型_R语言逻辑回归

喜欢 (5)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址