处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)...

转自个人微信公众号【Memo_Cleon】的统计学习笔记:重复测量数据分析系列:再谈多层混合效应模型(基于Stata)。

感觉从来没有一个模型有这么多的名字。

多层混合效应模型(Multilevel Mixed-Effect Linear Model);多水平模型(Multilevel Model),分层线性模型(Hierarchical Linear Model);混合效应模型(Mixed Effect Model),混合线性模型(Mixed Linear Model);随机截距-斜率发展模型(Random intercept and slop Model,RIS Model );随机效应模型(Random Coefficient Model),随机系数模型(Random Coefficient Model);随机斜率模型(Random Slop Model);随机截距模型(Random intercept Model),方差成分模型(Variance Component Model);残差方差/协方差模式模型(Residual Covariance Pattern Model)……

简单地说,混合效应模型(Mixed Effect Model)/混合线性模型(Mixed Linear Model)是既包含固定效应又包括随机效应的模型。

在很多统计方法都能看到固定效应(fixed effect)和随机效应(random effect)的身影,比如方差中的固定因素和随机因素,Meta分析中的固定效应和随机效应,以及多水平模型中的固定截距/斜率和随机截距/斜率。通俗地理解,固定效应就是不变的效应,固定因素就是其效应在不同的组不会发生变化的因素,而随机效应因素则是指其效应在不同的组会不同的因素。定义上看Fixed effect factor: Data has been gathered from all the levels of the factor that are of interest.Random effect factor: The factor has many possible levels, interest is in all possible levels, but only a random sample of levels is included in the data。固定因素指的是该因素的各种取值水平在样本中都出现了,而随机因素的各个水平只是从总体中抽样而来,该因素所有的取值水平并没有都出现。举个栗子,两组标准相同的无并发症的单纯原发性高血压患者分别采用替米沙坦片和苯磺酸氨氯地平片进行降压,如果你只是想看下替米沙坦片和苯磺酸氨氯地平片的疗效有无差异,那么治疗药物这个分组因素就是固定因素;但如果你的目的是想比较ARB和CCB的差异,ARB和CCB类降压药都有很多药物,只是替米沙坦和氨氯地平刚好是你选择的代表ARB和CCB的药物而已,你想把对这两个代表药物的研究结果推广到对所有其他水平都适用,这时候治疗药物这个分组因素就应看做随机因素。

混合效应模型的数据表现为分级或多层结构,低层级单位嵌套或集聚于高层级单位之中,高层次单位内同一个水平的观测数据常常存在一定的集聚性、相关性,即组内观测是非独立的,从而使组间产生了差别,此即所谓的“组内同质,组间异质”。比如大型的多中心临床试验,个体数据嵌套于各个临床中心,每个中心的受试者可能存在相关性;再比如重复测量数据,个体内数据嵌套于每个个体内,每个个体内的多次测量数据可能存在相关。从这个角度上,混合效应模型也被称为多水平模型(Multilevel Model)、分层线性模型(Hierarchical Linear Model)。此名称中的“水平”与因素的某个水平意义是不同的,叫多层级模型可能更合适。

在混合效应模型中,固定效应可以直接估计得到,用均数描述,类似于回归系数,如在平均回归线回中的截距表示平均截距β0,斜率即平均斜率β1;随机效应不是直接估计,用方差进行描述,以随机截距或者随机斜率的形式呈现,反应在它们的方差和协方差估计值中。数据的分层结构使得每一层都会有一个残差协方差结构,个体间(高层级单位)残差协方差常用G表示,矩阵G通常为随机截距与随机斜率的方差协方差矩阵,个体内(低层级单位)残差协方差常用R表示。在纵向数据的发展模型中,y的均值或期望值是通过固定效应的β来分析的,而y的方差则是通过G(随机效应的方差协方差)矩阵和R (低层级单位的方差协方差)矩阵来分析。

根据截距和斜率是否随机,混合效应模型可以有四种情况:①固定截距+固定斜率;②固定截距+固定斜率;③随机截距+固定斜率;④随机截距+随机斜率。示意如图:

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第1张图片

