- 在线时间
- 2 小时
- 最后登录
- 2015-6-24
- 注册时间
- 2015-3-26
- 听众数
- 11
- 收听数
- 1
- 能力
- 0 分
- 体力
- 36 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 18
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 13
- 主题
- 7
- 精华
- 0
- 分享
- 0
- 好友
- 1
升级   13.68% 该用户从未签到
- 自我介绍
- 不知道写啥子
 |
最近遇到一个问题,如果因变量为一个连续变量(如胰岛素水平),主要考察的变量为分组变量(如正常血糖组,前糖尿病组,糖尿病组三组),现在的目的是想看调整多种变量(包括多个连续性变量和分类变量)后,胰岛素水平是否一致。
1 N+ d8 C" l0 e
$ Y6 v, }5 Y; q# g% U. Y; y8 F* A/ o2 m& V0 q% x3 V. j4 {, Z! C
一开始的思路想到的是采用GLM进行协方差分析来解决。
4 T4 B3 s/ ^) Z2 N# U( e# L( @, t7 d! N$ ?1 P" A0 p7 m' c2 \5 J
但是有觉得似乎不是很对,因为经典的协方差分析通常只考虑一个连续变量(协变量)和一个分组变量,同时协变量和分组变量只有不存在交互的时候(经典协方差分析的前提)才能使用协方差分析。4 H, C; e# S# W7 u* {, N5 k- l
针对我目前的问题,如果想调整多个连续性变量和分类变量,这种方法能否再叫协方差分析?如果可以认为是协方差的思想,用不用检验协方差分析的前提(如协变量与分组变量之间的交互)?多个连续性变量和分类变量存在时,该前提应该怎么检验?
& U% R2 {0 [# I! e% g: d. ^0 }
$ B) x, M9 b' u+ d通过跟别人交流之后,有一句话非常受用:线性模型其实最重要的不在于用的方差分析还是协方差分析,而主要是检验残差是否符合线性的几个条件。- M: O9 I# Z' L
i) o+ B/ J3 W/ {受到该启发后,认真再复习GLM的相关资料,得到更加重要的总结如下(来自高惠璇SAS/STAT软件使用手册,实际是SAS8.2的User's guide的中文版,但是目前SAS 9.2,9.3的User's guide关于GLM模型的介绍中已经删去了这么经典的总结,实在可惜,倒让人看不到GLM的真正长处了):: E D) G# ^ O- F
如果X1-X3,Y1-Y2为连续性变量,Y3为分类变量,a-c为分类变量,time为时间变量,目前我们熟悉的模型可以简单概括如下:
* y/ I! N7 ?! G8 G; z( |' |(1) y1= x1 简单回归
9 A! B* ?7 k) e$ @- m(2) y1= x1 x2 x3 多重回归(multiple regression)2 Z; Z) O2 g$ B: x+ ?
(3) y1 y2=x1 x2 多元回归(multivariate regression)1 u% _5 V: x0 K: T! ]& u6 c1 y0 {
(4) y1= a 单因素方差分析
) g8 b: _) L% t(5) y1= a b (析因设计的)主效应分析7 W) s9 \# L! D! }
(6) y1= a b a*b (析因设计的)主效应加交互项分析
' i6 {$ J# ?2 {2 @(7) y1= a x1 协方差分析
# c+ w, G4 J$ V# }0 C5 V(8) y3= a 单因素logistic回归2 ]8 k6 j2 I z4 C7 h3 q; O* X% I1 D
(9) y3= a b c x1 x2 x3 多因素logistic回归) u& f# E6 ]. [- n, A4 z! z, A, i8 Y
(10) y3(time) =a 单因素cox回归5 {2 q* u& m, p& c9 ~$ D# l
(11) y3(time) = a b c x1 x2 x3 多因素cox回归) K3 U. f: `1 R$ l- \6 e
8 ?" K, \- p9 ^+ ?) p6 L( m, x( V
1-7采用SAS的一般线性模型GLM都能实现,而1-9采用SAS的广义线性模型GENMOD都能实现,具体验证详见后面举例
" p! N6 l4 }) y& z
+ ?/ {( `% b0 d- \再次回到开始的问题:掌握上述的基本思路后,因为因变量为连续变量,所以采用线性模型肯定是对的。如果因变量可以认为是正态的,那采用一般线性模型是合理的。所以现在的关键问题是:如果调整多个变量(包含分类和连续变量)后看不同分组间因变量(连续变量)是否仍有差异时,能否再称为协方差分析?我目前认为应该是可以的,但是事实上我们遇到这种情况后,并不再去强调它是协方差的思想,而只是回到线性模型分析的最初的起点,也即是检查残差是否符合线性的基本条件即可。+ l, F- X2 T" o0 x7 w
/ j% j$ W% K8 z% T' [
但是现实中,我们在使用GLM解决前面遇到的类似问题时,只是简单地用了,而很多时候我们都没有认真去检验残差是否符合这个条件,这可能是我们滥用GLM的表现之一,因为我们更多只关注模型的参数是否有意义,而不去关心对结果“无关紧要”的前提条件。) ?. u; U. s# n- U1 g
/ l' w( T- L- b d+ N% B- O
再次思考一个问题,上述列举的1-7模型,在GLM中并没有特定的选项指定是哪一种模型,而采用一种表达方式。由此,可以进一步深入概括一句话,GLM模型,对于上述列举的1-7模型并没有本质区别,唯一的区别只是模型中自变量的属性和数量不同。但是我们对1-7模型的叫法却不相同。而其原因是我们对事物的认识是一个由浅到深的过程,之前我们认为他们是不同的7件事情,随着认识的加深,发现原来这些问题可以用一个方式表达出来。而SAS的GENMOD则更能说明这一问题。现在还没有一个模型能把上述模型1-11用一种表达方式表示,但是COX回归在抛开基线生存函数之后剩下的部分也是线性模型,所以说不定哪天真的能够把上述所有模型用一种表达方式表示出来。到时候更应该相信人们对事物的认识绝对是一个由浅到深的过程啦。
" x8 i' x5 J0 L$ B5 C) j9 r# k4 D) D- ~5 T# Y! T: g
附:GLM与GENMOD在协方差分析结果的比较7 b* d& ~1 f& Z* n$ U# ~0 K% P
data drugtest;
$ Y7 C: m; u2 s/ m" { input Drug $ PreTreatment PostTreatment @@; 6 @/ S7 E8 M( P, s- w4 ?
datalines; 0 U8 a: m9 i9 c3 D2 p, X, c T) U4 F
A 11 6 A 8 0 A 5 2 A 14 8 A 19 11
4 _! U, \# i$ n3 j! G) p# i A 6 4 A 10 13 A 6 1 A 11 8 A 3 0 " ~+ b% S1 Z8 d3 P# Y8 T" e
D 6 0 D 6 2 D 7 3 D 8 1 D 18 18
/ w& ^; i6 K0 C: u0 P+ p, O2 a7 G i D 8 4 D 19 14 D 8 9 D 5 1 D 15 9
8 ?! ^% b8 n6 x( A F 16 13 F 13 10 F 11 18 F 9 5 F 21 23 , C- L3 ]$ e" e; K
F 16 12 F 12 5 F 12 16 F 7 1 F 12 20 7 d$ L6 L' K3 o$ D
;
8 r( Z3 y: [* f k5 b S( @: _8 C% E% n. _! h; F; X
proc glm;
3 w" q2 |6 g1 e' j6 i/ R0 K F class Drug;
7 w6 x$ G9 `7 W9 m model PostTreatment = Drug PreTreatment / solution;
4 s/ y7 w% b! e1 m8 d! u( e lsmeans Drug / stderr pdiff cov out=adjmeans;
- r4 ~* ~8 a, E7 [) A' u run; - s' I5 e5 |# M" a& r' E. ?
0 l( F4 k( }$ Q; O1 \- @/ W0 S4 I7 G
proc genmod data=drugtest; 9 o t/ [3 [6 u
class Drug; 0 G$ N( k+ K2 t$ t8 w6 D
model PostTreatment = Drug PreTreatment / dist=NOR link=ID obstats type1;
9 w$ g* e a; y run; : R% K- c9 u! i t6 W- A7 Y' n
' i4 z1 q1 W5 B; A proc print data=adjmeans; 1 e% v4 p0 c- p2 |
run;8 m( q. |/ a: [$ s8 s* `
* d. [- ^9 f$ c; S9 l+ q3 W
/ P" d% H' l9 Z! @- U8 ~
8 P; D1 J2 ?7 f$ @7 t |
zan
|