由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - 该用cox regression model还是gee model?
相关主题
请教一个fit Cox PHREG model的问题同时有interval censoring和right censoring应该怎么用SAS做?
急问:Cox proportional hazard model covariate问题!!问一个SAS lifereg的问题!
包子贴:问一个COX MODEL+TIME DEPENDENT COVARIATE的问题proc lifereg,distribution selection
GEE model一问About the model adequacy test on Parametric survival analysis
问一个R的问题: survreg() vs. PROC LIFEREG请教个用SAS lifereg interval-censored survival analysis后作图的问题
question on time-dependent baseline in SAS phreg!converge problem in proc phreg
survival 中关于censoring的问题用proc phreg处理数据遇到的问题
cro里面比较常用的SAS proc都有什么Extended Cox Hazard model with time dependent variables
相关话题的讨论汇总
话题: bmi话题: seq话题: model话题: event话题: age
进入Statistics版参与讨论
1 (共1页)
t********m
发帖数: 939
1
Obs ID MONTHS SEQ EVENT DAYS AGE BMI
1 1 0 1 0 0.001 40 27.39999962
2 1 12 2 0 411 41 26.5
3 1 24 3 0 778 42 26.29999924
4 1 36 4 0 1169 43 26.20000076
5 1 48 5 0 1504 44 26
6 1 60 6 0 1911 45 26.39999962
7 1 72 7 0 2225 46 26.10000038
8 1 84 8 0 2612 47 27.60000038
9 2 0 1 0 0.001 50 24.70000076
10 2 12 2 0 408 51 23.60000038
11 2 24 3 0 773 52 24
12 2 36 4 0 1149 53 23
13 2 48 5 0 1513 54 23.60000038
14 2 60 6 0 1877 55 23.70000076
15 2 72 7 0 2269 56 24.29999924
16 2 84 8 0 2598 57 23.60000038
17 3 0 1 0 0.001 49 26.10000038
18 3 12 2 0 409 50 27.5
19 3 24 3 0 780 51 25.89999962
请教各位大牛,我有上面这样的数据。这里的event是一种疾病,是可以重复出现的。
有的病人在0,12个月,24个月,...,84个月都有一个record,有的病人可能只有一部
分。一旦疾病出现(event=1),该病人后面的数据我们就不感兴趣了,比如说病人2
(ID=2)在第3次(24个月)的时候发现患病,那么病人2从第四次开始的数据我们在研
究时会删掉。这里的days是从病人开始被enroll到该次测量的时间,基本上与months相
对应。还有很多其他的variable,我这里只列出了age和bmi。现在我想建一个模型分析
age,bmi等变量与该病人得病与否的关系。我困惑的是该用repeated measures cox
regression model(proc phreg)还是应该用repeated measures logistic regression
(proc genmod)。我倾向于用后者,但老板倾向于用前者,因为他想将时间变量考虑
进去。如果用cox regression,时间变量该用months还是days?怎样考虑repeated
measures,是否用id statement就够了?看了一些书,说是如果有repeated measures
时,在estimate coefficients时要考虑平均效应,所以新建了一个变量seq和两个
array变量。我不是很明白其中的原理。不知道有没有大牛可以解释下,为什么要这样
做?另外我run了程序,结果sas显示WARNING: Variable ag1 is redundant in the
model.
WARNING: Variable bm1 is redundant in the model.
我的cox regression 的code 如下:
data test;
set test;
array ag(*) ag1-ag8;
array bm(*) bm1-bm8;
do i=1 to 8;
ag(i)=age*(seq=i);
bm(i)=bmi*(seq=i);
end;
run;
proc phreg data=test;
model days*event(0)=ag1-ag8 bm1-bm8 seq;
id id;
age: test ag1,ag2,ag3,ag4,ag5,ag6,ag7,ag8 / average;
bmi: test bm1,bm2,bm3,bm4,bm5,bm6,bm7,bm8 / average;
run;
gee model的code如下:
proc genmod data=test descending;
class id seq;
model event=age seq bmi/dist=bin link=logit;
repeated subject=id /type=exch;
estimate 'log O.R. Age' age 1 /exp;
estimate 'log O.R. bmi' bmi 1 /exp;
run;
请教各位牛人,你们觉得是用cox regression model合适还是repeated measures
logistic regression合适呢?我上面的code有什么问题么?请不吝赐教,多谢!
P****D
发帖数: 11146
2
你是否关心这点?如果病人得病一次之后,又第二次得病,你是否关心,还是只关心第
一次的?
另外你是否关心BMI随时间的变化?假如按传统survival analysis来做你这个项目,只
考虑在发病那个月的BMI(或者加上baseline BMI作为另一个independent variable也
可以将就,虽然它们两个之间联系比较强),你是否能接受?