(1)固定截距+固定斜率:这种情况实际上是混合线性模型的特殊情况,采用一般线性模型进行分析就可以了。(2)固定截距+随机斜率:各组回归线截距相同,但斜率不同,斜率随组的变化而变化。(3)随机截距+固定斜率:组内回归的截距随组变化而变化但斜率相同,即低层级自变量的斜率在不同的组里面都是一致的。虽然实际中这种绝对一致(斜率相等)的情况很少存在,但在统计学上的相等并不等同于绝对相等,可以通过显著性检验来确定组间斜率是否保持一致。(4)随机截距+随机斜率:各组回归线截距和斜率都不同,均会跨组变化。

在进行混合效应模型分析时,除了需要分析固定效应,还需要分析随机效应。随机效应的分析一般都会考虑随机截距,即将截距设置为随机截距,也就是允许不同组具有各自的截距(基线水平)。在这种模型下讲固定效应和随机效应,一般指的是斜率是固定还是随机。根据分析时具体的采用模型,混合效应模型也被称为随机截距-斜率发展模型(Random intercept and slop Model,RIS Model )、随机效应模型(Random Coefficient Model)、随机系数模型(Random Coefficient Model)、随机斜率模型(Random Slop Model)、随机截距模型(Random intercept Model),随机截距模型是混合效应模型中最简单、最基本的一种,也被称为方差成分模型(Variance Component Model)。

从方差组成的角度看,混合效应模型是将总方差分为两个成分:个体间变异和残差方差。随机截距-斜率模型将个体间随机变异纳入模型进行分析,并假设残差σ2相互独立且相等,即个体内的残差方差/协方差矩阵为单位阵(即R=σ2I),这在横向数据的分析(如大型的多中心临床试验)中较为常见,但对于纵向数据(如跟踪研究的重复测量资料)而言,个体内常常不独立,这种独立的假设往往不成立,这时候我们需要考虑残差方差协方差结构模型(Residual Covariance Pattern Model),将矩阵R设置成不同的方差协方差结构。如果将两个局部模型组合起来,就是可以分析个体间变异(随机系数模型)又可以分析个体内变异(方差/协方差模式模型)的全模型。

方差协方差结构有二十几种,如果跟前面的固定效应和随机截距/斜率想结合,能够衍生出非常多的全模型。为了确定合适的结构,一般先运行非特定结构残差协方差结构,并通过相关系数矩阵来初步判断合适的模型。当然模型之间的比较有似然比检验和信息标准统计量,嵌套模型的比较(即一个模型与其亚模型的比较)可以使用似然比检验,也可以采用信息统计量来比较(如AIC、AICC、CAIC、BIC),信息统计量的值越小模型拟合越好,BIC绝对差值0-2为弱证据,2-6正证据,6-10强证据,10+为超强证据)。非嵌套模型一般采用信息统计量来进行比较。另外在模型比较时,模型参数估计方法采用ML还是REML可参考如下:

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第2张图片

王济川等.多层统计模型:方法与应用.北京,高等教育出版社,2008.1.


本次笔记分析主要演示STATA操作,示例来源:杨珉.李晓松等.医学和公共卫生研究常用多水平统计模型.北京:北京大学医学出版社,2007.5.

示例:某溶栓药物治疗20名急性脑梗死患者的疗效,采用随机、双盲、安慰剂平行对照设计,每组各10例,分别于治疗前及治疗后8周每周进行随访观测,观测指标为神经系统体征评分(MDNS)。

【0】结局测量随时间变化形式:平均发展趋势考察

研究开始时每个个体的MDNS值不同;观测时间内个体间MDNS变化率也不同,有的变化快有的变化慢;两个组的MDNS增速也不同,治疗组增速偏快一些;起始值高的最终结果往往也高,个体内表现出相关趋势;整体趋势呈线性增长趋势(红色为拟合线)。

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第3张图片

【1】建立零模型(最简单的随机截距模型)

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第4张图片

在横截面的多水平模型中,多从零模型开始。在重复测量数据的多水平模型中教材中一般都跳过此步从含有时间变量的随机截距模型开始。我们将在该模型中给出最详尽的解释,后续模型在此基础上进行解读。

打开需要分析的数据,分析>>多层混合效应模型>>线性回归:

