- 在线时间
- 2 小时
- 最后登录
- 2015-6-24
- 注册时间
- 2015-3-26
- 听众数
- 11
- 收听数
- 1
- 能力
- 0 分
- 体力
- 36 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 18
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 13
- 主题
- 7
- 精华
- 0
- 分享
- 0
- 好友
- 1
升级   13.68% 该用户从未签到
- 自我介绍
- 不知道写啥子
 |
最近遇到一个问题,如果因变量为一个连续变量(如胰岛素水平),主要考察的变量为分组变量(如正常血糖组,前糖尿病组,糖尿病组三组),现在的目的是想看调整多种变量(包括多个连续性变量和分类变量)后,胰岛素水平是否一致。7 G/ ^5 X4 j) [2 z* Y- v9 B8 B4 @
9 a2 @+ |7 i' v& C; i6 o7 S; X
3 K- F+ g4 E8 u& {) ~一开始的思路想到的是采用GLM进行协方差分析来解决。5 F" u+ O$ M: |3 Z
, ^, @3 l+ C `# z; ?$ }
但是有觉得似乎不是很对,因为经典的协方差分析通常只考虑一个连续变量(协变量)和一个分组变量,同时协变量和分组变量只有不存在交互的时候(经典协方差分析的前提)才能使用协方差分析。3 F* p z' \9 v
针对我目前的问题,如果想调整多个连续性变量和分类变量,这种方法能否再叫协方差分析?如果可以认为是协方差的思想,用不用检验协方差分析的前提(如协变量与分组变量之间的交互)?多个连续性变量和分类变量存在时,该前提应该怎么检验?
; t5 J0 q; ^" |1 J: Y
# I; [) V" W8 r! r' Y; {通过跟别人交流之后,有一句话非常受用:线性模型其实最重要的不在于用的方差分析还是协方差分析,而主要是检验残差是否符合线性的几个条件。
( c& Q! N4 l! C
) u0 f$ N2 \ @( f+ I+ }4 ?% X6 {受到该启发后,认真再复习GLM的相关资料,得到更加重要的总结如下(来自高惠璇SAS/STAT软件使用手册,实际是SAS8.2的User's guide的中文版,但是目前SAS 9.2,9.3的User's guide关于GLM模型的介绍中已经删去了这么经典的总结,实在可惜,倒让人看不到GLM的真正长处了):# ~" z( i1 g+ d3 o2 w( e
如果X1-X3,Y1-Y2为连续性变量,Y3为分类变量,a-c为分类变量,time为时间变量,目前我们熟悉的模型可以简单概括如下:/ A& n6 T$ b" z
(1) y1= x1 简单回归( U* A, w9 }4 x7 L% p
(2) y1= x1 x2 x3 多重回归(multiple regression)
( p0 Y) u2 ?% ~ Z7 s) F! ^(3) y1 y2=x1 x2 多元回归(multivariate regression)+ s( |& P- Q. `' m/ [
(4) y1= a 单因素方差分析
: {) [) ]$ A. |; V(5) y1= a b (析因设计的)主效应分析
8 I3 l+ x1 s4 N( Q G1 l: e(6) y1= a b a*b (析因设计的)主效应加交互项分析
0 U1 Z% ?# i% @(7) y1= a x1 协方差分析
. p$ l: S# h$ q' S5 E. L, ](8) y3= a 单因素logistic回归! x( C' D- b! R* L' E7 h
(9) y3= a b c x1 x2 x3 多因素logistic回归; J9 N# b T8 j. h
(10) y3(time) =a 单因素cox回归1 v2 H0 T% a i0 Q% @8 d8 e3 z
(11) y3(time) = a b c x1 x2 x3 多因素cox回归' ?% f; O# ?+ z
5 p, c1 R+ n( _1-7采用SAS的一般线性模型GLM都能实现,而1-9采用SAS的广义线性模型GENMOD都能实现,具体验证详见后面举例
7 m8 l- B% `1 Y2 T0 ~ L4 V/ t
) ~, Z& i! ~+ D0 |0 i, V4 L+ a% _4 h再次回到开始的问题:掌握上述的基本思路后,因为因变量为连续变量,所以采用线性模型肯定是对的。如果因变量可以认为是正态的,那采用一般线性模型是合理的。所以现在的关键问题是:如果调整多个变量(包含分类和连续变量)后看不同分组间因变量(连续变量)是否仍有差异时,能否再称为协方差分析?我目前认为应该是可以的,但是事实上我们遇到这种情况后,并不再去强调它是协方差的思想,而只是回到线性模型分析的最初的起点,也即是检查残差是否符合线性的基本条件即可。! R0 P3 [' U$ F( [! G9 ?
( k% o- n3 }: a3 @5 n. R" b, x
但是现实中,我们在使用GLM解决前面遇到的类似问题时,只是简单地用了,而很多时候我们都没有认真去检验残差是否符合这个条件,这可能是我们滥用GLM的表现之一,因为我们更多只关注模型的参数是否有意义,而不去关心对结果“无关紧要”的前提条件。
: y( p1 z* O; l z, H8 _
" a1 h1 U9 T( }# S. L6 x/ I再次思考一个问题,上述列举的1-7模型,在GLM中并没有特定的选项指定是哪一种模型,而采用一种表达方式。由此,可以进一步深入概括一句话,GLM模型,对于上述列举的1-7模型并没有本质区别,唯一的区别只是模型中自变量的属性和数量不同。但是我们对1-7模型的叫法却不相同。而其原因是我们对事物的认识是一个由浅到深的过程,之前我们认为他们是不同的7件事情,随着认识的加深,发现原来这些问题可以用一个方式表达出来。而SAS的GENMOD则更能说明这一问题。现在还没有一个模型能把上述模型1-11用一种表达方式表示,但是COX回归在抛开基线生存函数之后剩下的部分也是线性模型,所以说不定哪天真的能够把上述所有模型用一种表达方式表示出来。到时候更应该相信人们对事物的认识绝对是一个由浅到深的过程啦。
6 }% Z( v6 i# |2 b$ E4 ]9 B* ?1 J8 a+ J- c
附:GLM与GENMOD在协方差分析结果的比较
1 \0 d. |4 l* A/ V$ ]# T data drugtest;
7 }: N& M- t2 V* d. H, J/ o2 p& n8 L input Drug $ PreTreatment PostTreatment @@;
# ~* c4 I4 b t2 u, L' c# H datalines;
0 s: g0 i: M6 q# S0 m. \ A 11 6 A 8 0 A 5 2 A 14 8 A 19 11
7 r2 F# M+ w1 S A 6 4 A 10 13 A 6 1 A 11 8 A 3 0 & }. D" d$ k5 p) @3 l1 j% w* K. \+ k9 |
D 6 0 D 6 2 D 7 3 D 8 1 D 18 18
$ a* u( P, M- Y Q" D3 Z' j D 8 4 D 19 14 D 8 9 D 5 1 D 15 9
. _ f3 v9 a( S2 h( Z7 j F 16 13 F 13 10 F 11 18 F 9 5 F 21 23 3 z! N6 Y% A4 S4 ~
F 16 12 F 12 5 F 12 16 F 7 1 F 12 20
3 T6 [# Y- a& v) G* }4 ~ ;
! }* S0 v4 M% t# v% k
( |5 t- G- o( k: r$ u% M proc glm;
' C' X/ k9 B6 ^; W class Drug;
! q# q2 U" \; r% C' T+ K4 U- z model PostTreatment = Drug PreTreatment / solution;
3 m7 V5 {! a f lsmeans Drug / stderr pdiff cov out=adjmeans; - a" O, ~' p% x' s. ^4 R0 Q U
run;
( H2 g- c3 A1 d' h f+ |4 F2 B4 C* z7 H: K0 E$ P& O
proc genmod data=drugtest;
! k1 s. f) Q% t& h# Q+ O class Drug;
0 R4 ?3 k4 Z4 E+ t5 _. @8 |: E: v3 l- h model PostTreatment = Drug PreTreatment / dist=NOR link=ID obstats type1;
7 S5 _2 @5 v* U' |/ ~- x run; 4 ^* k$ w2 X5 [* w$ D( l
; S; z1 k. p6 q0 `2 x proc print data=adjmeans;
$ J4 ]! K2 _2 v run;
: `4 j% v3 h/ B# U7 `- s. w% C# Q% s( b+ F& a
1 n( A7 U6 ^5 }+ T- V. O9 D' v
+ a0 r% U; o8 C6 n
|
zan
|