- 在线时间
- 2 小时
- 最后登录
- 2015-6-24
- 注册时间
- 2015-3-26
- 听众数
- 11
- 收听数
- 1
- 能力
- 0 分
- 体力
- 36 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 18
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 13
- 主题
- 7
- 精华
- 0
- 分享
- 0
- 好友
- 1
升级   13.68% 该用户从未签到
- 自我介绍
- 不知道写啥子
 |
最近遇到一个问题,如果因变量为一个连续变量(如胰岛素水平),主要考察的变量为分组变量(如正常血糖组,前糖尿病组,糖尿病组三组),现在的目的是想看调整多种变量(包括多个连续性变量和分类变量)后,胰岛素水平是否一致。; y3 x1 ^4 I! k3 z# s8 I
?; s& I. c% [1 u
) W" @+ G( q: g& K. u
一开始的思路想到的是采用GLM进行协方差分析来解决。, U9 D7 F# [/ j
3 M( L9 g6 a. z但是有觉得似乎不是很对,因为经典的协方差分析通常只考虑一个连续变量(协变量)和一个分组变量,同时协变量和分组变量只有不存在交互的时候(经典协方差分析的前提)才能使用协方差分析。: n9 h: i D4 A
针对我目前的问题,如果想调整多个连续性变量和分类变量,这种方法能否再叫协方差分析?如果可以认为是协方差的思想,用不用检验协方差分析的前提(如协变量与分组变量之间的交互)?多个连续性变量和分类变量存在时,该前提应该怎么检验?
" v; C/ N$ S; [) f
4 {% E0 i1 x+ h* @通过跟别人交流之后,有一句话非常受用:线性模型其实最重要的不在于用的方差分析还是协方差分析,而主要是检验残差是否符合线性的几个条件。8 v% T7 O" Y1 ^- m! u8 M* p
! y! t& n2 I$ X受到该启发后,认真再复习GLM的相关资料,得到更加重要的总结如下(来自高惠璇SAS/STAT软件使用手册,实际是SAS8.2的User's guide的中文版,但是目前SAS 9.2,9.3的User's guide关于GLM模型的介绍中已经删去了这么经典的总结,实在可惜,倒让人看不到GLM的真正长处了):. L: O7 r( z) |# l4 a
如果X1-X3,Y1-Y2为连续性变量,Y3为分类变量,a-c为分类变量,time为时间变量,目前我们熟悉的模型可以简单概括如下:' v; F* r& t" m# l2 V
(1) y1= x1 简单回归! C7 u* V2 Y, v5 V
(2) y1= x1 x2 x3 多重回归(multiple regression)
) i& _. Q( D5 h(3) y1 y2=x1 x2 多元回归(multivariate regression)
3 U: C: I0 J' {8 K L% G i1 c) }(4) y1= a 单因素方差分析5 Y, p! W& _! Y. c- U' g
(5) y1= a b (析因设计的)主效应分析$ B6 z$ h0 m; L. j( C7 |+ C
(6) y1= a b a*b (析因设计的)主效应加交互项分析0 }+ b* b- a1 a; W& X k% D" R
(7) y1= a x1 协方差分析- r6 N0 b* ^$ d* |
(8) y3= a 单因素logistic回归
8 u" O% D/ n! |4 r(9) y3= a b c x1 x2 x3 多因素logistic回归+ `; b: V% e4 l" i6 R
(10) y3(time) =a 单因素cox回归2 ]9 b* Y8 ^% D
(11) y3(time) = a b c x1 x2 x3 多因素cox回归
2 R& j+ ^' G" q" v+ r4 ^9 P# k7 F/ j
1-7采用SAS的一般线性模型GLM都能实现,而1-9采用SAS的广义线性模型GENMOD都能实现,具体验证详见后面举例
/ {$ d' }3 T. g
& j4 @5 M0 P* s! C/ X9 M再次回到开始的问题:掌握上述的基本思路后,因为因变量为连续变量,所以采用线性模型肯定是对的。如果因变量可以认为是正态的,那采用一般线性模型是合理的。所以现在的关键问题是:如果调整多个变量(包含分类和连续变量)后看不同分组间因变量(连续变量)是否仍有差异时,能否再称为协方差分析?我目前认为应该是可以的,但是事实上我们遇到这种情况后,并不再去强调它是协方差的思想,而只是回到线性模型分析的最初的起点,也即是检查残差是否符合线性的基本条件即可。4 f. x/ `% E! G) c9 \
' s3 f) }' Z2 i但是现实中,我们在使用GLM解决前面遇到的类似问题时,只是简单地用了,而很多时候我们都没有认真去检验残差是否符合这个条件,这可能是我们滥用GLM的表现之一,因为我们更多只关注模型的参数是否有意义,而不去关心对结果“无关紧要”的前提条件。: S# _1 K( E1 k+ B
K+ |5 J2 p2 h" }再次思考一个问题,上述列举的1-7模型,在GLM中并没有特定的选项指定是哪一种模型,而采用一种表达方式。由此,可以进一步深入概括一句话,GLM模型,对于上述列举的1-7模型并没有本质区别,唯一的区别只是模型中自变量的属性和数量不同。但是我们对1-7模型的叫法却不相同。而其原因是我们对事物的认识是一个由浅到深的过程,之前我们认为他们是不同的7件事情,随着认识的加深,发现原来这些问题可以用一个方式表达出来。而SAS的GENMOD则更能说明这一问题。现在还没有一个模型能把上述模型1-11用一种表达方式表示,但是COX回归在抛开基线生存函数之后剩下的部分也是线性模型,所以说不定哪天真的能够把上述所有模型用一种表达方式表示出来。到时候更应该相信人们对事物的认识绝对是一个由浅到深的过程啦。
- Y [) `" H1 ^" v' c0 S* t. @9 ~
: @ y- ~% A6 @/ n附:GLM与GENMOD在协方差分析结果的比较
4 k% W$ I U, d9 z1 D$ r4 Z+ j& r data drugtest;
# v% n/ m9 A( Y6 c" P: X, {: P input Drug $ PreTreatment PostTreatment @@; & M) p$ _) G; `( H/ q/ Y3 b. T0 v' y
datalines;
0 m3 C' ~: V9 [8 ]5 x8 u0 n A 11 6 A 8 0 A 5 2 A 14 8 A 19 11 6 x- E5 n, Q. ?5 J8 i/ e
A 6 4 A 10 13 A 6 1 A 11 8 A 3 0
: ?9 n/ [) z3 S/ s0 |' Z2 B D 6 0 D 6 2 D 7 3 D 8 1 D 18 18
0 c; k- M R" J1 Y1 m/ Z5 B D 8 4 D 19 14 D 8 9 D 5 1 D 15 9 : G6 z Y4 [& ]* f, P
F 16 13 F 13 10 F 11 18 F 9 5 F 21 23 ) |4 I. T! ^1 {: |) t: O/ ~. k. U4 M
F 16 12 F 12 5 F 12 16 F 7 1 F 12 20 ; D" z& }( U# c) I4 [8 {! b+ D
; " C9 n2 q; C0 @( W3 a
4 O& `! ^# k# { h
proc glm;
, ?; `; T& V& Q9 a9 ]7 f2 f class Drug;
) y$ B( U D& C( j model PostTreatment = Drug PreTreatment / solution;
* P2 _& M* S0 t* Z: P* C lsmeans Drug / stderr pdiff cov out=adjmeans;
l. N( D3 d5 i% i" J run;
$ d" O4 o; Z; ]9 U3 _ I
) J/ M `6 k( W# [6 [" y& a proc genmod data=drugtest;
! g! ?2 t; y6 ]0 S( N6 b class Drug; / e% b7 u) ~/ s
model PostTreatment = Drug PreTreatment / dist=NOR link=ID obstats type1;
' Y; C* w: E* N& W j9 r run;
1 _+ Y5 ^. X" w2 A- j
k |$ d; `1 p ]& j proc print data=adjmeans;
5 O8 X3 t' b: ^ run;/ W: p, B! o6 l, f I" R% @8 X& |
5 y F/ ^; g2 e4 b3 H) B; N# S
9 r! r4 y7 H9 z! x, s! O) l2 F* ^
& C6 R/ S! x, g; ?5 V
|
zan
|