估计方法选择默认为极大似然法;

因变量:MDNS;暂不选入任何自变量;

随机效应:创建>>方程的层次变量选入id,确定;

自由度计算方法选择为默认的残差;

确定

相应命令:mixed MDNS || id:

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第5张图片

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第6张图片

结果解读:

①首先显示了我们使用菜单打开文件和建立随机截距模型的命令。use命令用来打开文件,mixed y x || lev2:命令建立模型。mixed MDNS || id: 建立因变量为MDNS、分层变量为id、自由度采用ANOVA法计算、无解释变量的随机截距模型。

②模型估计记录:默认包括三部分内容,a)EM(期望最大化)法改善初始值的迭代史,默认不显示,可在mixed主对话框的[EM选项]卡中进行修改设置;b)梯度迭代,默认是Newton–Raphson iterations;3)Computing standard errors表示模型已经完成最大迭代次数,现将方差成分及其标准误由基于矩阵的参数转化成正常的度量标准。

③模型基本信息:模型采用混合效应ML回归,根据变量id进行分层,共180条记录,按id分层后,id有20个水平,每个水平的最小、最大和平均记录数都是9。

④模型拟合信息:结果给出了当前模型的似然比值,同时与只含常数项模型进行检验。当前模型默认自由度残差估计方法是残差,此处结果出现将是wald检验的wald chi2值及相应P值。若选择其他方法估计自由度(如使用ANOVA法:mixed MDNS time || id:, dfmethod(anova)),此处采用的则是方差检验。当前模型含有0个自变量(空模型不含自变量),因此未给出相应检验结果。

⑤固定效应结果:反映的是不考虑各因素的影响,所有参与研究的受试者的平均MDNS为115.73分。

⑥随机效应结果:随机效应用方差来表示。var(_cons)是随机截距的误差项,模型中μ0j的方差,代表的是个体(高水平)差异,ML法估计值为66.51,误差较大。如μ0j≠0,则其方差var(μ0j)≠0,说明高水平(个体)的截距是随机的,不同个体的MDNS与总体基础均值存在差异。在SPSS中会直接给出var(μ0j)是否为0的Wald Z的检验结果,而Stata中并未直接给出,但可以通过后面嵌套模型的LR检验来检验。还需要注意的是通过置信区间来看是否有统计学意义在判定方差是否为0时是不合适的,一般情况下“置信区间是否包含无效假设”与“假设检验的结果”是一致的,但这种一致是在判断“是否等于”的双侧检验时。在随机效应(用方差表示)检验时应注意,方差不<0,无效假设是方差=0,备择假设就是方差>0,检验为单侧检验,所以用95%CI来大体判断随机效应是否有统计学意义是不合适的。var(Resodual)是残差,模型中eij的方差,代表每个个体的每次测量之间的差异。组内相关系数ICC=66.51/(66.51+86.16)=43.56%,即SBP总变异种有43.56%是由研究对象的不同引起的。

⑦与通线性回归的似然比(LR)检验:要先搞清楚两个模型的差别,与随机截距模型相比,不分层的普通线性回归不含μ0j,看两个模型是否有差异实际上就是估计变异成分μ0j是否为0。如果两个模型只是1个变异成分不同,显示的是chibar2(01)。当前模型跟普通线性模型是有差异的(chibar2(01)=61.52,P<0.001),即μ0j(截距变异)不为0,提示个体差异是MDNS重要的变异来源,或者说MDNS在很大程度上因人而异,应考虑进行分层分析。

为方便后续的模型比较,我们可以将此模型结果存为rdint_e00,菜单步骤为:

统计>>后验估计:管理估计结果>>将当前估计结果存储在内存中,开始,名称rdint_e00,确定,相应命令为:estimates store rdint_e00

几个问题说明一下

①采用不同的软件得出的结果可能会有差异,如该模型采用SPSS,主要结果如下:

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第7张图片

结果不太一致主要我们在SPSS演示中默认采用REML法进行模型估计,而STATA默认的是ML法。另外STATA中提供了多种自由度的计算方法,SPSS里面有更多的协方差结构。这些都会造成结果的上差异。当存在分类自变量时,SPSS中默认高水平为参照水平而STATA则默认低水平为参照水平。

