在线时间 2 小时 最后登录 2015-6-24 注册时间 2015-3-26 听众数 11 收听数 1 能力 0 分 体力 36 点 威望 0 点 阅读权限 20 积分 18 相册 0 日志 0 记录 0 帖子 13 主题 7 精华 0 分享 0 好友 1
升级 13.68%
该用户从未签到
自我介绍 不知道写啥子
最近遇到一个问题,如果因变量为一个连续变量(如胰岛素水平),主要考察的变量为分组变量(如正常血糖组,前糖尿病组,糖尿病组三组),现在的目的是想看调整多种变量(包括多个连续性变量和分类变量)后,胰岛素水平是否一致。 ( j( p% v! S" h6 i8 N7 ^- x
5 @' q, Y/ l* @1 A9 N- G
7 l! k6 B$ }7 S m. Z" `; S6 q 一开始的思路想到的是采用GLM进行协方差分析来解决。 : G1 k) Z6 N' D
" M7 z" h, A+ E3 v) J
但是有觉得似乎不是很对,因为经典的协方差分析通常只考虑一个连续变量(协变量)和一个分组变量,同时协变量和分组变量只有不存在交互的时候(经典协方差分析的前提)才能使用协方差分析。 6 u. Z `& r) }6 r T) b
针对我目前的问题,如果想调整多个连续性变量和分类变量,这种方法能否再叫协方差分析?如果可以认为是协方差的思想,用不用检验协方差分析的前提(如协变量与分组变量之间的交互)?多个连续性变量和分类变量存在时,该前提应该怎么检验? 1 y6 d- f2 n! K/ y6 R
; E8 H% O& b! `7 i6 [ 通过跟别人交流之后,有一句话非常受用: 线性模型其实最重要的不在于用的方差分析还是协方差分析,而主要是检验残差是否符合线性的几个条件。 . H4 A( d: z7 ~+ ^! N
3 r% c7 M) z* [# T* ~ 受到该启发后,认真再复习GLM的相关资料,得到更加重要的总结如下(来自高惠璇SAS/STAT软件使用手册,实际是SAS8.2的User's guide的中文版,但是目前SAS 9.2,9.3的User's guide关于GLM模型的介绍中已经删去了这么经典的总结,实在可惜,倒让人看不到GLM的真正长处了): , f4 \* c ~" ^! c2 ~- x: b P3 U$ {: D" ]
如果X1-X3,Y1-Y2为连续性变量,Y3为分类变量,a-c为分类变量,time为时间变量,目前我们熟悉的模型可以简单概括如下:
; X; k1 i0 ]# f( A& } (1) y1= x1 简单回归
$ B4 A- [( }. Y2 N% z; g (2) y1= x1 x2 x3 多重回归(multiple regression) " v& a, u! B0 Q& }" c. L
(3) y1 y2=x1 x2 多元回归(multivariate regression) ' K. z7 y( n: Z% ^
(4) y1= a 单因素方差分析 ; P6 o8 |5 E8 X1 `
(5) y1= a b (析因设计的)主效应分析
. ]/ D" u) g6 l" J* ~& X (6) y1= a b a*b (析因设计的)主效应加交互项分析 1 e. k% B3 Y" b1 ^' W; V9 L
(7) y1= a x1 协方差分析 ( j( H$ j! P0 k% R/ Z
(8) y3= a 单因素logistic回归 ( F& n* I' M/ |2 L$ Y, w
(9) y3= a b c x1 x2 x3 多因素logistic回归 0 N6 `3 a( u/ G* N
(10) y3(time) =a 单因素cox回归 : E: q( i7 d# `9 M
(11) y3(time) = a b c x1 x2 x3 多因素cox回归
" w9 \2 Z U+ G) b7 W2 R" h+ N0 @2 F& G: E " H1 a6 h2 d5 E' |) J
1-7采用SAS的一般线性模型GLM都能实现,而1-9采用SAS的广义线性模型GENMOD都能实现,具体验证详见后面举例 ( L. o' W" L# i4 k! J. G6 L1 R
; M( A) a5 _4 \
再次回到开始的问题:掌握上述的基本思路后,因为因变量为连续变量,所以采用线性模型肯定是对的。如果因变量可以认为是正态的,那采用一般线性模型是合理的。所以现在的关键问题是:如果调整多个变量(包含分类和连续变量)后看不同分组间因变量(连续变量)是否仍有差异时,能否再称为协方差分析?我目前认为应该是可以的,但是事实上我们遇到这种情况后,并不再去强调它是协方差的思想,而只是回到线性模型分析的最初的起点,也即是检查残差是否符合线性的基本条件即可。 / z9 S( g9 `5 R$ p# }0 c) A5 s
( s4 S7 u% x3 P P# c' n7 q- ~
但是现实中,我们在使用GLM解决前面遇到的类似问题时,只是简单地用了,而很多时候我们都没有认真去检验残差是否符合这个条件,这可能是我们滥用GLM的表现之一,因为我们更多只关注模型的参数是否有意义,而不去关心对结果“无关紧要”的前提条件。
1 v+ b; ^, ?! D; |& u- c. Q 0 A% C, `( G% M+ Y T. u
再次思考一个问题,上述列举的1-7模型,在GLM中并没有特定的选项指定是哪一种模型,而采用一种表达方式。由此,可以进一步深入概括一句话,GLM模型,对于上述列举的 1-7模型并没有本质区别,唯一的区别只是模型中自变量的属性和数量不同 。但是我们对1-7模型的叫法却不相同。而其原因是我们对事物的认识是一个由浅到深的过程,之前我们认为他们是不同的7件事情,随着认识的加深,发现原来这些问题可以用一个方式表达出来。而SAS的GENMOD则更能说明这一问题。现在还没有一个模型能把上述模型1-11用一种表达方式表示,但是COX回归在抛开基线生存函数之后剩下的部分也是线性模型,所以说不定哪天真的能够把上述所有模型用一种表达方式表示出来。到时候更应该相信人们对事物的认识绝对是一个由浅到深的过程啦。
0 t; x+ ^! ~/ A& ?8 i* ^9 \8 ~4 b d0 N8 [. q. r! h: j
附:GLM与GENMOD在协方差分析结果的比较 0 Z/ [6 v+ \7 i+ E- t
data drugtest;
7 y4 E" O/ m% [9 j; _ input Drug $ PreTreatment PostTreatment @@;
, n7 g# {' a* a6 N) T datalines; " W& q) }5 W0 \2 ?2 L7 I. O
A 11 6 A 8 0 A 5 2 A 14 8 A 19 11 5 x; ]" y* Q% w! i: I3 I0 l" Q' |0 N
A 6 4 A 10 13 A 6 1 A 11 8 A 3 0
2 v, ]# W+ q( K' {/ N4 y" H D 6 0 D 6 2 D 7 3 D 8 1 D 18 18 + h+ E1 V- k% b( r2 G6 f$ p
D 8 4 D 19 14 D 8 9 D 5 1 D 15 9
Q) o% l3 i2 Z: h G" r F 16 13 F 13 10 F 11 18 F 9 5 F 21 23
* N! z% x: D+ d2 u u F 16 12 F 12 5 F 12 16 F 7 1 F 12 20
& B7 O; _7 i7 l' `/ M& v2 T" X ; 2 L$ ^% w; p. p# L' O
. W7 d& t. {% d. h, q, y; r
proc glm;
0 ]# M5 k! v3 ]* ^ D# c w( v class Drug;
! ?# E4 r) s$ e0 G" k! z" k) o: t0 N/ a model PostTreatment = Drug PreTreatment / solution;
- ?* r/ \& L" E* I3 N' g/ { lsmeans Drug / stderr pdiff cov out=adjmeans;
4 Y6 C/ ]0 a! @/ W9 f! n run;
. D" K7 z/ b* p5 U5 N' } 7 }! n3 X, z1 V. g
proc genmod data=drugtest; ' j* V o) \. p' V4 E
class Drug; 6 g1 _4 Z( l( u% S0 _
model PostTreatment = Drug PreTreatment / dist=NOR link=ID obstats type1; ' w, N/ ?; E$ O: p- Z
run; 6 g5 Z% }3 Y% ]3 J* d
& {# M, C! C8 h" p) }
proc print data=adjmeans;
: S# Y; o* Y5 o" a run;
+ y, c' K7 O- I" @0 L ; ?9 O1 c& v4 w7 T. {
& X8 |8 p9 m* x2 i
3 S0 z4 I) m8 T7 p
zan