- 在线时间
- 2 小时
- 最后登录
- 2015-6-24
- 注册时间
- 2015-3-26
- 听众数
- 11
- 收听数
- 1
- 能力
- 0 分
- 体力
- 36 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 18
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 13
- 主题
- 7
- 精华
- 0
- 分享
- 0
- 好友
- 1
升级   13.68% 该用户从未签到
- 自我介绍
- 不知道写啥子
 |
最近遇到一个问题,如果因变量为一个连续变量(如胰岛素水平),主要考察的变量为分组变量(如正常血糖组,前糖尿病组,糖尿病组三组),现在的目的是想看调整多种变量(包括多个连续性变量和分类变量)后,胰岛素水平是否一致。, A3 d5 p2 i- w, S( F. F/ S
7 ?8 u& {7 B& j
2 y n5 |; H. H0 _; C一开始的思路想到的是采用GLM进行协方差分析来解决。2 [6 v+ h/ y' T0 o( ~. d
7 h ~7 c: S* Z3 R/ `
但是有觉得似乎不是很对,因为经典的协方差分析通常只考虑一个连续变量(协变量)和一个分组变量,同时协变量和分组变量只有不存在交互的时候(经典协方差分析的前提)才能使用协方差分析。4 N2 G2 I/ a8 {& d$ e) z5 f
针对我目前的问题,如果想调整多个连续性变量和分类变量,这种方法能否再叫协方差分析?如果可以认为是协方差的思想,用不用检验协方差分析的前提(如协变量与分组变量之间的交互)?多个连续性变量和分类变量存在时,该前提应该怎么检验?3 l: h0 U+ C T1 M9 j+ [; `
% V: u$ ^! L v1 M- G. U# Y4 S
通过跟别人交流之后,有一句话非常受用:线性模型其实最重要的不在于用的方差分析还是协方差分析,而主要是检验残差是否符合线性的几个条件。. F9 D, x% N) m5 l$ c) F
8 T# S9 D8 F) b. @( u) d: |受到该启发后,认真再复习GLM的相关资料,得到更加重要的总结如下(来自高惠璇SAS/STAT软件使用手册,实际是SAS8.2的User's guide的中文版,但是目前SAS 9.2,9.3的User's guide关于GLM模型的介绍中已经删去了这么经典的总结,实在可惜,倒让人看不到GLM的真正长处了):' k2 W' q1 g# B" _# K. t* R4 `* c
如果X1-X3,Y1-Y2为连续性变量,Y3为分类变量,a-c为分类变量,time为时间变量,目前我们熟悉的模型可以简单概括如下:% ]" S4 q0 O, {2 N7 X9 H. e' i
(1) y1= x1 简单回归. T$ {. E) t; ]* L8 ~4 s
(2) y1= x1 x2 x3 多重回归(multiple regression)7 B0 i. w0 [, d1 G/ ]8 z5 w
(3) y1 y2=x1 x2 多元回归(multivariate regression)3 u+ T8 \$ [) R! W* A3 x/ m
(4) y1= a 单因素方差分析
! ^- y; U" I+ {5 _' n `& V5 j(5) y1= a b (析因设计的)主效应分析
# _& D* @; _9 q4 A) v9 s4 M4 i# @(6) y1= a b a*b (析因设计的)主效应加交互项分析5 |6 Q' V8 t9 ]5 Y) q
(7) y1= a x1 协方差分析
9 z$ e/ U8 V _. U. D(8) y3= a 单因素logistic回归, {: s8 _5 y+ b0 i9 _4 H) G
(9) y3= a b c x1 x2 x3 多因素logistic回归
9 U% S) n$ I0 k(10) y3(time) =a 单因素cox回归
* g7 p* c. C4 X6 }; [(11) y3(time) = a b c x1 x2 x3 多因素cox回归
* t. i3 l/ ?" I) _) W2 t1 F K
' m4 U' \& g* H4 e) x1-7采用SAS的一般线性模型GLM都能实现,而1-9采用SAS的广义线性模型GENMOD都能实现,具体验证详见后面举例
* M- x/ I1 f2 k0 p
7 G) Z" I7 w" b: ~, D" R8 Y再次回到开始的问题:掌握上述的基本思路后,因为因变量为连续变量,所以采用线性模型肯定是对的。如果因变量可以认为是正态的,那采用一般线性模型是合理的。所以现在的关键问题是:如果调整多个变量(包含分类和连续变量)后看不同分组间因变量(连续变量)是否仍有差异时,能否再称为协方差分析?我目前认为应该是可以的,但是事实上我们遇到这种情况后,并不再去强调它是协方差的思想,而只是回到线性模型分析的最初的起点,也即是检查残差是否符合线性的基本条件即可。
1 e- ?6 W5 Y* @7 h& s. ~1 o w3 t+ I' V9 }9 ]
但是现实中,我们在使用GLM解决前面遇到的类似问题时,只是简单地用了,而很多时候我们都没有认真去检验残差是否符合这个条件,这可能是我们滥用GLM的表现之一,因为我们更多只关注模型的参数是否有意义,而不去关心对结果“无关紧要”的前提条件。
7 m' z1 O2 [# P* f& p
, p7 @ i1 K$ ?4 ^) a5 T再次思考一个问题,上述列举的1-7模型,在GLM中并没有特定的选项指定是哪一种模型,而采用一种表达方式。由此,可以进一步深入概括一句话,GLM模型,对于上述列举的1-7模型并没有本质区别,唯一的区别只是模型中自变量的属性和数量不同。但是我们对1-7模型的叫法却不相同。而其原因是我们对事物的认识是一个由浅到深的过程,之前我们认为他们是不同的7件事情,随着认识的加深,发现原来这些问题可以用一个方式表达出来。而SAS的GENMOD则更能说明这一问题。现在还没有一个模型能把上述模型1-11用一种表达方式表示,但是COX回归在抛开基线生存函数之后剩下的部分也是线性模型,所以说不定哪天真的能够把上述所有模型用一种表达方式表示出来。到时候更应该相信人们对事物的认识绝对是一个由浅到深的过程啦。
5 A$ n+ B" U3 Y+ R( D& ?, {; g7 I2 A: g' h0 c, c' p7 d) ~
附:GLM与GENMOD在协方差分析结果的比较
/ {1 w# d. k/ y. o# n: e data drugtest; ; w: ]8 z3 X Q, X" J5 B( F
input Drug $ PreTreatment PostTreatment @@;
9 O0 i( I; e" w0 N/ o8 V. \, M5 E datalines;
5 w1 D- C: I( u, F7 }5 n A 11 6 A 8 0 A 5 2 A 14 8 A 19 11 F& m* i" y2 M2 C" G
A 6 4 A 10 13 A 6 1 A 11 8 A 3 0
B) x) l* R# k& U7 m* } D 6 0 D 6 2 D 7 3 D 8 1 D 18 18
$ @" H: A5 _* \; f D 8 4 D 19 14 D 8 9 D 5 1 D 15 9
) k' j6 J/ k. v8 U+ E F 16 13 F 13 10 F 11 18 F 9 5 F 21 23 1 S1 D9 T! u7 [1 V& P1 h% d+ E) q- K
F 16 12 F 12 5 F 12 16 F 7 1 F 12 20 $ T. p- Y6 c3 W, Y {7 b5 H
;
. |# ~: Q% P' O, @4 _ B2 t7 O
+ j2 \! w- R7 g4 C/ N p3 ?$ A8 @ proc glm; ' R& L$ m4 i& n
class Drug; 3 V- {5 L) k _) y3 M5 F) m
model PostTreatment = Drug PreTreatment / solution; ! n, B! V# a" q7 B
lsmeans Drug / stderr pdiff cov out=adjmeans; 9 d6 @4 W6 J- \0 K
run; 4 o% q* \$ \5 b0 ^& z
! }* I# e( W. @
proc genmod data=drugtest;
+ ^ P$ ?( s1 U class Drug; 4 _. B. e2 [1 | I; X; p
model PostTreatment = Drug PreTreatment / dist=NOR link=ID obstats type1; - e$ K9 W+ t2 y
run;
, [9 b2 S1 `9 Y7 r4 P$ a' _
2 g3 t& ^ z. [2 T proc print data=adjmeans; ( c% g5 b/ ^) }3 c0 G0 Q
run;
k- ]! \! d6 k8 W- N% e3 x
% ]" n' {8 W+ h+ {' r0 D
0 t+ Q1 X& B, B2 f8 B, @% }$ {, }/ E" E& S3 |0 \3 k" R' N
|
zan
|