- 在线时间
- 2 小时
- 最后登录
- 2015-6-24
- 注册时间
- 2015-3-26
- 听众数
- 11
- 收听数
- 1
- 能力
- 0 分
- 体力
- 36 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 18
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 13
- 主题
- 7
- 精华
- 0
- 分享
- 0
- 好友
- 1
升级   13.68% 该用户从未签到
- 自我介绍
- 不知道写啥子
 |
最近遇到一个问题,如果因变量为一个连续变量(如胰岛素水平),主要考察的变量为分组变量(如正常血糖组,前糖尿病组,糖尿病组三组),现在的目的是想看调整多种变量(包括多个连续性变量和分类变量)后,胰岛素水平是否一致。% P7 _& h: N, A; m! @1 j; A
9 l# U |& O% h8 ]' J% z- X" ~8 o0 B* T ~6 w2 ?2 w- u( Z
一开始的思路想到的是采用GLM进行协方差分析来解决。" r, }( Q& i s, ~+ v
9 o. o f! T/ \7 y+ q" \1 {$ h
但是有觉得似乎不是很对,因为经典的协方差分析通常只考虑一个连续变量(协变量)和一个分组变量,同时协变量和分组变量只有不存在交互的时候(经典协方差分析的前提)才能使用协方差分析。
: W; R: {7 L: C& f针对我目前的问题,如果想调整多个连续性变量和分类变量,这种方法能否再叫协方差分析?如果可以认为是协方差的思想,用不用检验协方差分析的前提(如协变量与分组变量之间的交互)?多个连续性变量和分类变量存在时,该前提应该怎么检验?
& }/ z8 u9 s6 S: S* F. \9 D8 g& T" N: a5 w: d& {
通过跟别人交流之后,有一句话非常受用:线性模型其实最重要的不在于用的方差分析还是协方差分析,而主要是检验残差是否符合线性的几个条件。
4 u# F L7 d; i+ J! {) W
8 [, Z, {! O# f* T5 {: \受到该启发后,认真再复习GLM的相关资料,得到更加重要的总结如下(来自高惠璇SAS/STAT软件使用手册,实际是SAS8.2的User's guide的中文版,但是目前SAS 9.2,9.3的User's guide关于GLM模型的介绍中已经删去了这么经典的总结,实在可惜,倒让人看不到GLM的真正长处了):9 p' I; }3 c# l# ?
如果X1-X3,Y1-Y2为连续性变量,Y3为分类变量,a-c为分类变量,time为时间变量,目前我们熟悉的模型可以简单概括如下:
2 [$ ?6 a {3 m: d# e( [$ w8 r$ ?(1) y1= x1 简单回归 `, C/ i9 `; x: b! Z$ E: s W
(2) y1= x1 x2 x3 多重回归(multiple regression)' p" q- r) E4 I5 j' n9 ]2 x0 Z0 Z, M
(3) y1 y2=x1 x2 多元回归(multivariate regression)! h$ i5 c! n, g
(4) y1= a 单因素方差分析( w$ h9 u2 d# h% T$ B
(5) y1= a b (析因设计的)主效应分析* N# u* @6 B8 T3 N5 `; F3 \
(6) y1= a b a*b (析因设计的)主效应加交互项分析
1 u9 k; N8 y0 D. @1 F+ [(7) y1= a x1 协方差分析
, d7 } z; y5 t) D5 \' a {3 W, B(8) y3= a 单因素logistic回归
; b- Z0 A( P* s+ E+ F+ Y6 N(9) y3= a b c x1 x2 x3 多因素logistic回归8 Y6 w% a; [9 ?8 l. L# b
(10) y3(time) =a 单因素cox回归9 g! W4 m5 l% F. H
(11) y3(time) = a b c x1 x2 x3 多因素cox回归/ N, o) T% g6 H9 @6 w7 S
; \' B( u5 q& Y! _2 @' Z1-7采用SAS的一般线性模型GLM都能实现,而1-9采用SAS的广义线性模型GENMOD都能实现,具体验证详见后面举例6 s% a5 z6 d: N, ]0 S( d
- t5 Y9 o8 s, L x% D8 y1 `: H+ N
再次回到开始的问题:掌握上述的基本思路后,因为因变量为连续变量,所以采用线性模型肯定是对的。如果因变量可以认为是正态的,那采用一般线性模型是合理的。所以现在的关键问题是:如果调整多个变量(包含分类和连续变量)后看不同分组间因变量(连续变量)是否仍有差异时,能否再称为协方差分析?我目前认为应该是可以的,但是事实上我们遇到这种情况后,并不再去强调它是协方差的思想,而只是回到线性模型分析的最初的起点,也即是检查残差是否符合线性的基本条件即可。* W2 H! r6 ?3 ?5 n$ X5 B
+ G8 ^$ | K+ k) `* }' C2 h
但是现实中,我们在使用GLM解决前面遇到的类似问题时,只是简单地用了,而很多时候我们都没有认真去检验残差是否符合这个条件,这可能是我们滥用GLM的表现之一,因为我们更多只关注模型的参数是否有意义,而不去关心对结果“无关紧要”的前提条件。
7 {( O- O+ ^7 _( }' ?9 J
: G# k) x6 A5 r; W- I2 g2 E, [# Z再次思考一个问题,上述列举的1-7模型,在GLM中并没有特定的选项指定是哪一种模型,而采用一种表达方式。由此,可以进一步深入概括一句话,GLM模型,对于上述列举的1-7模型并没有本质区别,唯一的区别只是模型中自变量的属性和数量不同。但是我们对1-7模型的叫法却不相同。而其原因是我们对事物的认识是一个由浅到深的过程,之前我们认为他们是不同的7件事情,随着认识的加深,发现原来这些问题可以用一个方式表达出来。而SAS的GENMOD则更能说明这一问题。现在还没有一个模型能把上述模型1-11用一种表达方式表示,但是COX回归在抛开基线生存函数之后剩下的部分也是线性模型,所以说不定哪天真的能够把上述所有模型用一种表达方式表示出来。到时候更应该相信人们对事物的认识绝对是一个由浅到深的过程啦。7 V) ]% I7 h2 V6 F9 n: B8 n5 C+ z
4 j% X0 X. f' ?, ?5 x, X D- ]# s/ e
附:GLM与GENMOD在协方差分析结果的比较
2 J9 R& F! K1 W' D5 X data drugtest; 3 G7 c5 t" R- `0 m' l: e
input Drug $ PreTreatment PostTreatment @@; & y, |- i7 |2 d/ o2 t
datalines;
( O7 o T. f' A& i& o7 E" K A 11 6 A 8 0 A 5 2 A 14 8 A 19 11 6 b1 N; Z8 o0 p+ e8 o
A 6 4 A 10 13 A 6 1 A 11 8 A 3 0
$ m: L7 i: P$ m7 n! b D 6 0 D 6 2 D 7 3 D 8 1 D 18 18 : H+ D/ K8 p5 n$ Q2 x# X" b/ Z4 w7 h
D 8 4 D 19 14 D 8 9 D 5 1 D 15 9
7 w! f% _6 {$ |9 C9 g9 A! ` F 16 13 F 13 10 F 11 18 F 9 5 F 21 23 ! `( T- n4 p7 M7 ~% S) O5 p2 \
F 16 12 F 12 5 F 12 16 F 7 1 F 12 20
- T7 d' r9 Z1 V/ v ; 2 A9 f2 N$ _; r3 Y* C; [) E l
" `+ O1 r3 B8 c
proc glm;
5 F" _4 }" ~( j" \& e class Drug;
) |7 O& `( z$ U0 s P model PostTreatment = Drug PreTreatment / solution; ! m; l* n' C, Z& }0 U' o5 z
lsmeans Drug / stderr pdiff cov out=adjmeans; 9 {& G& Y6 v7 ?/ Y/ x6 N3 k
run;
6 z/ I- f2 E4 _7 j% p4 r2 o4 Z- h, G9 q3 W( F7 q2 q
proc genmod data=drugtest; 6 ~+ S! \! k$ }; }: \2 Q
class Drug; 4 R" g3 i0 Y) q8 F+ J
model PostTreatment = Drug PreTreatment / dist=NOR link=ID obstats type1; ' A$ Q/ M* D2 E- E
run; ) E% Y) R2 m( o4 M$ }
" F" S3 B: d) }5 |9 M: f6 c proc print data=adjmeans; & Z9 C8 F" t( c( ]9 o) y, J
run;7 T6 G; r) c \! t) I! E
3 ]" | g( J4 r4 q: T5 {4 n7 {* T- m
+ H! ~6 M4 I2 E' {9 y9 l6 k3 ]: K0 D% [9 [2 z" R' u
|
zan
|