2009-04-12

如何做“有序Logistic回归”?

patricia @ 2009-04-12:

祝老师, 你好, 我想问个关于回归的问题. 对照组病灶数0, 病例组病灶数为1,2,3. 现在想了解几个危险因素和病灶数的关系, 是不是应该用有序logistic回归来分析. 能不能概括一下步骤, 看了一些资料, 还是感觉茫然! 谢谢!

庄主 @ 2009-04-12:

我对医学知之甚少,不知取值从0到3的“病灶”应该是一个定距 interval) 还是一个定序 ordinal) 的变量?既然你已考虑用有序logistic回归(ordinal logistic regression,以下简称OLR),说明你是确定病灶为定序变量的。

logistic regression(LR)用于分析因变量为定类或定序的数据。其中分为三个分支:一是因变量为二分组的binary LR(通常在LR一词之前不注明binary),二是因变量为多项分组的multinomial logistic regression(MLR),三是这里谈的OLR。显然,MLR和OLR相似,唯一的区别是前者因变量各组之间只有性质的区别而后者各组之间有大小之别。

我用过MLR,但没有用过OLR(所以以下部分纯属“知识”而不是经验之谈),刚才查看了一下SPSS中的OLR程序(SPSS中叫做PLUM,但不是可口的李子噢),觉得它的操作及输出结果与MLR大致相仿(其实前者比后者更简单,这也许是好事),主要要多了一项“Test of parallel items”的输出,用于检验因变量各组之间的预测值(即根据自变量而模拟的logistic曲线)是否平行。

你希望了解一下操作步骤,我觉得你既然知道选择OLR,操作对你来说应该没有任何困难。如在SPSS里,将定类的自变量当作Factor、定距的自变量当作Covariate,如果需要检验自变量之间的交互影响,在Location中指定。以下是基本的Syntax(假定有两个定类自变量x1、x2和一个定距自变量z,其中x1和x2、x1和z被假设有交互关系):

PLUM y BY x1 x2 WITH z/LOCATION=x1 x2 z x1*x2 x1*z/PRINT=FIT PARAMETER SUMMARY TPARALLEL.

其中PRINT=TPARALLEL就是检验y各组预测值的平行性(注:如果不平行,并不是说明它们之间有交互影响)。

我猜你参阅了其它资料后的困惑,主要在于对其输出结果的解读上。这是在对定类因变量做多元分析时使用各种LR或者Loglinear时普遍出现的问题。(曾有一位学生问我,是否需要选修一门专讲Loglinear Analysis的课,我强烈推荐,说哪怕你以后从不用Loglinear,懂得如何解读定类因变量的多元分析结果就终身受用了。)这种困惑,与你已有如何处理定类变量的其它经验直接有关(注意,我不用知识,因为一般知识在这里帮不了你)。如果你会在各种回归中设置和解读定类自变量,就应该会将其原理推广到如何设置和解读BLR中定类因变量、并进一步推广到如何设置和解读MLR中的定类因变量或OLR中的定序因变量了。我在本庄已写过多个有关如何设置和解读定类自变量的帖子,请查询一下。如果你读后还是觉得无从下手,说明你还只获得了一下(简单)知识,需要从那里开始动手做,以积累必要的经验,然后循序渐进、最后才来做OLR,定量分析很难一步到位的。

No comments: