大数跨境
0
0

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

R语言逻辑斯蒂回归小实例 小明的数据分析笔记本
2019-05-19
0
导读:分类回归

原文地址 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. 研究者感兴趣的是这些变量是如何影响研究生录取的。相应变量为一个二进制的变量

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

  2. dim(mydata)

  3. head(mydata)


  4. install.packages("skimr")

  5. skimr::skim(mydata)

  6. sapply(mydata,sd)

  7. sapply(mydata,mean)

  8. xtabs(~admit+rank,data=mydata)

可选择的分析方法
  • Logistic regression

  • Probit regression

  • OLS regression

  • Two-group discriminant function analysis

回归拟合
 
  1. mydata$rank<-factor(mydata$rank)

  2. mylogit<-glm(admit~gre+gpa+rank,data=mydata,family="binomial")

  3. summary(mylogit)

  4. confint(mylogit)

  5. confint.default(mylogit)

  6. newdata1<-with(mydata,data.frame(gre=mean(gre),gpa=mean(gpa),rank=factor(1:4)))

  7. newdata1

  8. newdata1$rankP<-predict(mylogit,newdata=newdata1,type="response")

  9. newdata1

  10. newdata2<-with(mydata,data.frame(gre=rep(seq(from=200,to=800,length.out=100)),

  11. gpa=mean(gpa),

  12. rank=factor(rep(1:4,each=100))))

  13. newdata3_1<-cbind(newdata2,predict(mylogit,newdata=newdata2,type="response"))

  14. head(newdata3_1)

  15. newdata3_2<-cbind(newdata2,predict(mylogit,newdata=newdata2,type="link",se=TRUE))

  16. head(newdata3_2)

  17. newdata3_3<-within(newdata3_2,{

  18. PredictedProb<-plogis(fit)

  19. LL<-plogis(fit-(1.96*se.fit))

  20. UL<-plogis(fit+(1.96*se.fit))

  21. })

  22. head(newdata3_3)

  23. library(ggplot2)

  24. ggplot(newdata3_3,aes(x=gre,y=PredictedProb))+

  25. geom_ribbon(aes(ymin=LL,ymax=UL,fill=rank),alpha=0.2)+

  26. geom_line(aes(colour=rank),size=1)+

  27. theme_bw()

  28. with(mylogit,null.deviance-deviance)

  29. with(mylogit,df.null-df.residual)

  30. with(mylogit,pchisq(null.deviance-deviance,df.null-df.residual,lower.tail=F))

  31. logLik(mylogit)

有的结果还不是很明白

需要把原文再多看几遍

需要抽时间看的内容
  • apply函数组的用法

  • with函数的用法

新学到的函数
  • xtabs()函数

 
  1. > xtabs(~admit+rank,data=mydata)

  2. rank

  3. admit 1 2 3 4

  4. 0 28 97 93 55

  5. 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/

欢迎大家关注我的公众号

小明的数据分析笔记本


【声明】内容源于网络
0
0
小明的数据分析笔记本
分享R语言和python在生物信息领域做数据分析和数据可视化的简单小例子;偶尔会分享一些组学数据处理相关的内容
内容 971
粉丝 0
小明的数据分析笔记本 分享R语言和python在生物信息领域做数据分析和数据可视化的简单小例子;偶尔会分享一些组学数据处理相关的内容
总阅读350
粉丝0
内容971