标题: 一般线性模型(GLM)的相关思考 [打印本页] 作者: 雨不眠的下 时间: 2015-4-1 13:57 标题: 一般线性模型(GLM)的相关思考 最近遇到一个问题,如果因变量为一个连续变量(如胰岛素水平),主要考察的变量为分组变量(如正常血糖组,前糖尿病组,糖尿病组三组),现在的目的是想看调整多种变量(包括多个连续性变量和分类变量)后,胰岛素水平是否一致。* q' @: M) P4 s2 o* M6 w O8 e
5 A- R6 n. L( O k% _
7 g- v, p0 X, C% y3 Z
一开始的思路想到的是采用GLM进行协方差分析来解决。. N: ?! {/ k: n% f G. r
% z) e" n7 p, Y$ M2 T但是有觉得似乎不是很对,因为经典的协方差分析通常只考虑一个连续变量(协变量)和一个分组变量,同时协变量和分组变量只有不存在交互的时候(经典协方差分析的前提)才能使用协方差分析。! h6 X* E1 `* I6 H. E0 S1 r9 J5 V8 F
针对我目前的问题,如果想调整多个连续性变量和分类变量,这种方法能否再叫协方差分析?如果可以认为是协方差的思想,用不用检验协方差分析的前提(如协变量与分组变量之间的交互)?多个连续性变量和分类变量存在时,该前提应该怎么检验?4 D7 R( G- w& R" | j7 L- i
+ g: Z: o8 t) f: C通过跟别人交流之后,有一句话非常受用:线性模型其实最重要的不在于用的方差分析还是协方差分析,而主要是检验残差是否符合线性的几个条件。 0 C6 g/ F' |5 R4 O8 l3 {' J3 R& ]* t* q' j0 a' n' P) w' |
受到该启发后,认真再复习GLM的相关资料,得到更加重要的总结如下(来自高惠璇SAS/STAT软件使用手册,实际是SAS8.2的User's guide的中文版,但是目前SAS 9.2,9.3的User's guide关于GLM模型的介绍中已经删去了这么经典的总结,实在可惜,倒让人看不到GLM的真正长处了):" u3 P: _8 ]) |8 {( ?2 E# ` 如果X1-X3,Y1-Y2为连续性变量,Y3为分类变量,a-c为分类变量,time为时间变量,目前我们熟悉的模型可以简单概括如下: ! w7 H2 V; Y6 e+ ?$ p ^(1) y1= x1 简单回归' S( X: |3 t' c0 ?+ z (2) y1= x1 x2 x3 多重回归(multiple regression)/ I4 l0 F+ ?) q; }& o$ b1 d (3) y1 y2=x1 x2 多元回归(multivariate regression) : ?9 ~ [$ w4 s5 g5 r) `(4) y1= a 单因素方差分析 # L- d6 e) G7 K(5) y1= a b (析因设计的)主效应分析 2 J% }: U* p; b(6) y1= a b a*b (析因设计的)主效应加交互项分析9 z5 l9 x8 P: S$ s+ W (7) y1= a x1 协方差分析! b( D% F8 T1 \4 R! Y& F7 |; ~ (8) y3= a 单因素logistic回归& P. @, n4 i k- V' J9 E" j (9) y3= a b c x1 x2 x3 多因素logistic回归$ \5 M* F" k: G% V/ D (10) y3(time) =a 单因素cox回归! D5 P! }( ]# \: M4 p3 f (11) y3(time) = a b c x1 x2 x3 多因素cox回归 # L4 ~ _9 k$ B f- k" g, l 8 Q* ?* O3 D& i8 _' y# g1-7采用SAS的一般线性模型GLM都能实现,而1-9采用SAS的广义线性模型GENMOD都能实现,具体验证详见后面举例 7 m# }8 }% b/ } H* D' \5 p# ]& G, y3 D- K0 y
再次回到开始的问题:掌握上述的基本思路后,因为因变量为连续变量,所以采用线性模型肯定是对的。如果因变量可以认为是正态的,那采用一般线性模型是合理的。所以现在的关键问题是:如果调整多个变量(包含分类和连续变量)后看不同分组间因变量(连续变量)是否仍有差异时,能否再称为协方差分析?我目前认为应该是可以的,但是事实上我们遇到这种情况后,并不再去强调它是协方差的思想,而只是回到线性模型分析的最初的起点,也即是检查残差是否符合线性的基本条件即可。9 _0 `/ e3 L k3 H; I7 C
% ~. k. Y4 n9 U# ?- n
但是现实中,我们在使用GLM解决前面遇到的类似问题时,只是简单地用了,而很多时候我们都没有认真去检验残差是否符合这个条件,这可能是我们滥用GLM的表现之一,因为我们更多只关注模型的参数是否有意义,而不去关心对结果“无关紧要”的前提条件。4 e; a" s: {4 W+ Y1 ?% l
+ g0 g: i' j# J1 ~2 p+ N! C% U& Z2 w5 t再次思考一个问题,上述列举的1-7模型,在GLM中并没有特定的选项指定是哪一种模型,而采用一种表达方式。由此,可以进一步深入概括一句话,GLM模型,对于上述列举的1-7模型并没有本质区别,唯一的区别只是模型中自变量的属性和数量不同。但是我们对1-7模型的叫法却不相同。而其原因是我们对事物的认识是一个由浅到深的过程,之前我们认为他们是不同的7件事情,随着认识的加深,发现原来这些问题可以用一个方式表达出来。而SAS的GENMOD则更能说明这一问题。现在还没有一个模型能把上述模型1-11用一种表达方式表示,但是COX回归在抛开基线生存函数之后剩下的部分也是线性模型,所以说不定哪天真的能够把上述所有模型用一种表达方式表示出来。到时候更应该相信人们对事物的认识绝对是一个由浅到深的过程啦。6 q& ^, f5 n# i
8 O2 ~# n# \+ B3 B9 u1 [! J
附:GLM与GENMOD在协方差分析结果的比较 / u6 N; X" H8 V4 m4 V data drugtest; 7 l0 P" a6 O6 Y$ e5 K
input Drug $ PreTreatment PostTreatment @@; 3 \8 @9 A# X ] D( O% q4 w
datalines; ; G. Q( z# k3 u& f7 N. M6 R
A 11 6 A 8 0 A 5 2 A 14 8 A 19 11 6 v; x0 @; x( Z
A 6 4 A 10 13 A 6 1 A 11 8 A 3 0 6 {4 t3 v; q( v" [+ _
D 6 0 D 6 2 D 7 3 D 8 1 D 18 18 - q4 h! O) |" p( W
D 8 4 D 19 14 D 8 9 D 5 1 D 15 9 3 X/ _( }8 a8 W+ M8 O% E F 16 13 F 13 10 F 11 18 F 9 5 F 21 23 : w4 z z. j& @ F 16 12 F 12 5 F 12 16 F 7 1 F 12 20 ( y8 i) d# [2 c
; 8 B t5 a" d+ m( Z- K# x/ X2 L& ?& W. J0 E' k+ G+ {8 c3 K+ F/ f
proc glm; 2 [- |0 P- K7 `# C6 t8 Y& d' o
class Drug; G3 S- B' m0 D0 Q8 b5 u model PostTreatment = Drug PreTreatment / solution; p6 L' s; J( W, u3 j6 [ lsmeans Drug / stderr pdiff cov out=adjmeans; - y) ?4 r8 X- J) G
run; 2 v/ W T* ?, f
- e. {3 H$ q! D+ V/ l1 |+ T$ ~ proc genmod data=drugtest; * @; @: o0 l% p( N- T8 S
class Drug; {& q9 i4 w2 r" P3 `' \/ u model PostTreatment = Drug PreTreatment / dist=NOR link=ID obstats type1; ! I' X! E- ~5 N0 E3 V% m! S" n
run; . p, r7 x) Y+ ^ G
, ~1 S {) Y; Q( R( r- r
proc print data=adjmeans; ! {5 `: p, X9 ^9 w% c& x
run; 1 L1 d1 D" P/ |: g / L' G: |. i" U# |9 d : N- x/ G5 `1 @1 ~' b4 T* i6 w# e- q$ V& X# n 作者: 无法定义 时间: 2015-4-1 13:59
0 q# N8 A% V" @2 |6 ?9 |0 D
学习了,总结的真好,特别是那句关于前提的提醒 + M. K) U1 t* O作者: 拒绝一切 时间: 2015-4-1 13:59
# X% s3 n$ R6 C: @ l6 W
学习了,,“我们更多只关注模型的参数是否有意义,而不去关心对结果“无关紧要”的前提条件: }5 C4 Z1 L3 d% O) X+ \' A
”这句话是该提醒了很多人啊,个人感觉不要只知道应用,还要知道原理,所以说理论性的东西还是不可缺的,,谢谢楼主了哈,,2 }% l, N) c: C' S 作者: 今生已醉 时间: 2015-4-1 14:00