数学建模社区-数学中国

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

作者: 雨不眠的下    时间: 2015-4-1 13:57
标题: 一般线性模型(GLM)的相关思考
最近遇到一个问题,如果因变量为一个连续变量(如胰岛素水平),主要考察的变量为分组变量(如正常血糖组,前糖尿病组,糖尿病组三组),现在的目的是想看调整多种变量(包括多个连续性变量和分类变量)后,胰岛素水平是否一致。( F# J0 z9 N: ?
, D. J! q# k  E# B1 n% V- Q7 |

% @. c) ?9 x$ k. B# q一开始的思路想到的是采用GLM进行协方差分析来解决。
: _. F6 K4 N3 N( T. k7 r( ?
7 N0 S- C" a( C但是有觉得似乎不是很对,因为经典的协方差分析通常只考虑一个连续变量(协变量)和一个分组变量,同时协变量和分组变量只有不存在交互的时候(经典协方差分析的前提)才能使用协方差分析。# Z$ e- h+ u- l* y2 n
针对我目前的问题,如果想调整多个连续性变量和分类变量,这种方法能否再叫协方差分析?如果可以认为是协方差的思想,用不用检验协方差分析的前提(如协变量与分组变量之间的交互)?多个连续性变量和分类变量存在时,该前提应该怎么检验?7 u% C& F. H+ e! o7 n: e9 y/ J
* H2 I( I$ y! F2 ^+ Z# j8 q% g7 J9 L
通过跟别人交流之后,有一句话非常受用:线性模型其实最重要的不在于用的方差分析还是协方差分析,而主要是检验残差是否符合线性的几个条件。
( K5 m3 ]; u: n; e$ u
: _# z. ]* x' Q8 ^- K  i# ]受到该启发后,认真再复习GLM的相关资料,得到更加重要的总结如下(来自高惠璇SAS/STAT软件使用手册,实际是SAS8.2的User's guide的中文版,但是目前SAS 9.2,9.3的User's guide关于GLM模型的介绍中已经删去了这么经典的总结,实在可惜,倒让人看不到GLM的真正长处了):
7 U/ ?6 A" m& A$ m8 c: ?1 {如果X1-X3,Y1-Y2为连续性变量,Y3为分类变量,a-c为分类变量,time为时间变量,目前我们熟悉的模型可以简单概括如下:
) E: O; L" F6 k$ C" y. d(1) y1= x1    简单回归
6 A3 Y5 I7 r7 X(2) y1= x1 x2 x3  多重回归(multiple regression)
) S# ~- _8 |# r/ s; _- S(3) y1 y2=x1 x2   多元回归(multivariate regression)! n8 n) @$ x, i; r( C& m! t1 `4 ^
(4) y1= a   单因素方差分析
5 y6 Q2 L7 U& v! a: s: R: R, a8 G(5) y1= a b   (析因设计的)主效应分析. c6 P- g; X% r3 v
(6) y1= a b  a*b (析因设计的)主效应加交互项分析) S0 S3 u8 @3 d3 y  Y+ H
(7) y1= a x1   协方差分析7 Q8 Z; ]1 Z7 ^+ l& W3 ]
(8) y3= a   单因素logistic回归8 Y: d  Z: t& D3 j2 t. C( g
(9) y3= a b c x1 x2 x3   多因素logistic回归
1 s. T' A5 R( T- i1 Q(10) y3(time) =a   单因素cox回归
- ~1 }6 k' C6 N$ V" w4 C# f" X(11) y3(time) = a b c x1 x2 x3  多因素cox回归& Q3 @4 U2 X% p! D1 j
8 `" D) g* f. ~3 F) g% {8 m
1-7采用SAS的一般线性模型GLM都能实现,而1-9采用SAS的广义线性模型GENMOD都能实现,具体验证详见后面举例
0 B  U$ s+ R0 m" N: U- ?  s- Y/ R# O6 K$ ?- P
再次回到开始的问题:掌握上述的基本思路后,因为因变量为连续变量,所以采用线性模型肯定是对的。如果因变量可以认为是正态的,那采用一般线性模型是合理的。所以现在的关键问题是:如果调整多个变量(包含分类和连续变量)后看不同分组间因变量(连续变量)是否仍有差异时,能否再称为协方差分析?我目前认为应该是可以的,但是事实上我们遇到这种情况后,并不再去强调它是协方差的思想,而只是回到线性模型分析的最初的起点,也即是检查残差是否符合线性的基本条件即可。
5 ~5 a8 v0 G! g: D) p- M2 @* \' U3 M" t6 j
但是现实中,我们在使用GLM解决前面遇到的类似问题时,只是简单地用了,而很多时候我们都没有认真去检验残差是否符合这个条件,这可能是我们滥用GLM的表现之一,因为我们更多只关注模型的参数是否有意义,而不去关心对结果“无关紧要”的前提条件。/ d. l, x1 N3 v

: A; z7 |" y( ~% v再次思考一个问题,上述列举的1-7模型,在GLM中并没有特定的选项指定是哪一种模型,而采用一种表达方式。由此,可以进一步深入概括一句话,GLM模型,对于上述列举的1-7模型并没有本质区别,唯一的区别只是模型中自变量的属性和数量不同。但是我们对1-7模型的叫法却不相同。而其原因是我们对事物的认识是一个由浅到深的过程,之前我们认为他们是不同的7件事情,随着认识的加深,发现原来这些问题可以用一个方式表达出来。而SAS的GENMOD则更能说明这一问题。现在还没有一个模型能把上述模型1-11用一种表达方式表示,但是COX回归在抛开基线生存函数之后剩下的部分也是线性模型,所以说不定哪天真的能够把上述所有模型用一种表达方式表示出来。到时候更应该相信人们对事物的认识绝对是一个由浅到深的过程啦。/ g( T% @1 j4 o+ s9 \' N! u& ?- w

" @4 R1 e9 e6 F- H2 z. a% t附:GLM与GENMOD在协方差分析结果的比较, Y! O' A3 D- x; y. U8 ?& L
   data drugtest; ' Y+ `  K2 H7 z0 s$ A
      input Drug $ PreTreatment PostTreatment @@;   n3 T- r* Y' S* d9 i
      datalines;