本例如估计方法如采用REML,自由度估计方法选重复测量ANOVA、ANOVA,或者satterthwaite、kroger,则结果基本一致。自由度估计方法的可参考stata的自带教程。

菜单操作很简单,相应命令:mixed MDNS || id:, reml dfmethod(kroger)

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第8张图片

将此模型结果存为rdint_e01:

estimates store rdint_e01

②在stata老版本中,多层混合效应模型归在纵向/面板数据模型内,是通过命令xtmixed来完成的。如按纵向数据分析,其相应命令是xtreg。

③结果的最后一部分给出了两个模型的比较结果。也可以通过以下过程获得:

A) 建立普通截距回归模型并储存为lrint_e00:

mixed MDNS

estimates store lrint_e00

B)采用似然比进行模型检验:统计>>后验估计:参数估计的检验,对比和比较>>比较模型的似然比校验,第一个模型选择lrint_e00,第二个模型选择rdint_e00,选中显示两个模型的统计信息,确定。相应命令为:

lrtest ( lrint_e00 ) ( rdint_e00), stats

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第9张图片

该结果与前面mixed命令的结果是一致的,检验统计量都是61.52,但P值是mixed相应结果的2倍(当前结果P<0.001,不能直接看出)。这主要是因为该检验是单侧检验(无效假设是方差=0,因方差不小于0,所以备择假设就是方差>0)。结果中的提示大意就是方差等于0的无效假设落在参数空间的边界上,否则检验结果是保守的,意思就是报告的似然比检验高于相当于实际概率的上限(“保守的”)。

从信息准则上看,随机截距模型的值均减小,说明随机截距模型比不采用随机截距模型是有改善的,用于LR检验的是-2LL。但此处需要说明的是,当需要比较固定效应相同随机相应不同的两个模型时,采用的ML法并不是最合适的,宜采用REML法。

mixed MDNS, reml

estimates store lrint_e01

lrtest ( lrint_e01 ) ( rdint_e01), stats

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第10张图片

【2】建立只含时间因素的随机截距模型。时间因素在当前模型中作为固定因素纳入。重复测量数据的分析可以此步开始。

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第11张图片

分析>>多层混合效应模型>>线性回归:

估计方法选择默认为极大似然法;

因变量:MDNS;自变量选入time;

随机效应:创建>>方程的层次变量选入id,确定;

确定

相应命令为:mixed MDNS time || id:

结果如下:

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第12张图片

新纳入time变量后,模型是有统计学意义的(wald chi2=349.12,P<0.001),即time的系数不为0;

模型中只有1个自变量time,其系数检验与模型检验是一致的,系数检验采用的是t检验t=18.68,P<0.001。每增加一周,MDNS平均增加2.81分;

与零模型相比,在纳入变量time后,个体内变异大幅度变小(86.16 vs 27.08),表明有一大部分个体内的变异被time变量解释掉了,增加time变量是有意义的。变量time可以解释多大的变异呢?这涉及到方差缩减比例的计算,感兴趣可以参考<<重复测量数据分析系列:线性混合模型(多水平模型)>>一文。需要说明的是,与高水平(个体间)的解释变量只能影响个体间的变异不同,低水平(个体内水平)的解释变量既可以影响个体内的变异,也可以影响个体间的变异。当前模型个体间变异在加入时间因素后变大(66.51 vs 73.07),这从道理上是讲不通的,教材上说是此现象在重复测量数据的低水平分析时较为常见,是由于个体内方差被高估个体间方差被低估所致;

同时我们也发现当前模型与采用一般回归模型的LR检验具有统计学差异(chi2=170.83,P<0.001),即两模型差别μ0j≠0,说明当前模型截距变异不为0,或者说当前模型个体差异依旧是MDNS的重要变异来源,还有其他的变量可以解释这些变异。

为方便后续的比较,可将此模型结果存为rdint_time00,将REML估计的模型结果存为rdint_time01:

estimates store rdint_time00

mixed MDNS time || id:, reml dfmethod(kroger)

estimates store rdint_time01

