| Date: | Mon, 1 Dec 1997 10:18:46 +0000 |
| Reply-To: | Paul Monaghan <pfm@SCMP.SCM.LIV.AC.UK> |
| Sender: | "SAS(r) Discussion" <SAS-L@UGA.CC.UGA.EDU> |
| From: | Paul Monaghan <pfm@SCMP.SCM.LIV.AC.UK> |
| Subject: | ICE macro (IML) for left/interval censored survival data |
| Content-Type: | text/plain; charset=US-ASCII |
Many thanks to Alan Cantor and Dr. Hans-Peter Altenburg for their
quick reply to my request for a SAS macro to compute nonparametric
survival estimates when the data may be left, right, interval or uncensored.
They suggested using the ICE macro in IML.
I have had problems implementing this algorithm when some of the data are uncensored.
It appears that the problem is in the call to the INTERVAL function. As an example, take
the example given by the ICE macro, augmented with two uncensored times at 1.5 and 1.7.
/* Define the data */
data ex2;
input l r f;
cards;
0 2 1
1 3 1
1.5 1.5 1
1.7 1.7 1
2 10 4
4 10 4
;
run;
%ice(data=ex2,time=(l r),freq=f);
The macro runs until the following error message is returned:
ERROR: (execution) Invalid argument to function.
count : number of occurrences is 2
operation : LOG at line 5238 column 5
operands : XT
XT 6 rows 1 col (numeric)
0.6
0.8
0
0
0.4
0.2
statement : ASSIGN at line 5238 column 5
traceback : module EM at line 5238 column 5
module INTERVAL at line 5238 column 5
NOTE: Paused in module EM.
Exiting IML.
The count line returns the number of uncensored observations (I have tried this for different
data sets), and my guess is that the macro is trying to take log(0) somewhere.
I would be extremely grateful if anybody can help me with this problem, or if this is a known
error in this macro.
Paul Monaghan, University of Liverpool.
|