用SPSS估计HLM多层(层次)线性模型模型

多层线性模型(Hierarchical Linear Model,HLM),也叫多水平模型(Multilevel Model,MLM),是社会科学常用的高级统计方法之一。

由Kaizong Ye,Sherry Deng撰写

作为第一步,从一个不包含协变量的空模型开始

每所学校的截距,β 0J,然后设置为平均,γ 00,和随机误差ü 0J。

×

多层线性模型的原理

一、问题

有时候,我们会拿到多个人在同一个维度不同时期的数据。比如一个班级的小学生,在3年级到6年级时“自我概念”这个指标的变化情况,把这些数据画成一个图,是杂乱无章的。

我们想知道,有没有一种方法,能够看到这些小朋友的整体变化是怎样的,是什么因素影响了整体变化。

二、追踪研究中的多层线性模型

在这里先提出一个假设,假设三年级到六年级的时间,个体自我概念随时间有线性发展的趋势。我们知道,用线性回归可以拟合出一个人、一个维度的变化趋势情况。那用同样的思想,进行两次拟合,是不是就可以把多个人“变成”一个人,然后再分析,就可以拟合得到这个维度的变化趋势呢?

针对追踪研究所关心的两个问题,建立对应的两水平统计模型。

(1)第一水平模型
描述个体某一特征随时间的发展趋势,第一水平模型可以定义为:

Y_{ij} = \pi_{0i} + \pi_{1i}(年级-3) + \epsilon_{ij}

其中Y_{ij}代表第i个学生的第j年级所测量的自我概念的观测值,模型假设学生自我概念随着年级有线性变化的趋势。与传统回归方程相比,这个公式中的截距参数\pi_{0i}和斜率参数\pi_{1i}是随个体变化的随机变量。\epsilon_{ij}表示第一水平随机测量的误差。多层线性模型是\epsilon_{ij}服从均值为0方差为一个定值\sigma_\epsilon^2的正态分布。

这个模型,把所有学生的特征变化用一个公式表达了出来,把变化量集成在\pi_{0i}\pi_{1i}\epsilon_{ij}中。

(2)第二水平模型
在第一水平模型中,已经假设截距参数\pi_{0i}和斜率参数\pi_{1i}是随机变量,在第二模型模型中。我们需要分析这些发展参数是否存在个体之间的差异,假如存在差异,能不能在个体层面上,用个体的特征变量来解释和预测这一差异。最简单的模型(零模型)不加任何预测变量:

\pi_{0i} = \gamma_{00} + u_{0i}

\pi_{1i} = \gamma_{10} + u_{1i}

其中,\gamma_{00}\gamma_{10}表示截距和斜率的整体均值,用来描述总体情况的变化趋势。到这里,我们可以看到,我们需要的描述总体变化情况的变量,就是\gamma_{00}\gamma_{10}。通常假设\left[ \begin{matrix} u_{0i}\\ u_{1i} \end{matrix} \right] =N \left[ \begin{matrix} \left[ \begin{matrix} u_{0i}\\ u_{1i} \end{matrix} \right] & \left[ \begin{matrix} \tau_{00} & \tau_{01} \\ \tau_{10} & \tau_{11} \end{matrix} \right] \end{matrix} \right]

\tau_{00}\tau_{11}分别表示第一水平模型中随机截距和斜率对应的方差, \tau_{01} = \tau_{10},表示第一水平模型中随机截距和斜率对应的协方差。

如果对于上述第二水平模型的零模型,截距斜率的随机变量都显著,就说明截距和斜率存在显著的个体之间的差异,有必要进一步分析个体特征对个体之间差异的解释。一般将上述第二水平、不含任何预测变量的模型称为无条件增长模型,这一模型主要用来检验个体的增长趋势是否存在差异,是后面条件模型分析的基础。

假如加入预测变量,那么含有第二水平预测变量的模型可以表示为:

\pi_{0i} = \gamma_{00} + \gamma_{01}(性别) + \gamma_{02}(退缩行为) + u_{0i}

\pi_{1i} = \gamma_{10} + \gamma_{11}(性别) + \gamma_{12}(退缩行为) + u_{1i}

对于截距,各个变量的意义:

