Hi Everyone,
I am doing a survival analysis using PROC lifetest. I want to get failure rate and its confidence interval at 12 month.below is my syntex and output:
proc lifetest data = ll atrisk;
strata intervene;
time month*status(0);
run;
Part of output:
Month |
Number at risk |
observed event |
survival |
Failure |
survival SE |
|
0 |
11 |
0 |
1 |
0 |
0 |
|
2.4658 |
11 |
1 |
0.9091 |
0.0909 |
0.0867 |
|
7.726 |
10 |
1 |
0.8182 |
0.1818 |
0.1163 |
|
8.1205 |
9 |
1 |
0.7273 |
0.2727 |
0.1343 |
|
11.1781 |
* |
8 |
0 |
. |
. |
. |
12.3288 |
* |
7 |
0 |
. |
. |
. |
12.4603 |
* |
6 |
0 |
. |
. |
. |
12.5589 |
* |
5 |
0 |
. |
. |
. |
17.3589 |
4 |
1 |
0.5455 |
0.4545 |
0.1869 |
|
23.9014 |
* |
3 |
0 |
. |
. |
. |
24.4603 |
* |
2 |
0 |
. |
. |
. |
Is there a way to dirrectly get failure rate and its 95%confidence interval?
Many Thanks!
Failure = 1 - Survival.
You can calculate 1- number to get the failure values from the OUTSURV table.
Regardless here's the way to get SAS to do it, first you need to create the failure plot and specify cl options. Then use the graph to get the values using ODS OUTPUT. A worked example follows.
I'm also not sure why your code works. There's no survival statement that I can see in the documentation, so it should create an error.
proc format;
value risk 1='ALL' 2='AML-Low Risk' 3='AML-High Risk';
data BMT;
input Group T Status @@;
format Group risk.;
label T='Disease Free Time';
datalines;
1 2081 0 1 1602 0 1 1496 0 1 1462 0 1 1433 0
1 1377 0 1 1330 0 1 996 0 1 226 0 1 1199 0
1 1111 0 1 530 0 1 1182 0 1 1167 0 1 418 1
1 383 1 1 276 1 1 104 1 1 609 1 1 172 1
1 487 1 1 662 1 1 194 1 1 230 1 1 526 1
1 122 1 1 129 1 1 74 1 1 122 1 1 86 1
1 466 1 1 192 1 1 109 1 1 55 1 1 1 1
1 107 1 1 110 1 1 332 1 2 2569 0 2 2506 0
2 2409 0 2 2218 0 2 1857 0 2 1829 0 2 1562 0
2 1470 0 2 1363 0 2 1030 0 2 860 0 2 1258 0
2 2246 0 2 1870 0 2 1799 0 2 1709 0 2 1674 0
2 1568 0 2 1527 0 2 1324 0 2 957 0 2 932 0
2 847 0 2 848 0 2 1850 0 2 1843 0 2 1535 0
2 1447 0 2 1384 0 2 414 1 2 2204 1 2 1063 1
2 481 1 2 105 1 2 641 1 2 390 1 2 288 1
2 421 1 2 79 1 2 748 1 2 486 1 2 48 1
2 272 1 2 1074 1 2 381 1 2 10 1 2 53 1
2 80 1 2 35 1 2 248 1 2 704 1 2 211 1
2 219 1 2 606 1 3 2640 0 3 2430 0 3 2252 0
3 2140 0 3 2133 0 3 1238 0 3 1631 0 3 2024 0
3 1345 0 3 1136 0 3 845 0 3 422 1 3 162 1
3 84 1 3 100 1 3 2 1 3 47 1 3 242 1
3 456 1 3 268 1 3 318 1 3 32 1 3 467 1
3 47 1 3 390 1 3 183 1 3 105 1 3 115 1
3 164 1 3 93 1 3 120 1 3 80 1 3 677 1
3 64 1 3 168 1 3 74 1 3 16 1 3 157 1
3 625 1 3 48 1 3 273 1 3 63 1 3 76 1
3 113 1 3 363 1
;
proc lifetest data = bmt atrisk plots=survival(failure cl);
time T*status(0);
strata group ;
ods output failureplot=want;
run;
Use outsurv and timelist to specify your intervals.
Note that KM is non parametric so if there isn't an estimate for your specific time point it picks the nearest time with an estimate.
Hi Reeza,
Thanks for your suggestion, I am still not get failure rate and its CI. Here is my syntax:
proc lifetest data = ll atrisk;
time month*status(0);
strata intervene ;
survival out=out1 ;
run;
proc print data=out1 noobs;
where 3 <=month<=12 & conftype~="";
run;
and my output:
intervene | month | _CENSOR_ | SURVIVAL | CONFTYPE | SDF_LCL | SDF_UCL | STRATUM |
---|---|---|---|---|---|---|---|
Intervene | 7.72602 | 0 | 0.81818 | LOGLOG | 0.44743 | 0.95116 | 1 |
Intervene | 8.12054 | 0 | 0.72727 | LOGLOG | 0.37079 | 0.90283 | 1 |
Can you help me to get failure rate and its CI?
Thanks
Failure = 1 - Survival.
You can calculate 1- number to get the failure values from the OUTSURV table.
Regardless here's the way to get SAS to do it, first you need to create the failure plot and specify cl options. Then use the graph to get the values using ODS OUTPUT. A worked example follows.
I'm also not sure why your code works. There's no survival statement that I can see in the documentation, so it should create an error.
proc format;
value risk 1='ALL' 2='AML-Low Risk' 3='AML-High Risk';
data BMT;
input Group T Status @@;
format Group risk.;
label T='Disease Free Time';
datalines;
1 2081 0 1 1602 0 1 1496 0 1 1462 0 1 1433 0
1 1377 0 1 1330 0 1 996 0 1 226 0 1 1199 0
1 1111 0 1 530 0 1 1182 0 1 1167 0 1 418 1
1 383 1 1 276 1 1 104 1 1 609 1 1 172 1
1 487 1 1 662 1 1 194 1 1 230 1 1 526 1
1 122 1 1 129 1 1 74 1 1 122 1 1 86 1
1 466 1 1 192 1 1 109 1 1 55 1 1 1 1
1 107 1 1 110 1 1 332 1 2 2569 0 2 2506 0
2 2409 0 2 2218 0 2 1857 0 2 1829 0 2 1562 0
2 1470 0 2 1363 0 2 1030 0 2 860 0 2 1258 0
2 2246 0 2 1870 0 2 1799 0 2 1709 0 2 1674 0
2 1568 0 2 1527 0 2 1324 0 2 957 0 2 932 0
2 847 0 2 848 0 2 1850 0 2 1843 0 2 1535 0
2 1447 0 2 1384 0 2 414 1 2 2204 1 2 1063 1
2 481 1 2 105 1 2 641 1 2 390 1 2 288 1
2 421 1 2 79 1 2 748 1 2 486 1 2 48 1
2 272 1 2 1074 1 2 381 1 2 10 1 2 53 1
2 80 1 2 35 1 2 248 1 2 704 1 2 211 1
2 219 1 2 606 1 3 2640 0 3 2430 0 3 2252 0
3 2140 0 3 2133 0 3 1238 0 3 1631 0 3 2024 0
3 1345 0 3 1136 0 3 845 0 3 422 1 3 162 1
3 84 1 3 100 1 3 2 1 3 47 1 3 242 1
3 456 1 3 268 1 3 318 1 3 32 1 3 467 1
3 47 1 3 390 1 3 183 1 3 105 1 3 115 1
3 164 1 3 93 1 3 120 1 3 80 1 3 677 1
3 64 1 3 168 1 3 74 1 3 16 1 3 157 1
3 625 1 3 48 1 3 273 1 3 63 1 3 76 1
3 113 1 3 363 1
;
proc lifetest data = bmt atrisk plots=survival(failure cl);
time T*status(0);
strata group ;
ods output failureplot=want;
run;
Reeza,
Thanks for your help!
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
ANOVA, or Analysis Of Variance, is used to compare the averages or means of two or more populations to better understand how they differ. Watch this tutorial for more.
Find more tutorials on the SAS Users YouTube channel.