Data visualization with SAS programming

plot of censored observation in K-M curve

Reply
Contributor
Posts: 25

plot of censored observation in K-M curve

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;

Grand Advisor
Posts: 17,333

plot of censored observation in K-M curve

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;

Frequent Contributor
Posts: 128

plot of censored observation in K-M curve

@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?

Grand Advisor
Posts: 17,333

plot of censored observation in K-M curve

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;

Grand Advisor
Posts: 17,333

plot of censored observation in K-M curve

Contributor
Posts: 25

plot of censored observation in K-M curve

Dear Reeza,

Thank you for your helpful advice!

I really appreciate it.

Yasu

Ask a Question
Discussion stats
  • 5 replies
  • 725 views
  • 0 likes
  • 3 in conversation