模型【2】与零模型【1】相比,固定效应部分不同随机效应相同,如果需要将两模型相比需要采用ML法估计模型,结果实际上LR法检验变量Time的系数是否为0,此不再详述。


【3】建立只含时间因素的随机截距-斜率模型

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第13张图片

分析>>多层混合效应模型>>线性回归:

估计方法选择默认为极大似然法;

因变量:MDNS;自变量选入time;

随机效应:创建>>方程的层次变量选入id;方程中的自变量选入time;确定;

确定

相应命令为:mixed MDNS time || id:time

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第14张图片

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第15张图片

结果解释可参照模型【2】,不同的是当前模型认为个体发展趋势线不仅截距不同,斜率也不同。将变量time的斜率设为随机后,误差部分分解的更为细致。个体间截距方差22.88,个体间斜率方差2.68,个体内残差7.37。

采用随机斜率后,模型残差方差和随机截距的方差变化很大,提示采用随机截距+斜率可能对随机截距模型有很好的改善。当然我们也可以通过信息准则有没有降低,或统计学检验方差是否为0来查看是否有必要采用随机斜率模型。

与不含随机斜率和随机截距的模型相比,当前模型具有统计学意义(chi2=338.29,P<0.001),即两者的方差至少一个不为0。

将此模型结果存为rdintslop_time00,将REML估计的模型结果存为rdintslop_time01。

estimates store rdintslop_time00

mixed MDNS time || id:time, reml dfmethod(kroger)

estimates store rdintslop_time01

模型【3】与模型【2】相比,固定效应部分相同随机效应不同,差别就在于随机斜率效应的不同,如果需要将两模型相比宜REML法,结果实际上LR法检验变量var(time)是否为0。

lrtest ( rdint_time01) (rdintslop_time01), stats

结果显示,两个模型具有统计学意义,即随机斜率的变异不为0,采用随机斜率模型是合适的。

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第16张图片

随机效应的方差-协方差结构采用了默认的“independent”。当只有一个随机变量时,随机变量的方差-协方差结构只能是identity,不论你选择何种结构系统都会按identity结构来分析,当随机变量不止一个时,也可选用其他结构,stata提供的结构有“independent”、“identity”、“exchangeable”、“unstructured”。可以采用选用不同的结构建模。采用REML进行模型估计,然后进行比较,选用最合适的结构。

比如建立采用REML估计的unstructured结构模型:

mixed MDNS time || id:time, reml dfmethod(kroger) covariance(unstructured)

在构建模型后可通过后验检验来计算信息准则:统计>>后验估计:设计、诊断和拟合优度分析>>信息准则-AIC和BIC,开始,确定,相应命令为:estat ic,结果表明采用独立的随机效应的方差-协防结构是合适的。

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第17张图片

【4】纳入高水平解释变量的随机截距-斜率模型,评估疗效

实际上在纳入高水平的解释变量时有几种情况应予以考虑。

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第18张图片

当前模型考虑溶栓药物对个体的斜率存在影响,使用模型[4.2]。

分析>>多层混合效应模型>>线性回归:

估计方法选择默认为极大似然法;

因变量:MDNS;自变量选入i.Trtg、time及i.Trtg#c.time;需要注意的是Trtg是分类变量,在纳入的时候需要在将其指定为因子变量,步骤②-⑤相应的命令简写为Trtg##c.time;

随机效应:创建>>方程的层次变量选入id,方程中的自变量选入time;确定;

确定

相应命令为:mixed MDNS Trtg##c.time || id:time

等同于命令:mixed MDNS i.Trtg time Trtg#c.time || id:time

当前模型存为rdintslop_tt00:estimates store rdintslop_tt00

在横截面的多水平模型中,多从零模型开始。在重复测量数据的多水平模型中教材中一般都跳过此步从含有时间变量的随机截距模型开始。我们将在该模型中给出最详尽的解释,后续模型在此基础上进行解读。

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第19张图片

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第20张图片

整个模型纳入3个变量,具有统计学意义的(wald chi2=475.03,P<0.001);

校正其他因素的影响后,与对照组相比,药物对MDNS的改善并不明显;

MDNS随时间的改变而出现显著变化,每增加一周,MDNS增加1.28分;

