数学建模社区-数学中国

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

作者: 雨不眠的下    时间: 2015-4-1 13:57
标题: 一般线性模型(GLM)的相关思考
最近遇到一个问题,如果因变量为一个连续变量(如胰岛素水平),主要考察的变量为分组变量(如正常血糖组,前糖尿病组,糖尿病组三组),现在的目的是想看调整多种变量(包括多个连续性变量和分类变量)后,胰岛素水平是否一致。8 N# }) q+ c' g, l7 c- W

  D; D; J/ e$ w) p1 m1 G
" w: E9 a( m2 ]一开始的思路想到的是采用GLM进行协方差分析来解决。4 W3 k3 ?6 G& y- f
# Z7 {, X  O4 k/ g5 c5 r4 ~
但是有觉得似乎不是很对,因为经典的协方差分析通常只考虑一个连续变量(协变量)和一个分组变量,同时协变量和分组变量只有不存在交互的时候(经典协方差分析的前提)才能使用协方差分析。) s* O, {( ~. R# v8 K% e
针对我目前的问题,如果想调整多个连续性变量和分类变量,这种方法能否再叫协方差分析?如果可以认为是协方差的思想,用不用检验协方差分析的前提(如协变量与分组变量之间的交互)?多个连续性变量和分类变量存在时,该前提应该怎么检验?
9 |) r# z2 {0 P' F& }: W; c% i
- V6 f* f! P) N) V( R: S; L通过跟别人交流之后,有一句话非常受用:线性模型其实最重要的不在于用的方差分析还是协方差分析,而主要是检验残差是否符合线性的几个条件。# f" \7 K; l4 b/ |$ [
0 |/ c- Z$ ]* S  |
受到该启发后,认真再复习GLM的相关资料,得到更加重要的总结如下(来自高惠璇SAS/STAT软件使用手册,实际是SAS8.2的User's guide的中文版,但是目前SAS 9.2,9.3的User's guide关于GLM模型的介绍中已经删去了这么经典的总结,实在可惜,倒让人看不到GLM的真正长处了):" Z- j  L+ ]; E
如果X1-X3,Y1-Y2为连续性变量,Y3为分类变量,a-c为分类变量,time为时间变量,目前我们熟悉的模型可以简单概括如下:% u" g% M6 B1 w( S' Y% y  d
(1) y1= x1    简单回归8 v" c6 Q9 J+ W3 I! S+ \4 E9 U- K- T
(2) y1= x1 x2 x3  多重回归(multiple regression). ?, @8 M' l% e/ G3 s0 d- t: b
(3) y1 y2=x1 x2   多元回归(multivariate regression)4 U* z9 u/ N$ w4 f: x
(4) y1= a   单因素方差分析/ f& U* K* S8 C% @
(5) y1= a b   (析因设计的)主效应分析/ x8 K4 R! ^9 N; n* P, w6 G
(6) y1= a b  a*b (析因设计的)主效应加交互项分析( }  \( ?# |  s9 r
(7) y1= a x1   协方差分析5 v1 J; L3 b* Y1 `# z4 Q, e
(8) y3= a   单因素logistic回归6 U- I( c" j1 B" ~" s2 b
(9) y3= a b c x1 x2 x3   多因素logistic回归6 b2 S1 h2 g  t- N9 P& F- M6 A
(10) y3(time) =a   单因素cox回归; T  R% L! `2 P% [. q7 C
(11) y3(time) = a b c x1 x2 x3  多因素cox回归; m9 A/ I7 _  k- w% J

% n+ Q  o" e* d" b) a9 F/ z- H1-7采用SAS的一般线性模型GLM都能实现,而1-9采用SAS的广义线性模型GENMOD都能实现,具体验证详见后面举例3 J( a+ i& V) h" `/ h! ]

; ^6 N4 b5 d3 e: @' o1 i# z再次回到开始的问题:掌握上述的基本思路后,因为因变量为连续变量,所以采用线性模型肯定是对的。如果因变量可以认为是正态的,那采用一般线性模型是合理的。所以现在的关键问题是:如果调整多个变量(包含分类和连续变量)后看不同分组间因变量(连续变量)是否仍有差异时,能否再称为协方差分析?我目前认为应该是可以的,但是事实上我们遇到这种情况后,并不再去强调它是协方差的思想,而只是回到线性模型分析的最初的起点,也即是检查残差是否符合线性的基本条件即可。& ^0 [) d0 P2 {% T

" q5 u$ O$ v  u: w$ `+ r但是现实中,我们在使用GLM解决前面遇到的类似问题时,只是简单地用了,而很多时候我们都没有认真去检验残差是否符合这个条件,这可能是我们滥用GLM的表现之一,因为我们更多只关注模型的参数是否有意义,而不去关心对结果“无关紧要”的前提条件。
0 Y3 A& ]; o2 L! J
7 a4 f& D, _! `, z& }再次思考一个问题,上述列举的1-7模型,在GLM中并没有特定的选项指定是哪一种模型,而采用一种表达方式。由此,可以进一步深入概括一句话,GLM模型,对于上述列举的1-7模型并没有本质区别,唯一的区别只是模型中自变量的属性和数量不同。但是我们对1-7模型的叫法却不相同。而其原因是我们对事物的认识是一个由浅到深的过程,之前我们认为他们是不同的7件事情,随着认识的加深,发现原来这些问题可以用一个方式表达出来。而SAS的GENMOD则更能说明这一问题。现在还没有一个模型能把上述模型1-11用一种表达方式表示,但是COX回归在抛开基线生存函数之后剩下的部分也是线性模型,所以说不定哪天真的能够把上述所有模型用一种表达方式表示出来。到时候更应该相信人们对事物的认识绝对是一个由浅到深的过程啦。) ?: a8 L) O0 _& @1 P0 \

9 M+ X& h4 D+ I7 z$ O* v# ^; [. @附:GLM与GENMOD在协方差分析结果的比较/ C& \: S' u( U# j  z' L5 T3 t3 }
   data drugtest;
) s& j; D2 F9 a9 V% C: T      input Drug $ PreTreatment PostTreatment @@; ) D9 b/ e; R( r
      datalines;
. C' _- V( D% w6 ~# W! k   A 11  6   A  8  0   A  5  2   A 14  8   A 19 11 # ?9 N6 X$ z' v8 X1 b  o: b, ]1 l
   A  6  4   A 10 13   A  6  1   A 11  8   A  3  0 # b* B9 h$ v2 r6 d
   D  6  0   D  6  2   D  7  3   D  8  1   D 18 18
4 U7 Z( B! Q* G; v% ^1 c   D  8  4   D 19 14   D  8  9   D  5  1   D 15  9 & J: N3 S! U8 I! O( {  V5 ]/ O
   F 16 13   F 13 10   F 11 18   F  9  5   F 21 23
/ p9 g. q3 G' u& m0 E1 }; o   F 16 12   F 12  5   F 12 16   F  7  1   F 12 20 5 r! {( K# q  N) `4 `- g1 h
   ;
6 z, [$ h# D+ z4 I% x$ O
* }2 p: `, J- R' e9 V   proc glm;
9 h$ M6 [( n- o% G+ C2 W. t      class Drug;
/ }- @! l: Z8 b* [      model PostTreatment = Drug PreTreatment / solution;
6 s; n; P( W4 a6 ?% _1 |$ E4 o& v      lsmeans Drug / stderr pdiff cov out=adjmeans; & w- M7 B1 A1 R4 k8 P
   run; 2 t4 L  d' C* Z$ Q0 P* y
4 y0 @0 Z6 C9 l! u2 S
   proc genmod data=drugtest;
" L+ T( ], ]" n" T2 W- Q1 ]! k      class Drug;
  }8 Q" I) {  l: c      model PostTreatment = Drug PreTreatment / dist=NOR link=ID obstats type1; & J( \3 ?3 N, T- |, u0 P
   run; # ^5 o* X6 {/ l3 R% e6 f* J/ T

. ]8 G2 L, {& G0 G  ^8 N$ J% d   proc print data=adjmeans; " S$ B6 c: U5 H7 v( y% C2 r
   run;
. [0 I/ M, B5 y. l7 \; j2 E, r* x( P8 P" w9 M' V

! }  ^* [$ f6 U* \, R- A! Y5 Z8 [" A, v  r

作者: 无法定义    时间: 2015-4-1 13:59
- P/ e: `1 h( @/ a! r
学习了,总结的真好,特别是那句关于前提的提醒# j( t# r. ^! U& Y# k! z

作者: 拒绝一切    时间: 2015-4-1 13:59
4 C. F. `; r6 o) w; @
学习了,,“我们更多只关注模型的参数是否有意义,而不去关心对结果“无关紧要”的前提条件
$ x. {( Q: V" f$ R1 B”这句话是该提醒了很多人啊,个人感觉不要只知道应用,还要知道原理,所以说理论性的东西还是不可缺的,,谢谢楼主了哈,,
5 r, g5 t5 d( R) A! M; o
作者: 今生已醉    时间: 2015-4-1 14:00

2 q3 ]( U+ j( D  w深入浅出,简练的表达,传达了复杂的内容。4 [# c! q6 x3 [+ G1 m' w
貌似目前好多著者、师者都缺少这种思考与总结,有的书、课件就是靠东拼西凑来的。" Q9 g2 Z% e2 j





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