感觉从来没有一个模型有这么多的称谓。 混合效应模型的不同称谓 多层混合效应线性模型(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)是既包含固定效应又包括随机效应的模型。 根据截距和斜率是否随机,混合效应模型可以有四种情况:①固定截距+固定斜率;②固定截距+固定斜率;③随机截距+固定斜率;④随机截距+随机斜率。示意如图: (1)固定截距+固定斜率:这种情况实际上是混合线性模型的特殊情况,采用一般线性模型进行分析就可以了。(2)固定截距+随机斜率:各组回归线截距相同,但斜率不同,斜率随组的变化而变化。(3)随机截距+固定斜率:组内回归的截距随组变化而变化但斜率相同,即低层级自变量的斜率在不同的组里面都是一致的。虽然实际中这种绝对一致(斜率相等)的情况很少存在,但在统计学上的相等并不等同于绝对相等,可以通过显著性检验来确定组间斜率是否保持一致。(4)随机截距+随机斜率:各组回归线截距和斜率都不同,均会跨组变化。 从方差组成的角度看,混合效应模型是将总方差分为两个成分:个体间变异和残差方差。随机截距-斜率模型将个体间随机变异纳入模型进行分析,并假设残差σ2相互独立且相等,即个体内的残差方差/协方差矩阵为单位阵(即R=σ2I),这在横向数据的分析(如大型的多中心临床试验)中较为常见,但对于纵向数据(如跟踪研究的重复测量资料)而言,个体内常常不独立,这种独立的假设往往不成立,这时候我们需要考虑残差方差协方差结构模型(Residual Covariance Pattern Model),将矩阵R设置成不同的方差协方差结构。如果将两个局部模型组合起来,就是可以分析个体间变异(随机系数模型)又可以分析个体内变异(方差/协方差模式模型)的全模型。 王济川等.多层统计模型:方法与应用.北京,高等教育出版社,2008.1. 本次笔记分析主要演示STATA操作,示例来源:杨珉.李晓松等.医学和公共卫生研究常用多水平统计模型.北京:北京大学医学出版社,2007.5. 示例:某溶栓药物治疗20名急性脑梗死患者的疗效,采用随机、双盲、安慰剂平行对照设计,每组各10例,分别于治疗前及治疗后8周每周进行随访观测,观测指标为神经系统体征评分(MDNS)。 研究开始时每个个体的MDNS值不同;观测时间内个体间MDNS变化率也不同,有的变化快有的变化慢;两个组的MDNS增速也不同,治疗组增速偏快一些;起始值高的最终结果往往也高,个体内表现出相关趋势;整体趋势呈线性增长趋势(红色为拟合线)。 在横截面的多水平模型中,多从零模型开始。在重复测量数据的多水平模型中教材中一般都跳过此步从含有时间变量的随机截距模型开始。我们将在该模型中给出最详尽的解释,后续模型在此基础上进行解读。 估计方法选择默认为极大似然法; 因变量:MDNS;暂不选入任何自变量; 随机效应:创建>>方程的层次变量选入id,确定; 自由度计算方法选择为默认的残差; 确定。 相应命令:mixed MDNS || id: 结果解读: ①首先显示了我们使用菜单打开文件和建立随机截距模型的命令。use命令用来打开文件,mixed y x || lev2:命令建立模型。mixed MDNS || id: 建立因变量为MDNS、分层变量为id、自由度采用ANOVA法计算、无解释变量的随机截距模型。 ④模型拟合信息:结果给出了当前模型的似然比值,同时与只含常数项模型进行检验。当前模型默认自由度残差估计方法是残差,此处结果出现将是wald检验的wald chi2值及相应P值。若选择其他方法估计自由度(如使用ANOVA法:mixed MDNS time || id:, dfmethod(anova)),此处采用的则是方差检验。当前模型含有0个自变量(空模型不含自变量),因此未给出相应检验结果。 统计>>后验估计:管理估计结果>>将当前估计结果存储在内存中,开始,名称rdint_e00,确定,相应命令为:estimates store rdint_e00 ①采用不同的软件得出的结果可能会有差异,如该模型采用SPSS,主要结果如下: 结果不太一致主要我们在SPSS演示中默认采用REML法进行模型估计,而STATA默认的是ML法。另外STATA中提供了多种自由度的计算方法,SPSS里面有更多的协方差结构。这些都会造成结果的上差异。当存在分类自变量时,SPSS中默认高水平为参照水平而STATA则默认低水平为参照水平。 菜单操作很简单,相应命令:mixed MDNS || id:, reml dfmethod(kroger) 将此模型结果存为rdint_e01: estimates store rdint_e01 A)建立普通截距回归模型并储存为lrint_e00: mixed MDNS estimates store lrint_e00 该结果与前面mixed命令的结果是一致的,检验统计量都是61.52,但P值是mixed相应结果的2倍(当前结果P<0.001,不能直接看出)。这主要是因为该检验是单侧检验(无效假设是方差=0,因方差不小于0,所以备择假设就是方差>0)。结果中的提示大意就是方差等于0的无效假设落在参数空间的边界上,否则检验结果是保守的,意思就是报告的似然比检验高于相当于实际概率的上限(“保守的”)。 mixed MDNS, reml estimates store lrint_e01 lrtest ( lrint_e01 ) ( rdint_e01), stats 分析>>多层混合效应模型>>线性回归: 估计方法选择默认为极大似然法; 因变量:MDNS;自变量选入time; 随机效应:创建>>方程的层次变量选入id,确定; 确定。 相应命令为:mixed MDNS time || id: 结果如下: 新纳入time变量后,模型是有统计学意义的(wald chi2=349.12,P<0.001),即time的系数不为0; estimates store rdint_time00 mixed MDNS time || id:, reml dfmethod(kroger) estimates store rdint_time01 分析>>多层混合效应模型>>线性回归: 估计方法选择默认为极大似然法; 因变量:MDNS;自变量选入time; 随机效应:创建>>方程的层次变量选入id;方程中的自变量选入time;确定; 确定。 mixed MDNS time || id:time 结果解释可参照模型【2】,不同的是当前模型认为个体发展趋势线不仅截距不同,斜率也不同。将变量time的斜率设为随机后,误差部分分解的更为细致。个体间截距方差22.88,个体间斜率方差2.68,个体内残差7.37。 estimates store rdintslop_time00 mixed MDNS time || id:time, reml dfmethod(kroger) estimates store rdintslop_time01 lrtest ( rdint_time01) (rdintslop_time01), stats 结果显示,两个模型具有统计学意义,即随机斜率的变异不为0,采用随机斜率的模型是合适的。 随机效应的方差-协方差结构采用了默认的“independent”。当只有一个随机变量时,随机变量的方差-协方差结构只能是identity,不论你选择何种结构系统都会按identity结构来分析,当随机变量不止一个时,也可选用其他结构,stata提供的结构有“independent”、 “identity”、 “exchangeable”、 “unstructured”。可以采用选用不同的结构建模。采用REML进行模型估计,然后进行比较,选用最合适的结构。 比如建立采用REML估计的unstructured结构模型: mixed MDNS time || id:time, reml dfmethod(kroger) covariance(unstructured) 实际上在纳入高水平的解释变量时有几种情况应予以考虑。 当前模型考虑溶栓药物对个体的斜率存在影响,使用模型[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 整个模型纳入3个变量,具有统计学意义的(wald chi2=475.03,P<0.001); 校正其他因素的影响后,与对照组相比,药物对MDNS的改善并不明显;【有校正,见留言】 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 分析>>多层混合效应模型>>线性回归,具体菜单操作如下图,相应命令为: mixed MDNS age Trtg##c.time || id:time 当前模型存为rdintslop_ttage00:estimates store rdintslop_tta00 模型纳入4个变量,具有统计学意义(wald chi2=473.13,P<0.001),解读可参见前面的模型,仅对新加入的age变量进行解释: 年龄加入对整个模型的改变不大,相比模型【4】,随机截距变异减小,表明年龄能够影响到个体的截距,但其系数检验无统计学意义,即不同年龄的MDNS得分并无差异。 lrtest ( rdintslop_tt00) ( rdintslop_tta00), stats REML模型估计存为rdintslop_tta01: mixed MDNS age Trtg##c.time || id:time, reml dfmethod(kroger) estimates store rdintslop_tta01 STATA收敛失败有3种表现形式:(1)重复的nonconcave或者backed-up;(2)海森矩阵计算变得非对称、出现缺失值;(3)标准误计算失败。 我们也可以通过后验检验来计算信息准则来判断:统计>>后验估计:设计、诊断和拟合优度分析>>信息准则-AIC和BIC,开始,确定,相应命令为:estat ic,几种方差-协方差结构信息准则如下,据此最终模型选为ma。当然也可以采用不同的结构建模,采用REML估计模型后进行似然比检验,前面多次使用该方法,在此就不详述了。 基于以上我们最终的模型是一个含有交互作用的、随机效应方差-协方差矩阵为independent、残差方差-协方差矩阵为ma 1的随机截距-斜率模型。最终的模型也宜采用REML来估计。 mixed MDNS age Trtg##c.time || id:time, reml residuals(ma 1, t(time)) dfmethod(kroger) 结果如下,前面我们已经解释很多了,在此就不再详述。 当然,最终结果显示变量age不增加模型变异的解释,从精简模型的角度,可以去掉变量age后再进行建模,相应命令:mixed MDNS Trtg##c.time || id:time, reml residuals(ma 1, t(time)) dfmethod(kroger)。 甚至我们还需要再次判断var(time)和var(_con)是否为0,从而判断是否有必要进行简化模型或者采用当前模型。 后记 (1)关于建模步骤 在<<重复测量数据分析系列:线性混合模型(多水平模型)>>中,我们曾演示过多水平模型的分析步骤。①建立空模型(零模型,只有截距的模型),计算组内相关系数,判断是否有必要进行多水平建模;②在空模型基础上纳入高层级解释变量和低层级解释变量;③检验低层级解释变量是否是随机斜率;④检验跨水平交互作用。混合效应模型跟多水平模型只是称谓不同,分析步骤是一致的,只是混合效应模型是从固定效应和随机效应(包括随机截距和/或随机斜率)的角度进行分析而已。①建立不含解释变量的随机截距模型;②在①基础上纳入固定效应因素,建立随机截距+固定斜率模型;③建立随机截距+随机斜率模型,检验解释变量是否具有随机效应;④在固定效应中纳入交互作用,解释何种因素导致了斜率的随机。 ①考察线性趋势;②零模型:不含任何解释变量的随机截距模型;③纳入时间变量的随机截距模型;④随机截距+随机斜率模型:只包含时间变量的随机截距-斜率模型,考察时间变量的效应是否为随机的;⑤纳入高水平解释变量的随机截距-斜率模型,评估疗效:高水平解释变量应充分考虑是否对斜率有影响;⑥控制混杂因素;⑦设定残差的方差-协方差结构。 SPSS在给出结果时,首先给出各个因素固定效应的整体检验结果,个人觉得还是比较有用的,本例Trtg只有2个组,所以整体检验与系数是一致的。 但当分类变量不止有2个水平时,这个提示结果可能会更具有参考价值。如下图stata的结果显示,模型具有统计学意义,但每个变量各个水平的比较都没有统计学意义,单从如下的结果我是无法得知那些变量有意义的。 对随机效应而言,SPSS中也会直接给出代表各种随机效应的方差是否为0的检验。如本例采用一介自回归方差-协方差结构,随机效应结果如下图,代表斜率变异的方差=0,也就是说在纳入age、time、Trtg以及Trtg和time的交互作用后,个体间的斜率不再有变异,或者说个体间的斜率出现的不同完全是由于采用了不同的治疗方案所致。在此基础上可进行模型的简化,去除无统计学意义的变量age、采用随机截距模型即可,当然新的模型还需要检验比较,感兴趣的不妨试试。而在stata中,如果需要验证这个方差是否为0,需要比较两个模型(一个是当前模型,另一个是去掉随机斜率的模型)来检验,相对来说比较繁琐。 当然stata也有比较灵活的地方,比如对分类变量,在stata中可以从菜单或者命令上直接设置参照水平,而spss貌似没有这个功能,当然你可以通过在数据中改变赋值的方法来进修改参照水平,spss默认高赋值水平为参照水平。 mixed MDNS age b(last).Trtg##c.time || id:time, reml residuals(ar 1, t(time)) dfmethod(kroger) END |
|
来自: Memo_Cleon > 《待分类》