BookmarkSubscribeRSS Feed
Yasu
Fluorite | Level 6

Dear all,

Now I'm trying to draw a Kaplan-Meier Curve without the plot of censored observations by using proc lifetest (The SAS code is as follows).

However the NOCENSPLOT option does not work well on  my environment (SAS ver.9.2.), though the plot of censored observations can be suppressed by using CENSOREDSYMBOL option (i.e. CENSOREDSYMBOL=none). Why is this?

Additionally, if the ODS GRAPHICS  option is specified (i.e. "ods graphics on;"), the plot of censored observations cannot be suppressed by using NOCENSPLOT option or CENSOREDSYMBOL option.

How can I get the K-M curve without the plot of censored observations when the ODS GRAPHICS option is specified?

I'd appreciate it if someone would tell me how to do it.

Thanks in advance.

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
;
run;

proc lifetest data=BMT plots=survival(atrisk=0 to 2500 by 500) NOCENSPLOT;
   time T * Status(0);
   strata Group;
run;

proc lifetest data=BMT plots=survival(atrisk=0 to 2500 by 500) CENSOREDSYMBOL=NONE;

   time T * Status(0);

   strata Group;

run;

ods graphics on;
proc lifetest data=BMT plots=survival(atrisk=0 to 2500 by 500) CENSOREDSYMBOL=NONE;
   time T * Status(0);
   strata Group;
run;
ods graphics off;

5 REPLIES 5
Reeza
Super User

As per the docs for ods graphics option you're looking for the nocensor option. The options vary by the output type, ie ods graphics and traditional graphics. the nocensplot is for lineprinter not ODS.

read the very fine buried print Smiley Happy

Try the following, works on my comp. SAS 9.2.3

ods graphics on;
proc lifetest data=BMT plots=survival(atrisk=0 to 2500 by 500 NOCensor) ;
   time T * Status(0);
   strata Group;
run;
ods graphics off;

Ken_oy
Fluorite | Level 6

@Reeza: I tried the code you provided, it works.

But the question is, how if we are not removing those censored symbol '+', but changing them to 'Dot's?

I don't see any option for changing cencored symbols.

Any help?

Reeza
Super User

If you're using the default SAS graphics you can change the censored symbol (check the docs for this option).

If you're using ODS graphics then you need to modify the templates. Fortunately its a fairly easy change.

Get your template using the following code:

proc template;

source Stat.Lifetest.Graphics.Productlimitsurvival;

run;

It appeaers in your log. Copy the template and put proc template at the start and a run at the end.

proc template;

copied code goes here;

run;

Then find and change the following part:

if (PLOTCENSORED=1)

            scatterplot y=CENSORED x=TIME / markerattrs=(symbol=plus size=8px) name="Censored" legendlabel="Censored";

It'll be in the code twice so make sure you change both locations. You're looking to change the symbol=plus to whatever you need it to be. You might need to play with it, but if you make a mistake, just delete it (see below) and start over.

When you're done, delete your template from the 'library' by using the following:

proc template;

     delete Stat.Lifetest.Graphics.Productlimitsurvival;

run;

Yasu
Fluorite | Level 6

Dear Reeza,

Thank you for your helpful advice!

I really appreciate it.

Yasu

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 5 replies
  • 3689 views
  • 0 likes
  • 3 in conversation