- 在线时间
- 2 小时
- 最后登录
- 2015-6-24
- 注册时间
- 2015-3-26
- 听众数
- 11
- 收听数
- 1
- 能力
- 0 分
- 体力
- 36 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 18
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 13
- 主题
- 7
- 精华
- 0
- 分享
- 0
- 好友
- 1
升级   13.68% 该用户从未签到
- 自我介绍
- 不知道写啥子
 |
最近遇到一个问题,如果因变量为一个连续变量(如胰岛素水平),主要考察的变量为分组变量(如正常血糖组,前糖尿病组,糖尿病组三组),现在的目的是想看调整多种变量(包括多个连续性变量和分类变量)后,胰岛素水平是否一致。6 v5 g0 |( j; g" V# u& s
: X7 G+ ^ [( p: k3 R" V6 h
6 S$ |3 Q9 p) j9 w
一开始的思路想到的是采用GLM进行协方差分析来解决。
" s/ { g/ a- f& s6 z7 V3 ~; a8 c7 ?7 e3 [
但是有觉得似乎不是很对,因为经典的协方差分析通常只考虑一个连续变量(协变量)和一个分组变量,同时协变量和分组变量只有不存在交互的时候(经典协方差分析的前提)才能使用协方差分析。
( t6 a F7 ]) @: o% {6 ~" k% r针对我目前的问题,如果想调整多个连续性变量和分类变量,这种方法能否再叫协方差分析?如果可以认为是协方差的思想,用不用检验协方差分析的前提(如协变量与分组变量之间的交互)?多个连续性变量和分类变量存在时,该前提应该怎么检验?2 O( G0 o6 T# Y _; }
9 g4 w: [6 i& R4 H* q$ [# a
通过跟别人交流之后,有一句话非常受用:线性模型其实最重要的不在于用的方差分析还是协方差分析,而主要是检验残差是否符合线性的几个条件。
c" w- ]% m9 D* f
$ s0 R/ u, k" N4 O( G) X, p受到该启发后,认真再复习GLM的相关资料,得到更加重要的总结如下(来自高惠璇SAS/STAT软件使用手册,实际是SAS8.2的User's guide的中文版,但是目前SAS 9.2,9.3的User's guide关于GLM模型的介绍中已经删去了这么经典的总结,实在可惜,倒让人看不到GLM的真正长处了):
$ ?# L, a. s* E5 q如果X1-X3,Y1-Y2为连续性变量,Y3为分类变量,a-c为分类变量,time为时间变量,目前我们熟悉的模型可以简单概括如下:7 l W1 `' b3 n7 z+ z5 g( u' ^0 H
(1) y1= x1 简单回归4 I" j9 I- [: N; G" B% t( C
(2) y1= x1 x2 x3 多重回归(multiple regression)$ F3 d/ Q5 Q6 O& c+ g
(3) y1 y2=x1 x2 多元回归(multivariate regression); {/ r, }5 Y1 g* k H o
(4) y1= a 单因素方差分析1 J" s* s9 ?+ L2 O/ ?1 \8 ?* k' x. l
(5) y1= a b (析因设计的)主效应分析
! C( o1 ?5 `3 l' c; t3 P(6) y1= a b a*b (析因设计的)主效应加交互项分析1 A% d$ n' G3 P# N' `( N9 O3 ]
(7) y1= a x1 协方差分析6 U4 H9 X* U$ ~: k3 f0 _8 n! `
(8) y3= a 单因素logistic回归; S4 j* k" p; `0 ?; X7 V5 [ _
(9) y3= a b c x1 x2 x3 多因素logistic回归
3 T" v0 V. M% y(10) y3(time) =a 单因素cox回归
# s& b+ O8 \ c- T: D( e/ w% Q8 R(11) y3(time) = a b c x1 x2 x3 多因素cox回归# q( m4 B: Z* Q! B* D
3 z2 [( V8 n" r6 b4 p. C2 [. h7 u
1-7采用SAS的一般线性模型GLM都能实现,而1-9采用SAS的广义线性模型GENMOD都能实现,具体验证详见后面举例" c, f3 J- v) }' E
2 b# |, ?0 g) x# r4 d再次回到开始的问题:掌握上述的基本思路后,因为因变量为连续变量,所以采用线性模型肯定是对的。如果因变量可以认为是正态的,那采用一般线性模型是合理的。所以现在的关键问题是:如果调整多个变量(包含分类和连续变量)后看不同分组间因变量(连续变量)是否仍有差异时,能否再称为协方差分析?我目前认为应该是可以的,但是事实上我们遇到这种情况后,并不再去强调它是协方差的思想,而只是回到线性模型分析的最初的起点,也即是检查残差是否符合线性的基本条件即可。% Q. L% g. U& n+ n- j) Y5 P; }: d3 r G
" @8 I4 k2 h9 ^1 r. z! G( L3 _
但是现实中,我们在使用GLM解决前面遇到的类似问题时,只是简单地用了,而很多时候我们都没有认真去检验残差是否符合这个条件,这可能是我们滥用GLM的表现之一,因为我们更多只关注模型的参数是否有意义,而不去关心对结果“无关紧要”的前提条件。: e; \# E. R! \ ` p. d
+ O* X7 D* ]( ?
再次思考一个问题,上述列举的1-7模型,在GLM中并没有特定的选项指定是哪一种模型,而采用一种表达方式。由此,可以进一步深入概括一句话,GLM模型,对于上述列举的1-7模型并没有本质区别,唯一的区别只是模型中自变量的属性和数量不同。但是我们对1-7模型的叫法却不相同。而其原因是我们对事物的认识是一个由浅到深的过程,之前我们认为他们是不同的7件事情,随着认识的加深,发现原来这些问题可以用一个方式表达出来。而SAS的GENMOD则更能说明这一问题。现在还没有一个模型能把上述模型1-11用一种表达方式表示,但是COX回归在抛开基线生存函数之后剩下的部分也是线性模型,所以说不定哪天真的能够把上述所有模型用一种表达方式表示出来。到时候更应该相信人们对事物的认识绝对是一个由浅到深的过程啦。# t' Q! g) ?" s, g @6 i- c, H
% X6 d) [! |$ A
附:GLM与GENMOD在协方差分析结果的比较
' `0 ^% X) [8 Z& S0 d! A! A data drugtest;
; c: ?; R1 k4 S, B: V input Drug $ PreTreatment PostTreatment @@; 7 h B4 A5 e R7 L
datalines; , x2 _; D5 a7 ]- c# t: c8 T3 w
A 11 6 A 8 0 A 5 2 A 14 8 A 19 11
6 r9 U+ s: ]" f5 ^! y- Q& y A 6 4 A 10 13 A 6 1 A 11 8 A 3 0 " r0 F% d/ m+ \# v* {
D 6 0 D 6 2 D 7 3 D 8 1 D 18 18 + p! V( F- {, f2 \, \3 z, c
D 8 4 D 19 14 D 8 9 D 5 1 D 15 9
4 D( X1 u- t) m% w. C3 A: q F 16 13 F 13 10 F 11 18 F 9 5 F 21 23 % b- y ^# V- s9 m" y
F 16 12 F 12 5 F 12 16 F 7 1 F 12 20
8 ]* E+ J; V$ G9 u, i ;
/ x6 r9 x) z Z4 v4 t8 u+ s
- q" V& ]0 Y0 }5 e proc glm; ( f+ r- b5 [& J6 O1 k9 F1 ?
class Drug; & p2 N4 K6 v$ e7 E3 s$ j, \
model PostTreatment = Drug PreTreatment / solution;
9 z' k; ^2 S" }, U( S( ~. a lsmeans Drug / stderr pdiff cov out=adjmeans; ' v1 {0 T# X4 X; S o$ c2 C: X$ k
run;
& Y3 A1 v9 G* } k% o3 ~# i3 D# M# p/ l/ x
proc genmod data=drugtest;
# [8 \1 V% _; t( _# T, a# g class Drug; 1 X# h1 e' n+ ~0 d& O4 h
model PostTreatment = Drug PreTreatment / dist=NOR link=ID obstats type1;
- T! G- k: K% b" \2 F- X- Q- N run; 3 s1 ^, w* C7 [) @
1 w: ^/ f6 p, d$ t proc print data=adjmeans; 2 c7 B/ y( B0 r0 B3 q
run;
- a$ {+ q. s1 X- l( T3 B. F! h3 w1 u/ }* Q$ { l
% n4 ^$ d8 D# g
- x/ H( l6 u" g0 \8 g5 L/ G) S6 {
|
zan
|