. B3 c/ b$ G" y& D- C! p   A 11  6   A  8  0   A  5  2   A 14  8   A 19 11
0 D: p0 W* }2 ?0 E   A  6  4   A 10 13   A  6  1   A 11  8   A  3  0
* d% ~  C) R: ~8 Y. a& j   D  6  0   D  6  2   D  7  3   D  8  1   D 18 18 1 _4 J7 {* I8 j8 s* ^
   D  8  4   D 19 14   D  8  9   D  5  1   D 15  9
2 u' s. Z- H/ H# y1 N$ b* F( `   F 16 13   F 13 10   F 11 18   F  9  5   F 21 23 1 J" i' ~; T( ]# a4 E
   F 16 12   F 12  5   F 12 16   F  7  1   F 12 20
$ ^# u0 t7 l7 F5 X$ A9 K   ; 3 U2 P/ B3 k3 F  E
5 u  V" g/ o  V
   proc glm;
" F3 C* e1 A6 x# n      class Drug; ) T* ~. o) m7 B4 ?
      model PostTreatment = Drug PreTreatment / solution; ' D7 g$ d# l+ V% G( N; j8 P
      lsmeans Drug / stderr pdiff cov out=adjmeans; 7 }' @  {/ ^0 L6 ~3 l
   run; ( K7 ~" m/ r6 n

+ Y) z6 \( p) V  J   proc genmod data=drugtest;
8 s8 ^) Z5 _1 q$ \  n; d      class Drug; 6 L$ o1 O% K, F1 b; M. P! l* k
      model PostTreatment = Drug PreTreatment / dist=NOR link=ID obstats type1;
7 `* ?- w$ _- c! e  j- I: ~   run;   g# x  @5 e- [5 v: T/ s

- Z- h- v( r% F) j( B   proc print data=adjmeans;
9 Z. |9 L; S9 A1 M) B   run;
  q  P2 |$ C* y6 I. G+ d
( h  s0 T/ i( [+ T. }! D& u3 b
& Q3 q/ ]- q" u4 Z) g9 f1 ?
# C2 x* T% I) i( C' E/ x7 H
作者: 无法定义    时间: 2015-4-1 13:59

; u5 s1 f8 T6 y1 Z4 `+ `; N+ s学习了,总结的真好,特别是那句关于前提的提醒
. G3 O3 h+ @' V
作者: 拒绝一切    时间: 2015-4-1 13:59

; {7 F/ ?+ k: o. }学习了,,“我们更多只关注模型的参数是否有意义,而不去关心对结果“无关紧要”的前提条件, X* S) Z% L5 d2 }- v" T3 Z
”这句话是该提醒了很多人啊,个人感觉不要只知道应用,还要知道原理,所以说理论性的东西还是不可缺的,,谢谢楼主了哈,,
, M1 j" A% l8 W: i
作者: 今生已醉    时间: 2015-4-1 14:00

9 N8 H. H' _  L3 @: P4 {0 B深入浅出,简练的表达,传达了复杂的内容。8 j/ q8 K, L2 i4 [* g
貌似目前好多著者、师者都缺少这种思考与总结,有的书、课件就是靠东拼西凑来的。
. f' j! c3 p2 I1 ]' D& o




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