R 笔记:Logistic 回归
Logistic 回归是通过一系列连续或类别型的预测变量来预测二值型结果变量的方法。
如因变量为是否患胃癌,有是或否两种结果。选择两组人,一组为胃癌患者,另一组为正常。采集相关的数据作为自变量,如年龄、性别、饮食等等,可以有多种。自变量可以是连续的,也可以是因子类型的,通过Logistic回归,就可以大致了解哪些因素是胃癌的危险因素。
分析数据集
以 R 包 AER
中的 Affairs
数据集作为案例学习 Logistic 回归,分析可能与出轨有关的因素。
Affairs
数据集包含了 601 个受访者的相关数据,包括出轨次数、性别、年龄、婚龄、是否有孩子、宗教、教育、职业及婚姻评分等 9 个变量。
安装并载入 Affairs
数据集
1 | install.packages('AER') |
描述性统计一下
1 | > summary(Affairs) |
只关注是否出轨,新建 isaffair
变量,并转换为因子
1 | Affairs$isaffair[Affairs$affairs > 0] <- 1 |
glm()
回归
1 | attach(Affairs) |
有四个变量显著,其余如性别、职业、教育等不显著,与实际情况类似。
将不显著的变量去除,再次回归
1 | fit_new <- glm(isaffair~age+yearsmarried+ |
可以用 anova()
分析比较一下两个模型
对于广义线性回归,可使用卡方检验
1 | anova(fit, fit_new, test = 'Chisq') |
卡方检验值不显著,说明两个模型差别不大,去除的变量不会显著提高方程的预测精度。
结果解释
回归系数
1 | coef(fit_new) |
Logistic 回归中,响应变量是 y=e 的对数优势比,回归系数的含义是,当其他的预测变量不变时,一单位预测变量变化时,可能引起的响应变量对数优势比的变化。
由于使用的是对数优势比,需进行指数运算才能回到正常模式。
1 | exp(coef(fit_new)) |
结果表示,当婚龄增加一年时,出轨的优势比将×1.1058594;相反年龄增加一岁时,出轨的优势比将×0.9653437,即婚龄越大,越容易出轨,年龄越小越容易出轨。预测变量不能为0,所以截距项没有意义。
预测数据
创建新的数据集用来预测,这里选平均值
1 | # 评分变化 |
可见评分约低,出轨的可能性越大;年龄约小,出轨的可能性越大。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 AOHUI BLOG.!
评论