温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

R语言怎样做Logistic回归

发布时间:2021-11-22 15:26:38 来源:亿速云 阅读:404 作者:柒染 栏目:大数据

R语言怎样做Logistic回归,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

 Logistic回归的应用场景

当因变量为二值型结果变量,自变量包括连续型和类别型的数据时,Logistic回归是一个非常常用的工具。比如今天的例子中用到的婚外情数据 “Fair's Affairs”。因变量是是否有过婚外情,自变量有8个,分别是

  • 性别
  • 年龄
  • 婚龄
  • 是否有小孩
  • 宗教信仰程度 (5分制,1表示反对,5表示非常信仰)
  • 学历
  • 职业 (逆向编号的戈登7种分类)这个是啥意思?)
  • 对婚姻的自我评分

因变量y是出轨次数,我们将其转换成二值型,出轨次数大于等于1赋值为1,相反赋值为0

 

下面开始实际操作

这个数据集来自R语言包AER,如果要用这个数据集需要先安装这个包

install.packages("AER")
 

然后使用data()函数获取这个数据集

data(Affairs,package = "AER")
 

然后就可以在环境的窗口里看到如下R语言怎样做Logistic回归

这个数据集总共有601个观察值,总共9个变量

 接下来是将变量y出轨次数,转换成二值型
df<-Affairs
df$ynaffairs<-ifelse(df$affairs>0,1,0)
table(df$ynaffairs)
df$ynaffairs<-factor(df$ynaffairs,
                     levels = c(0,1),
                     labels = c("No","Yes"))table
table(df$ynaffairs)
   接下来是拟合模型

拟合模型用到的是glm()函数

fit.full<-glm(ynaffairs~gender+age+yearsmarried+
                children+religiousness+education+occupation+rating,
              data=df,family = binomial())
 

通过summary()函数查看拟合结果

summary(fit.full)
 
R语言怎样做Logistic回归  
image.png

根据回归系数的P值可以看到 性别、是否有孩子、学历、职业对方程的贡献都不显著。去除这些变量重新拟合模型

fit.reduced<-glm(ynaffairs~age+yearsmarried+
                religiousness+rating,
              data=df,family = binomial())
   接下来是使用anova()函数对它们进行比较,对于广义线性回归,可用卡方检验
anova(fit.full,fit.reduced,test = "Chisq")
 
R语言怎样做Logistic回归  
image.png

可以看到结果中p值等于0.2108大于0.05,表明四个变量和9个变量的模型你和程度没有差别

 接下来是评价变量对结果概率的影响

构造一个测试集

testdata<-data.frame(rating=c(1,2,3,4,5),
                     age=mean(df$age),
                     yearsmarried=mean(df$yearsmarried),
                     religiousness=mean(df$religiousness)
 

预测概率

testdata$prob<-predict(fit.reduced,newdata = testdata,
                       type = "response")
   简单的柱形图对结果进行展示
library(ggplot2)
ggplot(testdata,aes(x=rating,y=prob))+
  geom_col(aes(fill=factor(rating)),show.legend = F)+
  geom_label(aes(label=round(prob,2)))+
  theme_bw()
 
R语言怎样做Logistic回归  
image.png

从这些结果可以看到,当婚姻评分从1(很不幸福)变为5(非常幸福)时,婚外情概率从0.53降低到了0.15。模型的预测结果和我们的经验还挺符合的

关于R语言怎样做Logistic回归问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI