在线时间 2 小时 最后登录 2015-6-24 注册时间 2015-3-26 听众数 11 收听数 1 能力 0 分 体力 36 点 威望 0 点 阅读权限 20 积分 18 相册 0 日志 0 记录 0 帖子 13 主题 7 精华 0 分享 0 好友 1
升级 13.68%
该用户从未签到
自我介绍 不知道写啥子
最近遇到一个问题,如果因变量为一个连续变量(如胰岛素水平),主要考察的变量为分组变量(如正常血糖组,前糖尿病组,糖尿病组三组),现在的目的是想看调整多种变量(包括多个连续性变量和分类变量)后,胰岛素水平是否一致。
3 v+ \! R: p" z0 o1 I0 F; f o 1 x5 P7 V" e. O2 v
4 H" C2 Y6 i' r: l# W
一开始的思路想到的是采用GLM进行协方差分析来解决。 / R1 O8 p* A8 [) G$ o9 l
& H4 X2 R4 _. g. |& U, ~7 I
但是有觉得似乎不是很对,因为经典的协方差分析通常只考虑一个连续变量(协变量)和一个分组变量,同时协变量和分组变量只有不存在交互的时候(经典协方差分析的前提)才能使用协方差分析。
% n- p1 w+ n; V2 P& Y O2 ] 针对我目前的问题,如果想调整多个连续性变量和分类变量,这种方法能否再叫协方差分析?如果可以认为是协方差的思想,用不用检验协方差分析的前提(如协变量与分组变量之间的交互)?多个连续性变量和分类变量存在时,该前提应该怎么检验?
1 o s! R% W& A
6 A. c5 D" l, `# U( R% _ 通过跟别人交流之后,有一句话非常受用: 线性模型其实最重要的不在于用的方差分析还是协方差分析,而主要是检验残差是否符合线性的几个条件。
8 _. a4 [" X# q8 ~* f 0 p9 _( A" e0 E, r8 F6 v
受到该启发后,认真再复习GLM的相关资料,得到更加重要的总结如下(来自高惠璇SAS/STAT软件使用手册,实际是SAS8.2的User's guide的中文版,但是目前SAS 9.2,9.3的User's guide关于GLM模型的介绍中已经删去了这么经典的总结,实在可惜,倒让人看不到GLM的真正长处了):
0 m3 g& {6 }* U. s 如果X1-X3,Y1-Y2为连续性变量,Y3为分类变量,a-c为分类变量,time为时间变量,目前我们熟悉的模型可以简单概括如下: . E2 k: M* s0 n
(1) y1= x1 简单回归 ; g9 U! v% B& Y* p
(2) y1= x1 x2 x3 多重回归(multiple regression)
2 B2 }9 L& D" h1 V$ p. L; n1 v (3) y1 y2=x1 x2 多元回归(multivariate regression) 2 K4 A' k1 F3 ]- h/ M% i
(4) y1= a 单因素方差分析
! Y/ E7 e5 a" J" u6 y: E (5) y1= a b (析因设计的)主效应分析 - q1 _/ }& `! F+ G6 Z$ P9 F6 e( r
(6) y1= a b a*b (析因设计的)主效应加交互项分析 * t, S. w. d& l1 ?
(7) y1= a x1 协方差分析 4 z, @- U! h* k0 ]
(8) y3= a 单因素logistic回归 ' f8 h' Y: e9 z8 {; q0 v
(9) y3= a b c x1 x2 x3 多因素logistic回归 4 T& `, F* N: C! R7 _
(10) y3(time) =a 单因素cox回归 9 v$ F. N, G; W8 u$ Y1 S7 L
(11) y3(time) = a b c x1 x2 x3 多因素cox回归 : @+ {2 c. X6 v: H6 x- ]9 V5 c
K- R' l; w z0 V* w
1-7采用SAS的一般线性模型GLM都能实现,而1-9采用SAS的广义线性模型GENMOD都能实现,具体验证详见后面举例
; I+ x$ \. X, f$ x& S, }
) ?% x0 `' F6 a- G) a& n& v 再次回到开始的问题:掌握上述的基本思路后,因为因变量为连续变量,所以采用线性模型肯定是对的。如果因变量可以认为是正态的,那采用一般线性模型是合理的。所以现在的关键问题是:如果调整多个变量(包含分类和连续变量)后看不同分组间因变量(连续变量)是否仍有差异时,能否再称为协方差分析?我目前认为应该是可以的,但是事实上我们遇到这种情况后,并不再去强调它是协方差的思想,而只是回到线性模型分析的最初的起点,也即是检查残差是否符合线性的基本条件即可。
! a' B% I f: {1 O8 N' O" O
9 _/ g. I0 d( v1 X 但是现实中,我们在使用GLM解决前面遇到的类似问题时,只是简单地用了,而很多时候我们都没有认真去检验残差是否符合这个条件,这可能是我们滥用GLM的表现之一,因为我们更多只关注模型的参数是否有意义,而不去关心对结果“无关紧要”的前提条件。
% w" E7 [2 Y& E- X0 v. M& k
* m: y9 ], H! U- j, Y 再次思考一个问题,上述列举的1-7模型,在GLM中并没有特定的选项指定是哪一种模型,而采用一种表达方式。由此,可以进一步深入概括一句话,GLM模型,对于上述列举的 1-7模型并没有本质区别,唯一的区别只是模型中自变量的属性和数量不同 。但是我们对1-7模型的叫法却不相同。而其原因是我们对事物的认识是一个由浅到深的过程,之前我们认为他们是不同的7件事情,随着认识的加深,发现原来这些问题可以用一个方式表达出来。而SAS的GENMOD则更能说明这一问题。现在还没有一个模型能把上述模型1-11用一种表达方式表示,但是COX回归在抛开基线生存函数之后剩下的部分也是线性模型,所以说不定哪天真的能够把上述所有模型用一种表达方式表示出来。到时候更应该相信人们对事物的认识绝对是一个由浅到深的过程啦。
|$ |" B; O# h* H6 b) k
. N6 T3 L: `: U! w 附:GLM与GENMOD在协方差分析结果的比较 ! Q- [+ {' `0 W: \) [
data drugtest; 5 |3 K; z/ k4 I' r% b
input Drug $ PreTreatment PostTreatment @@;
8 s' w4 u4 X. d& }0 H& d datalines;
9 [! s$ [: z/ i9 p. S A 11 6 A 8 0 A 5 2 A 14 8 A 19 11 ; n8 `2 Y1 C7 B# m
A 6 4 A 10 13 A 6 1 A 11 8 A 3 0
4 N) v5 _" l% R/ M; r7 X D 6 0 D 6 2 D 7 3 D 8 1 D 18 18 ( w5 _1 a5 L7 O6 J6 S1 G
D 8 4 D 19 14 D 8 9 D 5 1 D 15 9
* b" G. M* I! W1 N. `( X) N, N$ O- v F 16 13 F 13 10 F 11 18 F 9 5 F 21 23 - m- h- d" {8 M6 C* j! ] J4 H
F 16 12 F 12 5 F 12 16 F 7 1 F 12 20
* L) ~2 I! Q- u! ` ;
: ~( ?; z7 X: y$ A0 M" I c
+ [! P) V1 j9 I% r7 m3 R proc glm;
5 w9 H- R+ v# t4 T, Z class Drug; + K$ I* I% ~3 y9 f8 X. n( j+ w
model PostTreatment = Drug PreTreatment / solution; 9 B; O4 c& O7 v: Q: p$ u+ f# n
lsmeans Drug / stderr pdiff cov out=adjmeans; + t( z0 Q/ E: K0 w" P
run;
8 j$ d+ a$ W. F2 N y6 @" o
" Z+ a! V9 N' k3 U proc genmod data=drugtest;
0 t' H1 w! v6 N+ j- x8 J class Drug;
% x, K' N- R! x( C2 s5 | model PostTreatment = Drug PreTreatment / dist=NOR link=ID obstats type1;
7 R3 `) T h8 E& ]# g run; / v( ^5 w1 \7 v( A" v% `
% e3 H5 ]2 m- ?
proc print data=adjmeans; . [1 l; ^# {8 L7 `% i7 L: X$ L
run; ; w# U. U: I! j- t7 M' n- Y
$ `; D$ p0 _7 z' `7 k, a+ w
" h6 j2 X8 g" j 8 P3 R/ D7 B: c) V
zan