用R语言做逻辑回归

标签:
r语言数据分析师数据分析数据分析师培训数据挖掘 |
回归的本质是建立一个模型用来预测,而逻辑回归的独特性在于,预测的结果是只能有两种,true or false
在R里面做逻辑回归也很简单,只需要构造好数据集,然后用glm函数(广义线性模型(generalized
linear model))建模即可,预测用predict函数。
我这里简单讲一个例子,来自于加州大学洛杉矶分校的课程
首先加载需要用的包
library(ggplot2)
library(Rcpp)
然后加载测试数据
mydata <-
read.csv("http://www.ats.ucla.edu/stat/data/binary.csv") ##
这里直接读取网络数据head(mydata)
##
##
1
##
2
##
3
##
4
##
5
##
6
#This dataset has a binary response (outcome, dependent) variable
called admit.
#There are three predictor variables: gre, gpa and rank. We will
treat the variables gre and gpa as continuous.
#The variable rank takes on the values 1 through 4.
summary(mydata)
##
##
##
##
##
##
##
sapply(mydata, sd)
##
##
xtabs(~ admit rank, data = mydata)
##
## admit
##
##
可以看到这个数据集是关于申请学校是否被录取的,根据学生的GRE成绩,GPA和排名来预测该学生是否被录取。
其中GRE成绩是连续性的变量,学生可以考取任意正常分数。
而GPA也是连续性的变量,任意正常GPA均可。
最后的排名虽然也是连续性变量,但是一般前几名才有资格申请,所以这里把它当做因子,只考虑前四名!
而我们想做这个逻辑回归分析的目的也很简单,就是想根据学生的成绩排名,绩点信息,托福或者GRE成绩来预测它被录取的概率是多少!
接下来建模
mydata$rank <- factor(mydata$rank)
mylogit <- glm(admit ~ gre gpa rank, data = mydata,
family = "binomial")
summary(mylogit)
##
## Call:
## glm(formula = admit ~ gre gpa rank, family = "binomial",
##
##
## Deviance Residuals:
##
## -1.6268