药物治疗组与时间存在交互作用,MDNS的改善幅度(斜率)在不同的治疗组是不同的,治疗组高于安慰剂组。存在交互作用时,不论单因素的主效应是否有统计学意义,都应保留在模型中;

似然比检验表明,与不含随机项的线性模型相比,建立随机截距-斜率模型是有统计学意义的(chi2=199.39,P<0.001)。

如果想具体考察var(time)、var(_cons)是否都不等于0,可以建立相应的的模型并进行比较。var(time)表示每个个体的MDNS随时间改变的幅度(斜率)是否有差异,var(_cons)表示的则是个体的截距是否不同。固定效应相同随机效应不同宜采用REML估计模型,如检验var(time)是否为0,可通过以下比较,结果chi2(1) = 23.25,P<0.001,具体过程结果就不展示了。

mixed MDNS Trtg##c.time || id:, reml dfmethod(kroger)

estimates store rdint_tt01

mixed MDNS Trtg##c.time || id:time, reml dfmethod(kroger)

estimates store rdintslop_tt01

lrtest ( rdint_tt01) ( rdintslop_tt01), stats


【5】随机截距-斜率模型:加入背景协变量,控制混杂因素

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第21张图片

分析>>多层混合效应模型>>线性回归,具体菜单操作如下图,相应命令为:

mixed MDNS age Trtg##c.time || id:time

当前模型存为rdintslop_ttage00:estimates store rdintslop_tta00

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第22张图片

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第23张图片

模型纳入4个变量,具有统计学意义(wald chi2=473.13,P<0.001),解读可参见前面的模型,仅对新加入的age变量进行解释:

年龄加入对整个模型的改变不大,相比模型【4】,随机截距变异减小,表明年龄能够影响到个体的截距,但其系数检验无统计学意义,即不同年龄的MDNS得分并无差异。

模型比较也显示,age的加入对模型的改变的确没有统计学意义。

lrtest ( rdintslop_tt00) ( rdintslop_tta00), stats

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第24张图片

REML模型估计存为rdintslop_tta01:

mixed MDNS age Trtg##c.time || id:time, reml dfmethod(kroger)

estimates store rdintslop_tta01


【6】设置合适的残差的方差-协方差结构:设定适当的方差-协方差结构,从个体内变异的角度来建模。

方差-协方差结构有二十多种,stata至少有8种,可以考虑首先检查非结构性方差-协方差结构和相关系数矩阵,根据其结果选择合适的结构。但在设为非结构性方差-协方差结构时,很容易造成模型的不收敛。

当然我们也可以通过模型间的比较来选择,不同方差-协方差结构模型间的比较,在模型估计时应采用REML法。

造成不收敛的可能原因有:

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第25张图片

STATA收敛失败有3种表现形式:(1)重复的nonconcave或者backed-up;(2)海森矩阵计算变得非对称、出现缺失值;(3)标准误计算失败。

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第26张图片

我们也可以通过后验检验来计算信息准则来判断:统计>>后验估计:设计、诊断和拟合优度分析>>信息准则-AIC和BIC,开始,确定,相应命令为:estat ic,几种方差-协方差结构信息准则如下,据此最终模型选为ma。当然也可以采用不同的结构建模,采用REML估计模型后进行似然比检验,前面多次使用该方法,在此就不详述了。

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第27张图片

基于以上我们最终的模型是一个含有交互作用的、随机效应方差-协方差矩阵为independent、残差方差-协方差矩阵为ma 1的随机截距-斜率模型。最终的模型也宜采用REML来估计。

分析>>多层混合效应模型>>线性回归,具体菜单操作如下图,相应命令为:

mixed MDNS age Trtg##c.time || id:time, reml residuals(ma 1, t(time)) dfmethod(kroger)

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第28张图片

结果如下,前面我们已经解释很多了,在此就不再详述。

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第29张图片

当然,最终结果显示变量age不增加模型变异的解释,从精简模型的角度,可以去掉变量age后再进行建模,相应命令:mixed MDNS Trtg##c.time || id:time, reml residuals(ma 1, t(time)) dfmethod(kroger)

甚至我们还需要再次判断var(time)和var(_con)是否为0,从而判断是否有必要进行简化模型或者采用当前模型。