【在 t********m 的大作中提到】
: Obs ID MONTHS SEQ EVENT DAYS AGE BMI
: 1 1 0 1 0 0.001 40 27.39999962
: 2 1 12 2 0 411 41 26.5
: 3 1 24 3 0 778 42 26.29999924
: 4 1 36 4 0 1169 43 26.20000076
: 5 1 48 5 0 1504 44 26
: 6 1 60 6 0 1911 45 26.39999962
: 7 1 72 7 0 2225 46 26.10000038
: 8 1 84 8 0 2612 47 27.60000038
: 9 2 0 1 0 0.001 50 24.70000076

t********m
发帖数: 939
3
多谢你的回复。我们只关心病人第一次得病,病人第一次得病以后的数据都不会被用到
model中来。
我想bmi随时间的变化也是我们所关心的。我不是很明白你说的按照传统survival
analysis来做,就只能考虑发病那个月的bmi或者baseline的bmi,因为发病的病人可能
并不只是有两个bmi,比如说,如果有病人在36个月时发病,那么他的有效数据如下:
Obs ID MONTHS SEQ EVENT DAYS AGE BMI
80 12 0 1 0 0.001 45 26.10000038
81 12 12 2 0 372 46 31.60000038
82 12 24 3 0 759 47 31.5
83 12 36 4 1 1179 48 31.89999962
也就是说36个月以后的数据我们不关心,可是之前的包括36个月时候的数据都是我们所
关心的。而且如果病人不发病,那么他的所有的数据我们都关心。我不知道是应该将
age和bmi当作time-dependent covariates还是只是一个单纯的repeated measures,如
果当作time-dependent covariates的话,在sas里面怎样用proc phreg来建一个cox
regression的模型,很混乱。请大侠给点建议!非常感谢!

【在 P****D 的大作中提到】
: 你是否关心这点?如果病人得病一次之后,又第二次得病,你是否关心,还是只关心第
: 一次的?
: 另外你是否关心BMI随时间的变化?假如按传统survival analysis来做你这个项目,只
: 考虑在发病那个月的BMI(或者加上baseline BMI作为另一个independent variable也
: 可以将就,虽然它们两个之间联系比较强),你是否能接受?

r*****y
发帖数: 199
4
我想PharmD说的传统的survival就是把bmi都当成time independent variable,最多就
是adjust一下baseline BMI,你现在是要把它当成time dependent variable 来fit。
关于model fit可以去看看survival analysis using sas,2nd这本书,chapter5里面
有讲time-dependent covariates measured at regular intervals,第161页,你的
data manipulation可以在proc phreg里面完成,还有各种变化和讨论。
关于用survival还是longitudinal,我个人认为应该用survival,因为如果你把数据当
成longitudinal data来fit,其实你有monotone missing,因为一旦observe到event,
后面的纪录都删掉了,在MCAR的情况下,你可以fit GEE model,但你这个missing肯定
不是MAR了,所以结果应该会是biased。如果你有保留event发生后时间点的那些记录,
你也可以还原这些
纪录然后用GEE 来fit。不知道结果是怎么样的,如果你试了的话,希望你来update一
下你的帖子,我对结果还蛮感兴趣的。
我学的也不是特别扎实,讲的也不一定对,希望其他高手指点。
k*******a
发帖数: 772
5
我觉得event后面全部删掉,就是MAR, 因为probability of missing值取决于是否前面
已经有observed event, 不depedent on unobserved data

【在 r*****y 的大作中提到】
: 我想PharmD说的传统的survival就是把bmi都当成time independent variable,最多就
: 是adjust一下baseline BMI,你现在是要把它当成time dependent variable 来fit。
: 关于model fit可以去看看survival analysis using sas,2nd这本书,chapter5里面
: 有讲time-dependent covariates measured at regular intervals,第161页,你的
: data manipulation可以在proc phreg里面完成,还有各种变化和讨论。
: 关于用survival还是longitudinal,我个人认为应该用survival,因为如果你把数据当
: 成longitudinal data来fit,其实你有monotone missing,因为一旦observe到event,
: 后面的纪录都删掉了,在MCAR的情况下,你可以fit GEE model,但你这个missing肯定
: 不是MAR了,所以结果应该会是biased。如果你有保留event发生后时间点的那些记录,
: 你也可以还原这些

k*******a
发帖数: 772
6
用 interval censored survival analysis

【在 t********m 的大作中提到】
: Obs ID MONTHS SEQ EVENT DAYS AGE BMI
: 1 1 0 1 0 0.001 40 27.39999962
: 2 1 12 2 0 411 41 26.5
: 3 1 24 3 0 778 42 26.29999924
: 4 1 36 4 0 1169 43 26.20000076
: 5 1 48 5 0 1504 44 26
: 6 1 60 6 0 1911 45 26.39999962
: 7 1 72 7 0 2225 46 26.10000038
: 8 1 84 8 0 2612 47 27.60000038
: 9 2 0 1 0 0.001 50 24.70000076

P****D
发帖数: 11146
7
学习了。我都不知道SAS还可以做这个。

【在 r*****y 的大作中提到】
: 我想PharmD说的传统的survival就是把bmi都当成time independent variable,最多就
: 是adjust一下baseline BMI,你现在是要把它当成time dependent variable 来fit。
: 关于model fit可以去看看survival analysis using sas,2nd这本书,chapter5里面
: 有讲time-dependent covariates measured at regular intervals,第161页,你的
: data manipulation可以在proc phreg里面完成,还有各种变化和讨论。
: 关于用survival还是longitudinal,我个人认为应该用survival,因为如果你把数据当
: 成longitudinal data来fit,其实你有monotone missing,因为一旦observe到event,
: 后面的纪录都删掉了,在MCAR的情况下,你可以fit GEE model,但你这个missing肯定
: 不是MAR了,所以结果应该会是biased。如果你有保留event发生后时间点的那些记录,
: 你也可以还原这些

t********m
发帖数: 939
8
多谢回复。经你这么一说,我觉得用survival analysis更合适。现在就是如何建model
的问题。正在看survival analysis using sas这本书,感觉里面的例子似乎没有一个
跟我这个情况一样,很是苦恼。我想将data改成下面这种形式,然后用了163页的model
,这种情况下有些id的age2-age8有missing value,也不知道对不对。
Obs ID MONTHS SEQ EVENT AGE1 AGE2 ..AGE8 BMI1 BMI2...BMI8
1 1 84 8 0 40 41 ....47 27.39999962..
2 2 12 2 1 50 51 ...... 28 27........
proc phreg data=test;
model seq*event(0)=age bmi;
array ag(*) ag1-ag8;
array bm(*) bm1-bm8;
age=ag[seq];
run;
程序还没写出来,发现自己对array运用的很差,怎么也得不到我想要的上面的这种
data的结构形式,正在试验中,弄好了上来update。

【在 r*****y 的大作中提到】
: 我想PharmD说的传统的survival就是把bmi都当成time independent variable,最多就
: 是adjust一下baseline BMI,你现在是要把它当成time dependent variable 来fit。
: 关于model fit可以去看看survival analysis using sas,2nd这本书,chapter5里面
: 有讲time-dependent covariates measured at regular intervals,第161页,你的
: data manipulation可以在proc phreg里面完成,还有各种变化和讨论。
: 关于用survival还是longitudinal,我个人认为应该用survival,因为如果你把数据当
: 成longitudinal data来fit,其实你有monotone missing,因为一旦observe到event,
: 后面的纪录都删掉了,在MCAR的情况下,你可以fit GEE model,但你这个missing肯定
: 不是MAR了,所以结果应该会是biased。如果你有保留event发生后时间点的那些记录,
: 你也可以还原这些

