BookmarkSubscribeRSS Feed
hanson4022
Calcite | Level 5

I'm currently working on a failure time analysis using a logistic distribution in Lifereg. However, I'm having a little trouble using the parameter estimates I'm getting to manually calculate predicted mortality at a particular time.

I'm more familiar with PROC LOGISTIC  where I am given an intercept and slope, and I can calculate the predicted cumulative failure rate with % failed = 1/(1+exp(-(intercept+time*slope))). In those kinds of analyses, I would be taking a batch of samples, expose them to a particular dose, and measure the number of responses (i.e. deaths) out of total samples at each treatment. Survival time analysis is a little different though since I'm watching individuals over time until death rather than going to pre-determined treatment time, hence using PROC LIFEREG. However, the procedure gives intercept and scale parameters when I use a logistic distribution, but I'm not sure how to use these estimates to predict mortality for a given exposure time like I would in my PROC LOGISTIC example. I haven't seen a formula yet that that allows me to just plug in the intercept and scale parameters with the specific time of interest to get the predicted cumulative mortality for that model yet. Everything I've tried out so far results in different values when I check them against the predicted values the cdf option gives for the specific time values used to build the model. Could anyone provide information on how we're supposed to use these parameters? Thanks.

2 REPLIES 2
Reeza
Super User

The formulas to calculate the predicted value are based on your specifications.

Any reason you aren't getting it to spit out the values you need rather than calculate them by hand?

SAS/STAT(R) 9.22 User's Guide

hanson4022
Calcite | Level 5

Problem solved. The formula I was using was not based on a scale parameter. What I needed to be using was:

\frac{1}{1+e^{-\frac{x-\mu}{s}}}\!

where x is time, u is the intercept, and s is the scale parameter. The formula I was used to using in Proc Logistic requires slightly different parameters.

DATA dummydata;

   INPUT vid failtime ;

   DATALINES;

1    45   

2    55   

3    56   

4    57   

5    57   

6    59   

7    60   

8    65   

9    70   

10    75   

;

run;

proc lifereg data=dummydata plots=probplot;

model failtime= /d=logistic;

output out=a cdf=pred;

run;

proc print data=a;

title "Lifereg predicted values";

run;

data dummydata2;

set dummydata;

predictedmortality=1/(1+exp(-(59.5050+failtime*4.4536)));

run;

proc print data=dummydata2;

title "Incorrect Formula predicted values";

run;

data dummydata3;

set dummydata;

predictedmortality=1/(1+exp(-((failtime-59.5050)/4.4536)));

run;

proc print data=dummydata3;

title "Correct predicted values";

run;

Ultimately I needed to report the parameter estimates with the correct formula because I have no idea what specific time others would need to know the mortality for. Otherwise I could have just had SAS spit out a single value for a time of interest, but that would have been feasible in this case.

sas-innovate-2024.png

Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.

 

Register now!

What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

Find more tutorials on the SAS Users YouTube channel.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 2 replies
  • 1384 views
  • 3 likes
  • 2 in conversation