R数据分析:混合效应模型的可视化解释,再不懂就真没办法
好多同学咨询我混合效应模型,有些问题自己需要讲很多遍,想想就再开一贴,争取这一篇文章给大家写清楚。
混合效应模型名字很多,Hierarchical Modeling, also known as Mixed Effects Modeling,有叫分层模型的,分层回归的,随机模型的等等,你要知道它都是指的是一个东西。
这个东西就是用来分析嵌套数据的!---------nested data
嵌套数据
这个时候有人就问,啥是嵌套数据啊?
These are instances in which each observation is a member of a group, and you believe that group membership has an important effect on your outcome of interest.
嵌套数据就是套着的数据,你就这么理解,就是比如说我要分析学生学习对收入的影响,我调查了好多学校,我是不是可以很有理由的认为学校水平上的特征也会影响学生收入?
这个时候学生就是嵌套在学校水平上的。
再来一个例子,比如我要调查焦虑和抑郁的关系,我调查了30个人,每个人调查了5次,我得到了150个数据,那么这些数据是不是嵌套在个人水平上的?
理解没?
还没有,好吧,继续
我们收集的数据先做个散点图:
我们假设上面的数据是员工的收入数据,横轴是工作年限,纵轴是收入,我调查了整个公司的员工,员工分布在不同部门吧,我说部门的不同会影响员工收入没问题吧,上图中颜色不同代表部门不同。
其实数据就是嵌套的,它是这样的:
每个人嵌套在不同部门种,好,现在你要看收入和工作时间的关系,你如果不考虑嵌套,会怎么做?
是不是你直接做个以工作时间为自变量,以收入为因变量的回归?
做出来就长这样:
看着还行?
错!
你这个系数根本就不准,你没有考虑嵌套,没有考虑部门间也就是更高水平的变异!
混合效应模型
那么,告诉我到底怎么做嘛,
接着看,你肯定听过随机斜率和随机截距。
我们一个个来看,我刚刚说了你没有考虑更高水平的变异,那么这个变异情况有什么可能,你自己想嘛,是不是有可能部门间的起薪不一样?有可能部门间薪资增长率不一样?或者两个都不一样嘛。
那么随机截距就是描述不同部门起薪的,加上随机截距就意味着我们认为不同的部门起薪不一样,可以变化,这个时候就是有随机截距的混合效应模型:
在上面的描述中,个体水平上斜率是一定的,是固定效应,部门水平上可以有不同的起薪,是随机效应。
再看随机斜率,
就是说,有可能员工起薪都一样只是薪资增长斜率在不同部门不一样,要拟合这样一个混合效应模型我们就要给模型的高水平,也就是部门水平加上随机斜率:
此时我们的模型可以拟合不同部门的斜率,这个叫做随机斜率模型。此时我们认为,个人薪资受到个人水平上的工作年限的影响和不同部门薪资增长的影响,工作年限是主效应,部门薪资增长是随机效应。
但是我们看到,对于我们这个例子来说,只有随机斜率似乎不太理想。
继续看,
随机斜率+随机截距
也就是说更合理的情况就是每个部门的起薪和每个部门的薪资增长都是不一样的,这种情况就是随机截距+随机斜率:
这种情况下,我们就认为每个人的薪资受到部门起薪的影响,还受到部门薪资增长的影响,此时工作年限是主效应,部门起薪,部门薪资增长都是随机效应。
如何选择
你明白上面三种模型后,又出现问题了
那我咋知道我到底该加随机截距还是随机斜率啊
问的好,此时要么你就更具理论经验,比如我就确定部门起薪就是一样的,那我就只加随机斜率;还有你可以一个一个试错,因为模型拟合出来都有拟合优度指数,你去看哪个模型的拟合优度最好你就选哪个。