t********m
发帖数: 939
9
大侠大侠,能多说两句么?如果做interval censored survival analysis,还是用
proc phreg么?是不是这种形式:
proc phreg data=test;
model (t_start,t_end)*event(0)=age bmi;
id id months event;
run;
但data要怎么处理一下才能用这个啊?google了一下,似乎有关这方面的资料挺少的。
请大侠指点,谢谢!

【在 k*******a 的大作中提到】
: 用 interval censored survival analysis
k*******a
发帖数: 772
10
interval censored的话可能需要假设BMI是constant, 实现是比较容易的 (先写出
likelihood, 然后用 proc nlp来optimize),我写过sas macro (输入数据就是你样子
的longitudinal 形式的),sas网站也有相关下载。
当然,自简单的solution就是right imputation, 就是把first positive 的时间作为
event time, 如果没有positive, 那么最后那个时间作为censored的时间

【在 t********m 的大作中提到】
: 大侠大侠,能多说两句么?如果做interval censored survival analysis,还是用
: proc phreg么?是不是这种形式:
: proc phreg data=test;
: model (t_start,t_end)*event(0)=age bmi;
: id id months event;
: run;
: 但data要怎么处理一下才能用这个啊?google了一下,似乎有关这方面的资料挺少的。
: 请大侠指点,谢谢!

相关主题
question on time-dependent baseline in SAS phreg!同时有interval censoring和right censoring应该怎么用SAS做?
survival 中关于censoring的问题问一个SAS lifereg的问题!
cro里面比较常用的SAS proc都有什么proc lifereg,distribution selection
进入Statistics版参与讨论
A*******s
发帖数: 3942
11
如果用cox regression,时间变量该用months还是days?
equivalent but hazard/mortality rate has different scale.
怎样考虑repeated measures,是否用id statement就够了?
time-dependent covariates suffice. id statement is for recurrent events.
看了一些书,说是如果有repeated measures时,在estimate coefficients时要考虑平
均效应,所以新建了一个变量seq和两个array变量。我不是很明白其中的原理。不知道
有没有大牛可以解释下,为什么要这样做?
u need to model the appropriate functional forms of time-dependent
covariates. moving average is one of them. other forms may include weighted
MA, EMMA, max, min, lag, diff... pick the one making sense. But extreme care
must be taken for internal variables.

【在 t********m 的大作中提到】
: Obs ID MONTHS SEQ EVENT DAYS AGE BMI
: 1 1 0 1 0 0.001 40 27.39999962
: 2 1 12 2 0 411 41 26.5
: 3 1 24 3 0 778 42 26.29999924
: 4 1 36 4 0 1169 43 26.20000076
: 5 1 48 5 0 1504 44 26
: 6 1 60 6 0 1911 45 26.39999962
: 7 1 72 7 0 2225 46 26.10000038
: 8 1 84 8 0 2612 47 27.60000038
: 9 2 0 1 0 0.001 50 24.70000076

t********m
发帖数: 939
12
多谢大侠的回复。你说的interval censored听起来好像挺复杂似的,我估计我搞不定
,另外我这里的bmi等其他的variable不是constant的,所以我还是采取你说的简单的
right imputation方法吧,如果event=0那么时间都是months=84,如果event=1那就
用event发生时的时间。最后我的数据是这样的:
ID MONTHS EVENT SEQ ag1 ag2 ag3 ag4 ag5
1 84 0 8 40 41 42 43 44
4 84 0 8 49 50 . . .
5 84 0 8 42 43 44 45 46
8 12 1 2 52 53 . . .
10 84 0 8 48 . . 51 52
ag6 ag7 ag8 bm1 bm2 bm3 bm4 bm5 bm6
45 46 47 27.4 26.5 26.3 26.2 26 26.4
. . 56 25.1 23.5 . . . .
47 48 49 31.8 30.4 31.3 31.7 31.2 31.1
. . . 31.6 31.5 . . . .
53 54 55 29.6 . . 21.8 21.8 22.1
bm7 bm8
26.1 27.6
. 24.8
30.7 31
. .
22 22
然后将age和bmi都当作time-dependent covariates进行建模,用了realshy大侠提到的
survival analysis using sas这本书里面163页的程序,code是这样的:
proc phreg data=flattest;
model months*event(0)=age bmi;
array ag(*) ag1-ag8;
array bm(*) bm1-bm8;
age=ag[seq]; bmi=bm[seq];
run;
除了sas自动删除了很多含有missing value的records外,其他结果正常。也不知道这
样做到底对不对。欢迎各位大侠继续指教,谢谢!

