专栏首页小明的数据分析笔记本R语言逻辑斯蒂回归小实例

R语言逻辑斯蒂回归小实例

原文地址 https://stats.idre.ucla.edu/r/dae/logit-regression/ Logit Regression | R data analysis Example

Logistic regression, also called a logit model, is used to model dichotomous outcome variables. In the logit model the log odds of the outcome is modeled as a linear combination of the predictor variables.(简单理解,逻辑斯蒂回归用于二分类结果建模)生词:dichotomous 对立的;二岐的 the log odds of the outcome

数据

探索GRE、GPA、Rank与研究生录取与否的关系,相应变量为二进制数据 GRE: Graduate Record Exam scores GPA: grade point average Rank: prestige of the undergradute institution A researcher is interested in how variables effect admission into graduate school. The response variable, admit/don't admit, is a binary variable. 研究者感兴趣的是这些变量是如何影响研究生录取的。相应变量为一个二进制的变量

mydata<-read.csv("https://stats.idre.ucla.edu/stat/data/binary.csv")
dim(mydata)
head(mydata)

install.packages("skimr")
skimr::skim(mydata)
sapply(mydata,sd)
sapply(mydata,mean)
xtabs(~admit+rank,data=mydata)
可选择的分析方法
  • Logistic regression
  • Probit regression
  • OLS regression
  • Two-group discriminant function analysis
回归拟合
mydata$rank<-factor(mydata$rank)
mylogit<-glm(admit~gre+gpa+rank,data=mydata,family="binomial")
summary(mylogit)
confint(mylogit)
confint.default(mylogit)
newdata1<-with(mydata,data.frame(gre=mean(gre),gpa=mean(gpa),rank=factor(1:4)))
newdata1
newdata1$rankP<-predict(mylogit,newdata=newdata1,type="response")
newdata1
newdata2<-with(mydata,data.frame(gre=rep(seq(from=200,to=800,length.out=100)),
                                 gpa=mean(gpa),
                                 rank=factor(rep(1:4,each=100))))
newdata3_1<-cbind(newdata2,predict(mylogit,newdata=newdata2,type="response"))
head(newdata3_1)
newdata3_2<-cbind(newdata2,predict(mylogit,newdata=newdata2,type="link",se=TRUE))
head(newdata3_2)
newdata3_3<-within(newdata3_2,{
  PredictedProb<-plogis(fit)
  LL<-plogis(fit-(1.96*se.fit))
  UL<-plogis(fit+(1.96*se.fit))
})
head(newdata3_3)
library(ggplot2)
ggplot(newdata3_3,aes(x=gre,y=PredictedProb))+
  geom_ribbon(aes(ymin=LL,ymax=UL,fill=rank),alpha=0.2)+
  geom_line(aes(colour=rank),size=1)+
  theme_bw()
with(mylogit,null.deviance-deviance)
with(mylogit,df.null-df.residual)
with(mylogit,pchisq(null.deviance-deviance,df.null-df.residual,lower.tail=F))
logLik(mylogit)

有的结果还不是很明白

需要把原文再多看几遍

需要抽时间看的内容
  • apply函数组的用法
  • with函数的用法
新学到的函数
  • xtabs()函数
> xtabs(~admit+rank,data=mydata)
     rank
admit  1  2  3  4
    0 28 97 93 55
    1 33 54 28 12
  • pandas中类似的函数 crosstab
python实现逻辑斯蒂分类回归的例子

http://dblab.xmu.edu.cn/blog/logistic-regression-in-python/

还有很多其他分析的实例

https://stats.idre.ucla.edu/other/dae/

本文分享自微信公众号 - 小明的数据分析笔记本(gh_0c8895f349d3),作者:闫明

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-05-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 数据可视化有意思的小例子:Taylor Swift 歌词数据分析和可视化——第二部分

    接着重复这篇文章 Data Visualization and Analysis of Taylor Swift’s Song Lyrics

    用户7010445
  • 如何根据物种拉丁名找到其在NCBI Taxonomy所处的位置

    之前读 ete3 的帮助文档的时候看到过类似的功能http://etetoolkit.org/docs/latest/tutorial/tutorial_ncb...

    用户7010445
  • ggplot2学习笔记:美国1850年到2013年间陆地温度变化

    Land Temperature Change in the Continental US 1850-2013

    用户7010445
  • Go 语言并发编程系列(十一)—— sync 包系列:条件变量

    简介 sync 包还提供了一个条件变量类型 sync.Cond,它可以和互斥锁或读写锁(以下统称互斥锁)组合使用,用来协调想要访问共享资源的线程。

    学院君
  • 5.源码分析---SOFARPC调用服务

    我们这一次来接着上一篇文章《4. 源码分析---SOFARPC服务端暴露》讲一下服务暴露之后被客户端调用之后服务端是怎么返回数据的。

    luozhiyun
  • 浅析data:image/png;base64的应用

    Angel_Kitty
  • Ruby 比特币开发教程: 机器人接受比特币并立即退还用户

    在 上一篇教程中, 我们创建了自动回复消息的机器人,当用户发送消息"Hello,World!"时,机器人会自动回复同一条消息!

    Mixin Network
  • 3.AVPacket使用

    创建一个AVPacket的实例,但该函数并不会为数据分配空间,其指向数据域的指针为NULL。

    张诺谦
  • Flask框架整个流程源码解读

    运行Flask其本质是运行Flask对象中的__call__,而__call__本质调用wsgi_app的方法

    小小咸鱼YwY
  • 深度 | 周明:自然语言处理的未来之路 | CCF-GAIR 2019

    2012年至今,自然语言处理进入神经网络时代已经7年,未来发展之路朝向何方?我们来看ACL 2019主席、微软亚洲研究院副院长周明博士如何解读~

    AI研习社

扫码关注云+社区

领取腾讯云代金券