前言
看到了一个非常好的统计学教程,来自Dr. 王敏杰
- BookDown地址:https://bookdown.org/wangminjie/R4DS/author.html
- Logistic Regression: https://bookdown.org/wangminjie/R4DS/tidystats-logistic-regression.html
- 另一个可以参考的文档:https://daviddalpiaz.github.io/r4sl/logistic-regression.html
简单实现
模型拟合和预测 Code:
# fitting model
model_logit <- glm(admit ~ gre,
data = gredata,
family = binomial(link = "logit")
)
summary(model_logit)
# Coefficient
coef(model_logit)[2]
# prediction
# return log_odds
predict(model_logit)
# return posibility
predict(model_logit, type = "response")
# another approach to returen posibility
fitted(model_logit)
要点
- 这个模型拟合的结果的是,logit(Pi),也就是log(Odd)
log(\frac{Pi}{1-Pi})
- 模型系数输出的含义
- log(odd) scale: 默认predict的结果,模型系数(alpha)表示的含义,x每增加1个单位,log-odd就会增加alpha
- odd scale: 模型系数(alpha)表示的含义,x每增加1个单位,odd就会增加alpha,如果是疾病,就是患病的概率增加alpha。大于1,表示是危险因素。
- probability scale: 概率值Pi。这个结果等于
exp(pred_log_odds)/(1 + exp(pred_log_odds))
- predict默认返回的是log_odds(Pi)的结果,如果要用predict返回概率值,需要定义type = ‘response’
- 或者使用fitted