11-25-2015 03:54 PM
proc phreg data = dm_mty nosummary;
class sex (ref='F') ageg(ref='<30') / param = ref;
model ft*dead(0) = sex ageg xcvd1;
if cvd1=1 & surv_cvd1 < ft then xcvd1=1; else xcvd1=0;
I ran the same program by strata case_phin, without adjusting sex and age. it worked. but I select a subgroup data, no strata, but adjusting sex and age, it just run and run ... no stop.
I need the results for tomorrow's presentation. now I am panic.... Thank you.
11-25-2015 04:32 PM
sas 9.2. The if statemetn is required for this model. the variable is time dependent. I have run this model with STRATA. It worked. it just continue running when strata is removed.
11-26-2015 09:51 AM
11-26-2015 09:43 AM - edited 11-26-2015 09:44 AM
Don't panic. There is a good trick you can use.
Because you define your covariate inside phreg the algorithm it use will change to a slower algorithm were calculation speed is proportional to N^2. (N=number of events).
What you can do is to aggregate your data on riskset, then you get a dataset with a timevariable that indicate the time of the riskset. then you can define your covariate in a dataset before using phreg. calculation time of Phreg will then only be proportional to N. It is not that simple, but you can use my macro Here: how to speed up phreg.
Using the macro your program will be much like this example:
data simulation; do covariate1=0 to 1; do covariate2=0 to 1; do i=1 to 100; *the timevariables are created such that ties will happens often; t=floor(-1000*log(ranuni(-1))/exp(0.1*(covariate1=1)+0.2*(covariate2=1)))/10+0.1; *a censoring variable c; c=-100*log(ranuni(-1)); *events happens if survival time are less than censoring time; event=(t<c); exit=min(t,c); entry=0; output; end; end; end; drop i t c; run; quit; *Example , a timedependent effect; proc phreg data=simulation nosummary; covariate1_1=(exit<=5)*covariate1; covariate1_2=(exit>5)*covariate1; model (entry exit)*event(0)= covariate1_1 covariate1_2; run; *equivalent to:; %coxaggregate(data=simulation,output=dataout,entry=entry,exit=exit,event=event,covariate=covariate1); data dataout; set dataout; more5=(time>5); run; proc phreg data=dataout nosummary; class covariate1 more5/param=glm ; model dummytime*dummytime(2)= covariate1*more5 ; hazardratio covariate1/ at( more5=all); strata time ; weight weight; run;
11-26-2015 10:16 AM
11-27-2015 03:17 AM