变量 意义
\gamma_{00} 表示第二水平预测变量取值为0时,第一水平截距的总体均值。比如在这个例子中,表示退缩行为得分为0的女生(性别中的0代表女生)在三年级时的自我概念的平均分
\gamma_{01} 表示在控制退缩行为这个变量是,男生对女生的截距差异,及男女在初始状态下(三年级)时的差异
\gamma_{02} 表示在控制性别影响时,退缩行为每变化一个单位,自我概念截距在初始状态(三年级)的差异

对于斜率,各个变量的意义:

变量 意义
\gamma_{10} 表示第二水平预测变量取值为0时,第一水平斜率的总体均值。比如在这个例子中,表示退缩行为得分为0的女生(性别中的0代表女生)在三年级时的自我概念的平均斜率
\gamma_{11} 表示在控制退缩行为这个变量是,男生对女生的变化速度的差异
\gamma_{12} 表示在控制性别影响时,退缩行为每变化一个单位,自我概念斜率的平均差异

\tau_{00}\tau_{11}表示在控制性别和退缩行为后,第一水平模型中随机截距和斜率对应的方差, \tau_{01} = \tau_{10},表示第一水平模型中随机截距和斜率对应的协方差。

三、多层线性模型的参数估计

多层线性模型的参数估计可以有多种方法,包括迭代广义最小二乘估计(LGLS)、限制性广义最小二乘估计(RIGLS)、贝叶斯估计法、马尔科夫链蒙特卡罗估计法、自助法等等。这里主要介绍极大似然估计法。

在多水平模型中,常用的极大似然估计的方法主要有两种:

(1)全息极大似然估计(FML)
全息极大似然估计在似然函数中同时包含固定部分参数和随机部分参数。

(2)限制极大似然估计(RML)
限制极大似然估计的似然函数只包含随机部分的参数,固定参数在EM(Expectation Maximum)算法的第二步参数估计过程中得到。

极大似然估计通过迭代过程估计参数值,常用的迭代算法是EM算法。极大似然估计的所有的性质都是渐进的,只有在大样本时极大似然估计的性质才近似成立,而小样本不一定成立。那么,多大才叫大?学者们的意见也不统一,有的说要100个以上(Long, 1997),有的说要不小于30(Snijders, Bosker, 1999)。

四、假设检验

对于多层线性模型,可以通过极大似然估计得到固定部分参数估计结果已经对应的标准误,对于固定部分参数的显著性检验,可以用参数估计值除以标准误,即\gamma/se(\gamma)进行检验(Wald检验),在大样本时近似服从标准正态分布,在较小样本时这一个统计量服从自由度为J-p-1t分布,其中J表示第二水平单元的个数,p表示模型中预测变量的个数。

对于随机部分的参数检验,可以近似采用估计得到的方差与标准误的比值,用Z检验进行检验。但考虑到Z检验时基于正态假设前提下的检验,所以当样本方差的分布为偏态,尤其是方差较小的情况下,用Z检验的前提往往不能满足,因此我们通常用卡方检验:

\chi^2 = \sum_j{(\hat{\beta}_j-\hat{\beta})^2/\hat{V}_j}

其中\hat{\beta}_j为第j组的回归系数的最小二乘估计,\hat{\beta}为整体的回归系数估计,\hat{V}_j为第j组估计得到的样本方差。该卡方检验对应的自由度为J-p-1,其中J表示第二水平单元的个数,p表示模型中预测变量的个数。

参考文献

刘红云. 追踪数据分析方法及其应用[M]. 教育科学出版社, 2005.





将(2)代入(1)产生

要在SPSS中进行估算,请转至分析→混合模型→线性…

出现“ 指定主题”和“重复”菜单。在此示例中,分组变量是id,因此应将其放在“ 主题”框中。


热门课程

R语言数据分析挖掘必知必会

面对扑面而来的数据浪潮,包含Google、Facebook等国际企业,都已采用R语言进行数据分析

探索课程

反复框保持为空。它仅在分析人员想要为重复测量指定协方差模式时使用(R矩阵;参见随机效应ANOVA模型的评论)。单击继续

弹出一个新菜单,用于指定模型中的变量。空模型没有自变量,因此将因变量mathach放在适当的框中。

空模型中的截距被视为随机变化。这不是默认设置,因此单击“ 随机”以获取以下菜单:

选择参数估计值以报告固定效应的估计值。单击继续,然后单击确定。部分结果如下:

这些结果对应于R&B中的表4.2。

下一步是估计一种平均数之结果变项的回归模型。

平均数之结果变项的回归模型

