数学建模社区-数学中国

标题: 一般线性模型(GLM)的相关思考 [打印本页]

作者: 雨不眠的下    时间: 2015-4-1 13:57
标题: 一般线性模型(GLM)的相关思考
最近遇到一个问题,如果因变量为一个连续变量(如胰岛素水平),主要考察的变量为分组变量(如正常血糖组,前糖尿病组,糖尿病组三组),现在的目的是想看调整多种变量(包括多个连续性变量和分类变量)后,胰岛素水平是否一致。
/ @: z! j5 g: |+ @. ^( @6 }9 k6 ~! z! i7 b* d  J% i. Z6 I
# n4 C) a7 i. ^# W+ N- S7 ?( u7 X
一开始的思路想到的是采用GLM进行协方差分析来解决。( f1 M5 {  S8 _/ J. E1 p" K4 {
  f$ W' w6 Z  x8 o
但是有觉得似乎不是很对,因为经典的协方差分析通常只考虑一个连续变量(协变量)和一个分组变量,同时协变量和分组变量只有不存在交互的时候(经典协方差分析的前提)才能使用协方差分析。
. m9 [/ R) g% E) x) R针对我目前的问题,如果想调整多个连续性变量和分类变量,这种方法能否再叫协方差分析?如果可以认为是协方差的思想,用不用检验协方差分析的前提(如协变量与分组变量之间的交互)?多个连续性变量和分类变量存在时,该前提应该怎么检验?
, z" z- h3 E& o4 L4 ?. o1 R% H+ h0 I% x
通过跟别人交流之后,有一句话非常受用:线性模型其实最重要的不在于用的方差分析还是协方差分析,而主要是检验残差是否符合线性的几个条件。
5 ^$ }  ]3 e& w8 t/ R( D
, {; ?0 ]6 [5 |: @受到该启发后,认真再复习GLM的相关资料,得到更加重要的总结如下(来自高惠璇SAS/STAT软件使用手册,实际是SAS8.2的User's guide的中文版,但是目前SAS 9.2,9.3的User's guide关于GLM模型的介绍中已经删去了这么经典的总结,实在可惜,倒让人看不到GLM的真正长处了):
% R$ Y7 u) k# Z. e如果X1-X3,Y1-Y2为连续性变量,Y3为分类变量,a-c为分类变量,time为时间变量,目前我们熟悉的模型可以简单概括如下:# Z% K0 Z" \, C+ w1 t4 \8 G4 b
(1) y1= x1    简单回归
5 ?$ z; L3 w% X" E(2) y1= x1 x2 x3  多重回归(multiple regression)8 Z* w( O/ ^7 m5 e
(3) y1 y2=x1 x2   多元回归(multivariate regression)+ `4 f+ x9 f8 I
(4) y1= a   单因素方差分析
+ @, A) O6 s" n$ V, k' H(5) y1= a b   (析因设计的)主效应分析- i% k9 |) x% B  `# w% J1 g6 F
(6) y1= a b  a*b (析因设计的)主效应加交互项分析5 t2 s/ C0 f, A0 c, ~: P
(7) y1= a x1   协方差分析  D0 V9 Z" ^9 |2 ]$ q8 ?, `' o
(8) y3= a   单因素logistic回归
* h6 M; e5 U" g) D6 f4 N. B- @. d(9) y3= a b c x1 x2 x3   多因素logistic回归
' F* I8 E& S, w) V: N/ o; B(10) y3(time) =a   单因素cox回归1 {( v, T5 K* t/ A* O/ a
(11) y3(time) = a b c x1 x2 x3  多因素cox回归; k4 [* l& K% k3 [0 d& p

) N0 D& L8 `& O4 Z  N1-7采用SAS的一般线性模型GLM都能实现,而1-9采用SAS的广义线性模型GENMOD都能实现,具体验证详见后面举例( J) {6 X( u4 r' G( ?, X2 J; c8 z

6 ~% R% k* M/ p# L0 Z再次回到开始的问题:掌握上述的基本思路后,因为因变量为连续变量,所以采用线性模型肯定是对的。如果因变量可以认为是正态的,那采用一般线性模型是合理的。所以现在的关键问题是:如果调整多个变量(包含分类和连续变量)后看不同分组间因变量(连续变量)是否仍有差异时,能否再称为协方差分析?我目前认为应该是可以的,但是事实上我们遇到这种情况后,并不再去强调它是协方差的思想,而只是回到线性模型分析的最初的起点,也即是检查残差是否符合线性的基本条件即可。6 `( l* r0 H: u. [1 @1 v- \, Z+ j
; r1 h( a1 n& [9 {1 @" t- L/ X# F
但是现实中,我们在使用GLM解决前面遇到的类似问题时,只是简单地用了,而很多时候我们都没有认真去检验残差是否符合这个条件,这可能是我们滥用GLM的表现之一,因为我们更多只关注模型的参数是否有意义,而不去关心对结果“无关紧要”的前提条件。' R) h1 @3 s) |% g9 \
6 T4 W! u" @0 m# k
再次思考一个问题,上述列举的1-7模型,在GLM中并没有特定的选项指定是哪一种模型,而采用一种表达方式。由此,可以进一步深入概括一句话,GLM模型,对于上述列举的1-7模型并没有本质区别,唯一的区别只是模型中自变量的属性和数量不同。但是我们对1-7模型的叫法却不相同。而其原因是我们对事物的认识是一个由浅到深的过程,之前我们认为他们是不同的7件事情,随着认识的加深,发现原来这些问题可以用一个方式表达出来。而SAS的GENMOD则更能说明这一问题。现在还没有一个模型能把上述模型1-11用一种表达方式表示,但是COX回归在抛开基线生存函数之后剩下的部分也是线性模型,所以说不定哪天真的能够把上述所有模型用一种表达方式表示出来。到时候更应该相信人们对事物的认识绝对是一个由浅到深的过程啦。
4 |! Q5 I' s4 s5 h5 M3 r! i" o4 e1 b
附:GLM与GENMOD在协方差分析结果的比较
1 B: U9 o# e: T" `   data drugtest;
$ u% F1 W: Z0 p2 p$ B  a      input Drug $ PreTreatment PostTreatment @@;
5 u. s/ F3 n- H3 D, ]3 E6 H  k  X      datalines;
' @5 o) J5 N6 C+ F% m   A 11  6   A  8  0   A  5  2   A 14  8   A 19 11 $ }2 ~/ f# D+ q: j1 k5 U2 s( x6 L5 I
   A  6  4   A 10 13   A  6  1   A 11  8   A  3  0   ^  `  m& K2 g. u
   D  6  0   D  6  2   D  7  3   D  8  1   D 18 18 # X' R- J( @6 X' A9 l8 L& G
   D  8  4   D 19 14   D  8  9   D  5  1   D 15  9
! G3 k0 h+ O+ k- `   F 16 13   F 13 10   F 11 18   F  9  5   F 21 23 , S+ ^8 q3 F8 U" o* O, u
   F 16 12   F 12  5   F 12 16   F  7  1   F 12 20
8 |) }( @5 d6 c+ f1 S   ;
; C6 z# |! l3 B/ s  a( Z- W! L' x" J3 H, l' Q* M+ L1 _
   proc glm;
  Q. p# z7 d9 m8 Q      class Drug;
& {* L& ?0 n% R, g: }      model PostTreatment = Drug PreTreatment / solution;
$ g7 l$ `) V- s( b, W      lsmeans Drug / stderr pdiff cov out=adjmeans;
) |9 \/ G3 `* @$ c; E% v   run; ; g% L6 E* }, e0 z6 O

! P( k* p( p, B" _5 m   proc genmod data=drugtest;
7 d- h# z/ }9 k- Z5 Q8 u1 V      class Drug;
( b9 J! G+ c8 ~      model PostTreatment = Drug PreTreatment / dist=NOR link=ID obstats type1;
) Y2 d4 J  S7 S   run; , j1 a! r! w7 I' d
+ W5 ?$ ^! S; }, z5 j& h
   proc print data=adjmeans; - h" @6 d7 B5 t1 ~
   run;4 A+ p: Z4 ]8 n/ e8 q2 ^5 y! @) L- ~$ S

- M. F: o9 _2 j& Z4 V% G# F) ~  W5 f
# r  `5 D! G% E) o& C8 l

作者: 无法定义    时间: 2015-4-1 13:59
+ n! S* V0 ^9 S; M$ K
学习了,总结的真好,特别是那句关于前提的提醒( S2 \8 m; n1 |9 y9 C

作者: 拒绝一切    时间: 2015-4-1 13:59

; Q- s: C5 p. z# N/ Q学习了,,“我们更多只关注模型的参数是否有意义,而不去关心对结果“无关紧要”的前提条件
" R8 N5 W6 K, I”这句话是该提醒了很多人啊,个人感觉不要只知道应用,还要知道原理,所以说理论性的东西还是不可缺的,,谢谢楼主了哈,,' b/ j1 s4 w/ ]" A" N8 ^

作者: 今生已醉    时间: 2015-4-1 14:00
' e6 m6 v" v; L1 o) K
深入浅出,简练的表达,传达了复杂的内容。
& O! G1 w! X% L# W貌似目前好多著者、师者都缺少这种思考与总结,有的书、课件就是靠东拼西凑来的。: r# J4 j% p0 N! \: s$ D





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5