全文链接:http://tecdat.cn/?p=22813
本教程为读者提供了使用频率学派的广义线性模型(GLM)的基本介绍。具体来说,本教程重点介绍逻辑回归在二元结果和计数/比例结果情况下的使用,以及模型评估的方法(点击文末“阅读原文”获取完整代码数据)。
本教程使用教育数据例子进行模型的应用。此外,本教程还简要演示了用R对GLM模型进行的多层次扩展。最后,还讨论了GLM框架中的更多分布和链接函数。
本教程包含以下结构。
1. 准备工作。
2. 介绍GLM。
3. 加载教育数据。
4. 数据准备。
5. 二元(伯努利)Logistic回归。
6. 二项式 Logistic 回归。
7. 多层次Logistic回归。
8. 其他族和链接函数。
本教程介绍了:
- 假设检验和统计推断的基本知识。
- 回归的基本知识。
- R语言编码的基本知识。
- 进行绘图和数据处理的基本知识。
广义线性模型(GLM)简介
对于y是连续值得情况,我们可以用这种方式处理,但当y是离散值我们用普通线性模型就不合适了,这时我们引用另外一种模型 --- Generalised Linear Models 广义线性模型。
为了获取GLM模型,我们列出3个条件:
- ,也就是y|x为指数族分布,指数族分布形式:
2. 如果我们判断y的假设为 ,则 。
3. 自然参数和输入x呈线性关系:
这3个条件的来由我们不讨论,我们只知道做这样的假设是基于“设计”的选择,而非必然。
我们以泊松回归为例, y服从泊松分布 ,化为指数族形式,我们可以得到 。所以
之后即为最大似然法的过程。
教育数据
本教程中使用的数据是教育数据。
该数据来源于全国性的小学教育调查。数据中的每一行都是指一个学生。结果变量留级是一个二分变量,表示一个学生在小学教育期间是否留过级。学校变量表示一个学生所在的学校。个人层面的预测因素包括。 性别(0=女性,1=男性)和学前教育(受过学前教育,0=没有,1=有)。学校层面是学校平均SES(社会经济地位)得分。
本教程利用教育数据试图回答的主要研究问题是。
忽略数据的结构,性别和学前教育对学生是否留级的影响是什么?
忽略数据的结构,学校平均SES对学生留级比例的影响是什么?
考虑到数据的结构,性别、学前教育和学校平均SES对学生是否留级有什么影响?
这三个问题分别用以下这些模型来回答:二元逻辑回归;二项逻辑回归;多层次二元逻辑回归。
数据准备
加载必要的软件包
# 如果你还没有安装这些包,请使用install.packages("package_name")命令。 library(lme4) # 用于多层次模型 library(tidyverse) # 用于数据处理和绘图
导入数据
head(Edu)
数据处理
mutate(学校 = factor(学校), 性别 = if_else(性别 == 0, "girl", "boy"), 性别 = factor(性别, levels = c("girl", "boy")), 受过学前教育 = if_else(受过学前教育 == 0, "no", "yes"), 受过学前教育 = factor(受过学前教育, levels = c("no", "yes")))
检查缺失的数据
summarise_each((~sum(is.na(.))
数据中,经济地位变量有1066个观测值缺失。对缺失数据的处理本身就是一个复杂的话题。为了方便起见,我们在本教程中简单地将数据缺失的案例删除。
二元逻辑回归
探索数据:按性别和学前教育分类的留级数量
group_by(性别) %>% summarise(是否留过级 = sum(是否留过级))
看来,留级的学生人数在男女之间有很大的不同,更多的男学生留级。更多没有接受过学前教育的学生留级。这一观察结果表明,性别和学前教育可能对留级有预测作用。
构建二元逻辑回归模型
R默认安装了基础包,其中包括运行GLM的glm函数。glm的参数与lm的参数相似:公式和数据。然而,glm需要一个额外的参数:family,它指定了结果变量的假设分布;在family中我们还需要指定链接函数。family的默认值是gaussian(link = "identity"),这导致了一个线性模型,相当于由lm指定的模型。在二元逻辑回归的情况下,glm要求我们指定一个带有logit链接的二项分布,即family = binomial(link = "logit") 。
glm(formula , family = binomial(link = "logit"))
解释
从上面的总结输出中,我们可以看到,性别对学生留级的概率有正向和显著的预测,而学前教育则有负向和显著的预测。具体来说,与女孩相比,男孩更有可能留级。以前上过学的学生不太可能导致留级。
为了解释参数估计值,我们需要对估计值进行指数化处理。
请注意,参数估计的解释与几率而不是概率有关。赔率的定义是。P(事件发生)/P(事件未发生)。在本分析中,假设其他一切保持不变,与女孩相比,男孩增加了54%的留级几率;与没有学前教育相比,假设其他一切保持不变,拥有学前教育降低了(1-0.54)%=46%的留级几率。
参数效应的可视化
为了使参数效应的解释更加容易,我们可以对参数效应可视化。
plot(Effects)
请注意,在这两张图中,Y刻度指的是留级的概率,而不是几率。概率比几率更容易解释。每个变量的概率分数是通过假设模型中的其他变量是常数并采取其平均值来计算的。正如我们所看到的,假设一个学生有平均的学前教育,作为一个男孩比作为一个女孩有更高的留级概率(~0.16)~0.11)。同样,假设一个学生有一个平均的性别,有学前教育的学生比没有学前教育的学生留级的概率低(~0.11)(~0.18)。请注意,在这两幅图中,还包括了估计值的置信区间,以使我们对估计值的不确定性有一些了解。
请注意,平均学前教育和性别的概念可能听起来很奇怪,因为它们是分类变量(即因素)。如果你对假设一个平均因素的想法感到奇怪,你可以指定你的预期因素水平作为参考点。
predictors = list( values=c(性别boy=0, 受过学前教育yes = 0))
设置性别boy = 0意味着在学前教育效应图中,性别变量的参考水平被设置为0;学前教育yes = 0导致0成为性别效应图中学前教育变量的参考水平。
因此,正如上面两幅图所示,假设学生没有接受过学前教育,作为男孩的留级概率(~0.20)比作为女孩的留级概率(~0.14)要高;假设学生是女性,有学前教育的留级概率(~0.09)比没有学前教育的留级概率(~0.15)要低。
点击标题查阅往期内容
多水平模型、分层线性模型HLM、混合效应模型研究教师的受欢迎程度
01
02
03
04
模型评估:拟合度
评价逻辑回归模型的拟合度有不同的方法。
似然比检验
如果一个逻辑回归模型与预测因子较少的模型相比,显示出拟合度的提高,则该模型对数据有较好的拟合度。这是用似然比检验进行的,它将完整模型下数据的似然性与较少预测因素的模型下数据的似然性进行比较。从一个模型中删除预测变量几乎总是会使模型的拟合度降低(即模型的对数似然率较低),但测试观察到的模型拟合度差异是否具有统计学意义是很有用的。
#指定一个只有`性别'变量的模型 #使用\`anova()\`函数来运行似然比测试 anova(ModelTest, Model, test ="Chisq")
我们可以看到,同时包含性别和学前教育的预测因子的模型比只包含性别变量的模型对数据的拟合效果要好得多。请注意,这种方法也可以用来确定是否有必要包括一个或一组变量。
数据分享|R语言用lme4多层次(混合效应)广义线性模型(GLM),逻辑回归分析教育留级调查数据(下):https://developer.aliyun.com/article/1493903