在估计空模型之后,R&B开发了一种“平均数之结果变项的回归”模型,其中将学校级变量meanses添加到截距模型中。该变量反映了每所学校的学生SES平均水平。召回方程式(1):

截距可以模拟成一个大平均γ 00,再加上平均得分SES的效应γ 01,加上随机误差ü 0J。

将(4)代入(1)得到

要在SPSS估计这个,再去分析→混合模型→直线…。再次出现“ 指定主题”和“重复菜单 ”。将id放在“ 主题”框中,并将“ 重复”框保留为空。

单击继续。在下一个菜单中,指定依赖变量和独立变量。因变量将是mathach,单个协变量将是均值。

该meanses变量输入作为固定效应,所以点击固定按钮拉起固定效应菜单。将meanses变量带入Model框并确保选中Include Intercept

单击继续。接下来,单击“ 随机”以打开“ 随机效应”菜单。选中“ 包括截距”以将截距指定为随机,并将分组变量id放在“ 组合”框中。不要在模型框中放置咒语。它仅被视为固定效应。该协方差类型又是无关紧要,因为只有一个随机效应,随机截距。

最后,单击Statistics以选择在输出中报告的内容。选中参数估计值旁边的复选框。

单击继续,然后单击确定。输出的一部分如下:

这与R&B中的表4.3相对应。

下一步是估计随机系数模型。

随机系数模型

接下来,R&B提供了一个模型,其中包括学生级别的SES而不是平均SES,并且他们将学生SES的斜率视为随机的。一个复杂因素是R&B以小组平均为中心的学生SES后呈现结果。群体平均中心意味着从每个学生的个人SES中减去每个学生的学校的平均SES。不幸的是,meanses变量编码为-1,0,1,因此只是每个学校平均值的粗略指标。为了更好地估计学校平均值,可以利用SPSS 中的Aggregate命令。

分组中心变量的第一步是找到每个群集的平均值。转到数据→聚合

出现“ 聚合数据”菜单。表示每个组的变量称为“中断”变量; 将id放入Break Variable(s)框中。目标是从每所学校获得学生的平均SES分数,因此将ses变量带到“ 变量摘要”框中。默认情况下,SPSS假定用户有兴趣获取每个组的均值,因此无需更改功能。最后,确保选中“ 将聚合变量添加到活动数据集”单选按钮。

现在,数据中添加了一个新变量ses_mean(不要与三分法混淆)。要完成组平均居中,请从每个ses变量中减去ses_mean。转到变换→计算变量

在出现的菜单中,创建一个名为grp_ses的目标变量,该变量等于ses减去ses_mean。

单击确定。现在可以使用以组为中心的SES变量。

1级方程式如下:

截距β 0J可以模拟成一个大平均γ 00加上随机误差,ü 0J。类似地,倾斜β 1J可以被建模为具有总平均值γ 10加上随机误差Ú 1J。

将(7)和(8)组合成(6)产生:

要在SPSS中估算(9),请转到分析→混合模型→线性。再次出现“ 指定主题”和“重复”菜单。和以前一样,将id放在“ 主题”框中,并将“ 重复”留空。

单击继续。在下一个菜单中,指定依赖变量和独立变量。因变量是mathach,单个协变量将是grp_ses。

要指定模型的固定效应,请单击“ 固定”。在“ 固定效应”菜单中,将grp_ses变量置于“ 模型”框中,并确保选中“ 包括截距”。

单击继续,然后单击随机

在“ 随机效应”菜单中,将分组变量id放在“ 组合”框中。此外,因为grp_ses将具有随机斜率,所以必须将其放置在“ 模型”框中。接下来,确保选中Include Intercept,以便允许截距随机变化。最后,存在两个随机效应意味着协方差矩阵G的维数现在是2×2。SPSS中的默认值是假设一个方差分量结构,这意味着随机截距和随机斜率之间没有协方差(参见随机效应ANOVA模型综述中的协方差结构表))。可以放宽该假设,使得协方差是从数据估计的自由参数。为协方差类型指定Unstructured

单击继续。然后单击“ 统计”以指定输出中显示的内容。检查参数估计值以获得固定效应的结果。

单击继续,然后单击确定。部分结果如下:

这些结果对应于R&B中的表。

最终的模型R&B呈现的是截距和斜率外部模型。


可下载资源

关于作者

Kaizong Ye拓端研究室(TRL)的研究员。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。

​非常感谢您阅读本文,如需帮助请联系我们!