【在 k*******a 的大作中提到】
: interval censored的话可能需要假设BMI是constant, 实现是比较容易的 (先写出
: likelihood, 然后用 proc nlp来optimize),我写过sas macro (输入数据就是你样子
: 的longitudinal 形式的),sas网站也有相关下载。
: 当然,自简单的solution就是right imputation, 就是把first positive 的时间作为
: event time, 如果没有positive, 那么最后那个时间作为censored的时间

A*******s
发帖数: 3942
13
age cannot be used as a time-dependent effect since it will be absorbed in
the baseline hazard function.
but baseline age can be used as a time-independent effect.

【在 t********m 的大作中提到】
: 多谢大侠的回复。你说的interval censored听起来好像挺复杂似的,我估计我搞不定
: ,另外我这里的bmi等其他的variable不是constant的,所以我还是采取你说的简单的
: right imputation方法吧,如果event=0那么时间都是months=84,如果event=1那就
: 用event发生时的时间。最后我的数据是这样的:
: ID MONTHS EVENT SEQ ag1 ag2 ag3 ag4 ag5
: 1 84 0 8 40 41 42 43 44
: 4 84 0 8 49 50 . . .
: 5 84 0 8 42 43 44 45 46
: 8 12 1 2 52 53 . . .
: 10 84 0 8 48 . . 51 52

k*******a
发帖数: 772
14
age 不需要做time dependent,其实可以证明做和不做,结果是一样的
因为cox model的likelihood是compete risk, age因素分子分母会cancel掉

【在 t********m 的大作中提到】
: 多谢大侠的回复。你说的interval censored听起来好像挺复杂似的,我估计我搞不定
: ,另外我这里的bmi等其他的variable不是constant的,所以我还是采取你说的简单的
: right imputation方法吧,如果event=0那么时间都是months=84,如果event=1那就
: 用event发生时的时间。最后我的数据是这样的:
: ID MONTHS EVENT SEQ ag1 ag2 ag3 ag4 ag5
: 1 84 0 8 40 41 42 43 44
: 4 84 0 8 49 50 . . .
: 5 84 0 8 42 43 44 45 46
: 8 12 1 2 52 53 . . .
: 10 84 0 8 48 . . 51 52

t********m
发帖数: 939
15
非常感谢你的回复。关于第三点,你说的:u need to model the appropriate
functional forms of time-dependent covariates. moving average is one of them
. other forms may include weighted MA, EMMA, max, min, lag, diff... pick the
one making sense. But extreme care must be taken for internal variables.
我现在用的是我楼上提到的model,也不知道是你提到的哪种方法,只知道用的是
partial likelihood estimate,具体的原理还在学习中。另外,非常感谢你关于age的
提醒,我又得改程序了,将删除ag2-ag8,用ag1也就是baseline age作为time-
independent effect。

weighted
care

【在 A*******s 的大作中提到】
: 如果用cox regression,时间变量该用months还是days?
: equivalent but hazard/mortality rate has different scale.
: 怎样考虑repeated measures,是否用id statement就够了?
: time-dependent covariates suffice. id statement is for recurrent events.
: 看了一些书,说是如果有repeated measures时,在estimate coefficients时要考虑平
: 均效应,所以新建了一个变量seq和两个array变量。我不是很明白其中的原理。不知道
: 有没有大牛可以解释下,为什么要这样做?
: u need to model the appropriate functional forms of time-dependent
: covariates. moving average is one of them. other forms may include weighted
: MA, EMMA, max, min, lag, diff... pick the one making sense. But extreme care

t********m
发帖数: 939
16
多谢提示。我对于cox model处于一知半解的状态,两种model我都run了下,可是发现
得出来的model的likelihood ratio和各个parameter的estimate都不太一样啊。不知道
是怎么回事呢,我再看看我的data和model有没有问题。

【在 k*******a 的大作中提到】
: age 不需要做time dependent,其实可以证明做和不做,结果是一样的
: 因为cox model的likelihood是compete risk, age因素分子分母会cancel掉

