数学建模社区-数学中国

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

作者: 雨不眠的下    时间: 2015-4-1 13:57
标题: 一般线性模型(GLM)的相关思考
最近遇到一个问题,如果因变量为一个连续变量(如胰岛素水平),主要考察的变量为分组变量(如正常血糖组,前糖尿病组,糖尿病组三组),现在的目的是想看调整多种变量(包括多个连续性变量和分类变量)后,胰岛素水平是否一致。8 V/ v% C/ F6 w8 b' ^
% ?( W8 G( j$ S& ?6 O
# |9 z. w7 t% L
一开始的思路想到的是采用GLM进行协方差分析来解决。6 U; Q# R2 j* h+ h* i1 m" C
' a$ v; m, K, V
但是有觉得似乎不是很对,因为经典的协方差分析通常只考虑一个连续变量(协变量)和一个分组变量,同时协变量和分组变量只有不存在交互的时候(经典协方差分析的前提)才能使用协方差分析。4 j; l1 G7 ?3 p# ^3 `2 a
针对我目前的问题,如果想调整多个连续性变量和分类变量,这种方法能否再叫协方差分析?如果可以认为是协方差的思想,用不用检验协方差分析的前提(如协变量与分组变量之间的交互)?多个连续性变量和分类变量存在时,该前提应该怎么检验?4 L; `7 f9 }5 ^) ?( `& T
0 Q& [, T# H1 S+ Z# X
通过跟别人交流之后,有一句话非常受用:线性模型其实最重要的不在于用的方差分析还是协方差分析,而主要是检验残差是否符合线性的几个条件。" |4 r! X2 d( ]8 B8 E+ B) \( o( C3 \

7 n: p/ X: O: [3 q4 p) K受到该启发后,认真再复习GLM的相关资料,得到更加重要的总结如下(来自高惠璇SAS/STAT软件使用手册,实际是SAS8.2的User's guide的中文版,但是目前SAS 9.2,9.3的User's guide关于GLM模型的介绍中已经删去了这么经典的总结,实在可惜,倒让人看不到GLM的真正长处了):4 @+ p9 P2 Z- E
如果X1-X3,Y1-Y2为连续性变量,Y3为分类变量,a-c为分类变量,time为时间变量,目前我们熟悉的模型可以简单概括如下:$ Y9 A, t5 g5 ?3 u1 G- X( z
(1) y1= x1    简单回归
  M6 G5 `" o5 z) K(2) y1= x1 x2 x3  多重回归(multiple regression)3 W" p$ F% n( ^! y$ D
(3) y1 y2=x1 x2   多元回归(multivariate regression)
; P% B$ A6 T( n0 E  y. Y( e(4) y1= a   单因素方差分析- x( J; h0 _' T, m8 i* _
(5) y1= a b   (析因设计的)主效应分析: G: s/ }. _: P& ^4 A) i% J' C$ U
(6) y1= a b  a*b (析因设计的)主效应加交互项分析# ~* E- ~2 E7 {- V0 Q7 @
(7) y1= a x1   协方差分析
# K" g* C% w: h! r: e' X# v5 J(8) y3= a   单因素logistic回归  G9 {/ p3 q9 j: B( `! q' \
(9) y3= a b c x1 x2 x3   多因素logistic回归
. _8 n+ h1 O& Z! d(10) y3(time) =a   单因素cox回归
% H* ]7 U: p5 c(11) y3(time) = a b c x1 x2 x3  多因素cox回归( n+ s/ s. a' X# y: |( Y
0 I# f1 c) m3 R6 _" h
1-7采用SAS的一般线性模型GLM都能实现,而1-9采用SAS的广义线性模型GENMOD都能实现,具体验证详见后面举例
* C$ T$ z# R4 l' W9 d4 ]  l6 a; c/ ^) W
再次回到开始的问题:掌握上述的基本思路后,因为因变量为连续变量,所以采用线性模型肯定是对的。如果因变量可以认为是正态的,那采用一般线性模型是合理的。所以现在的关键问题是:如果调整多个变量(包含分类和连续变量)后看不同分组间因变量(连续变量)是否仍有差异时,能否再称为协方差分析?我目前认为应该是可以的,但是事实上我们遇到这种情况后,并不再去强调它是协方差的思想,而只是回到线性模型分析的最初的起点,也即是检查残差是否符合线性的基本条件即可。
% Y, M5 a; i. g+ o% t& |; }" d- \. d% A* w7 v
但是现实中,我们在使用GLM解决前面遇到的类似问题时,只是简单地用了,而很多时候我们都没有认真去检验残差是否符合这个条件,这可能是我们滥用GLM的表现之一,因为我们更多只关注模型的参数是否有意义,而不去关心对结果“无关紧要”的前提条件。# h9 V/ I. l/ i$ a0 ]

1 K+ J% @  ]+ M, o/ ~再次思考一个问题,上述列举的1-7模型,在GLM中并没有特定的选项指定是哪一种模型,而采用一种表达方式。由此,可以进一步深入概括一句话,GLM模型,对于上述列举的1-7模型并没有本质区别,唯一的区别只是模型中自变量的属性和数量不同。但是我们对1-7模型的叫法却不相同。而其原因是我们对事物的认识是一个由浅到深的过程,之前我们认为他们是不同的7件事情,随着认识的加深,发现原来这些问题可以用一个方式表达出来。而SAS的GENMOD则更能说明这一问题。现在还没有一个模型能把上述模型1-11用一种表达方式表示,但是COX回归在抛开基线生存函数之后剩下的部分也是线性模型,所以说不定哪天真的能够把上述所有模型用一种表达方式表示出来。到时候更应该相信人们对事物的认识绝对是一个由浅到深的过程啦。
, \1 L" n! X  r+ l, S2 B6 F
: _, d" h3 F7 S2 Y  Y/ i8 Q附:GLM与GENMOD在协方差分析结果的比较+ D7 b% i& @" p# W- t- ~2 q5 v3 G3 r
   data drugtest; + a2 x, N' k5 y+ e
      input Drug $ PreTreatment PostTreatment @@;
9 b$ `. V* u" R4 @$ {& K      datalines; 0 H! j9 M5 }8 m) R
   A 11  6   A  8  0   A  5  2   A 14  8   A 19 11 5 G7 F7 N4 c) \6 \1 V' w4 W
   A  6  4   A 10 13   A  6  1   A 11  8   A  3  0
) L2 t6 f- V: ^6 C. X5 w& x3 c   D  6  0   D  6  2   D  7  3   D  8  1   D 18 18
4 h( d! G  M2 v   D  8  4   D 19 14   D  8  9   D  5  1   D 15  9 ) V5 r% k6 {: F; L/ o( [2 g8 A& P9 k
   F 16 13   F 13 10   F 11 18   F  9  5   F 21 23
% v3 Z' a6 l1 E; K   F 16 12   F 12  5   F 12 16   F  7  1   F 12 20
3 M% B( K( }/ p; ~- q   ;
/ x) s/ g* ^+ _' P4 b, S; g
. Z; L7 M  {: ?0 U+ e   proc glm; : \2 Z4 M- }  O. l: S4 j
      class Drug;
' Y- s' i  K# X, [! p8 q      model PostTreatment = Drug PreTreatment / solution; 1 o! Y' q  j: W1 v+ _
      lsmeans Drug / stderr pdiff cov out=adjmeans;
/ f0 w3 H) L& p9 ^  c5 F7 a   run;
% f2 H* ~+ ~( B  D5 q; D8 J- R0 ?2 W* s0 z/ k$ r- ~( {
   proc genmod data=drugtest;
( T- S& k# Q9 M9 ?      class Drug; 8 R$ Y4 x  h* e5 W
      model PostTreatment = Drug PreTreatment / dist=NOR link=ID obstats type1;
/ `: l9 q: J; x9 W   run;
2 u! K: U& Q# K# w; d
, Z: O( J- x  J% i) ~# @0 s% {   proc print data=adjmeans;
" u( f3 O$ e0 v   run;  X- q; U$ h# V) t1 T

/ h" J2 \- P% w: H" D$ z: |+ ]3 H( N9 P" X1 Q
2 m" `6 c& G% C% ~1 M0 o* Y: {

作者: 无法定义    时间: 2015-4-1 13:59

3 M+ t1 ^: y# t. v学习了,总结的真好,特别是那句关于前提的提醒6 }6 C1 A4 Q" V% F4 d0 A) M

作者: 拒绝一切    时间: 2015-4-1 13:59
- L  x) K6 _# i  c2 p
学习了,,“我们更多只关注模型的参数是否有意义,而不去关心对结果“无关紧要”的前提条件+ n! r$ y2 Z4 t) ~
”这句话是该提醒了很多人啊,个人感觉不要只知道应用,还要知道原理,所以说理论性的东西还是不可缺的,,谢谢楼主了哈,,! H, P5 A+ v3 ~3 ?- T8 E% i

作者: 今生已醉    时间: 2015-4-1 14:00

* F  N2 k1 N8 d0 J/ ?深入浅出,简练的表达,传达了复杂的内容。8 _( J" }+ k3 e+ A* Y- Y+ T
貌似目前好多著者、师者都缺少这种思考与总结,有的书、课件就是靠东拼西凑来的。/ D! X- j6 t( W) o





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