后记:

(1)关于建模步骤

在<<重复测量数据分析系列:线性混合模型(多水平模型)>>中,我们曾演示过多水平模型的分析步骤。①建立空模型(零模型,只有截距的模型),计算组内相关系数,判断是否有必要进行多水平建模;②在空模型基础上纳入高层级解释变量和低层级解释变量;③检验低层级解释变量是否是随机斜率;④检验跨水平交互作用。混合效应模型跟多水平模型只是称谓不同,分析步骤是一致的,只是混合效应模型是从固定效应和随机效应(包括随机截距和/或随机斜率)的角度进行分析而已。①建立不含解释变量的随机截距模型;②在①基础上纳入固定效应因素,建立随机截距+固定斜率模型;③建立随机截距+随机斜率模型,检验解释变量是否具有随机效应;④在固定效应中纳入交互作用,解释何种因素导致了斜率的随机。

上述的有些步骤前后是有重合或者来回反复的,本例是按如下步骤依次进行的:

①考察线性趋势;②零模型:不含任何解释变量的随机截距模型;③纳入时间变量的随机截距模型;④随机截距+随机斜率模型:只包含时间变量的随机截距-斜率模型,考察时间变量的效应是否为随机的;⑤纳入高水平解释变量的随机截距-斜率模型,评估疗效:高水平解释变量应充分考虑是否对斜率有影响;⑥控制混杂因素;⑦设定残差的方差-协方差结构。

逐步纳入的方法虽然能够给出更多的信息,但是先纳入高水平变量还是低水平变量?变量是逐个纳入还是分批纳入?是先进行随机斜率的考察还是在纳入所有变量后考察?方差-协方差结构(包括高水平和低水平)是每个模型都考察还是在某个模型中予以考察?本例只为演示,因此讨论了很多模型,使得整个分析啰里啰嗦、颠三倒四。实际上应根据分析目的来确定合适的模型,分析目的才是决定采用何种模型的最主要依据。即便如此,个人觉得也可以在一开始便建立完整的“全模型”,然后逐渐去除掉没有意义的因素,这可能会简化分析步骤,以后可以再尝试一下。

(2)STATA与SPSS在多水平混合效应模型中的比较

SPSS在给出结果时,首先给出各个因素固定效应的整体检验结果,个人觉得还是比较有用的,本例Trtg只有2个组,所以整体检验与系数是一致的。

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第30张图片

但当分类变量不止有2个水平时,这个提示结果可能会更具有参考价值。如下图stata的结果显示,模型具有统计学意义,但每个变量各个水平的比较都没有统计学意义,单从如下的结果我是无法得知那些变量有意义的。

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第31张图片

对随机效应而言,SPSS中也会直接给出代表各种随机效应的方差是否为0的检验。如本例采用一介自回归方差-协方差结构,随机效应结果如下图,代表斜率变异的方差=0,也就是说在纳入age、time、Trtg以及Trtg和time的交互作用后,个体间的斜率不再有变异,或者说个体间的斜率出现的不同完全是由于采用了不同的治疗方案所致。在此基础上可进行模型的简化,去除无统计学意义的变量age、采用随机截距模型即可,当然新的模型还需要检验比较,感兴趣的不妨试试。而在stata中,如果需要验证这个方差是否为0,需要比较两个模型(一个是当前模型,另一个是去掉随机斜率的模型)来检验,相对来说比较繁琐。

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第32张图片

当然stata也有比较灵活的地方,比如对分类变量,在stata中可以从菜单或者命令上直接设置参照水平,而spss貌似没有这个功能,当然你可以通过在数据中改变赋值的方法来进修改参照水平,spss默认高赋值水平为参照水平。

mixed MDNS age b(last).Trtg##c.time || id:time, reml residuals(ar 1, t(time)) dfmethod(kroger)

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第33张图片

处理效应模型stata实例_重复测量数据分析系列:再谈多层混合效应模型(基于Stata)..._第34张图片

-- END --

转自个人微信公众号【Memo_Cleon】的统计学习笔记:重复测量数据分析系列:再谈多层混合效应模型(基于Stata)。

你可能感兴趣的:(处理效应模型stata实例)