P****D
发帖数: 11146
17
你都假设BMI是恒定的了,不如直接用PROC LIFEREG做吧,省得自己写。

【在 k*******a 的大作中提到】
: interval censored的话可能需要假设BMI是constant, 实现是比较容易的 (先写出
: likelihood, 然后用 proc nlp来optimize),我写过sas macro (输入数据就是你样子
: 的longitudinal 形式的),sas网站也有相关下载。
: 当然,自简单的solution就是right imputation, 就是把first positive 的时间作为
: event time, 如果没有positive, 那么最后那个时间作为censored的时间

k*******a
发帖数: 772
18
en...对, 刚开始我在考虑因为exact time-to-event是不知的,所以需要interval
censored.

【在 P****D 的大作中提到】
: 你都假设BMI是恒定的了,不如直接用PROC LIFEREG做吧,省得自己写。
P****D
发帖数: 11146
19
我说的就是用lifereg来处理interval censoring。

【在 k*******a 的大作中提到】
: en...对, 刚开始我在考虑因为exact time-to-event是不知的,所以需要interval
: censored.

Y******Y
发帖数: 8753
20
这个。。。把data set弄成counting process的format,either用sas或者R都可以直接
做啦。。。
t********m
发帖数: 939
21
多谢回复。我现在用的是另外的data structure,就是每个id只有一个record ,程序
如下:
proc phreg data=flatcox;
model months*event(0)=ag1 bmi htn diur ckd creat /risklimits;
array bm(*) bm1-bm8;
array ht(*) ht1-ht8;
array di(*) di1-di8;
array ck(*) ck1-ck8;
array cr(*) cr1-cr8;
bmi=bm[seq]; htn=ht[seq]; diur=di[seq];
ckd=ck[seq]; creat=cr[seq];
run;
我现在就是困惑怎样将data弄成适合用counting process的structure,我需要建两个
新的variable,一个为开始的time,一个为结束的time,然后用如下的程序:
proc phreg data=counting;
id id seq;
model (start,stop)*event(0)=ag1 bmi htn diur ckd creat /selection=
backward risklimits;
run;
可是这个start 和stop应该怎样弄呢?比如说对于id=1,他的records如下:
id months event seq age bmi
1 0 0 8 40 27.39999962
1 12 0 8 41 26.5
1 24 0 8 42 26.29999924
1 36 0 8 43 26.20000076
1 48 0 8 44 26
1 60 0 8 45 26.39999962
1 72 0 8 46 26.10000038
1 84 0 8 47 27.60000038
for counting process的数据应该是下面这样的,可是第一行或者最后一行的start和
stop应该是怎样的呢?请指教,多谢!
id months start stop event seq age bmi
1 0 ???? ???? 0 8 40 27.39999962
1 12 0 12 0 8 40 26.5
1 24 12 24 0 8 40 26.29999924
1 36 24 36 0 8 40 26.20000076
1 48 36 48 0 8 40 26
1 60 48 60 0 8 40 26.39999962
1 72 60 72 0 8 40 26.10000038
1 84 72 84 0 8 40 27.60000038

【在 Y******Y 的大作中提到】
: 这个。。。把data set弄成counting process的format,either用sas或者R都可以直接
: 做啦。。。

1 (共1页)
进入Statistics版参与讨论
相关主题
Extended Cox Hazard model with time dependent variables问一个R的问题: survreg() vs. PROC LIFEREG
proc phreg 的 projecte probability.question on time-dependent baseline in SAS phreg!
求助:Power analysis for poisson regression?survival 中关于censoring的问题
请问poisson regression和 Log-linear model之间的联系?cro里面比较常用的SAS proc都有什么
请教一个fit Cox PHREG model的问题同时有interval censoring和right censoring应该怎么用SAS做?
急问:Cox proportional hazard model covariate问题!!问一个SAS lifereg的问题!
包子贴:问一个COX MODEL+TIME DEPENDENT COVARIATE的问题proc lifereg,distribution selection
GEE model一问About the model adequacy test on Parametric survival analysis
相关话题的讨论汇总
话题: bmi话题: seq话题: model话题: event话题: age