Example 2 for PROC LIFEREG
/****************************************************************/
/* S A S S A M P L E L I B R A R Y */
/* */
/* NAME: LIFEREX2 */
/* TITLE: Example 2 for PROC LIFEREG */
/* PRODUCT: STAT */
/* SYSTEM: ALL */
/* KEYS: survival data analysis, Tobit model */
/* PROCS: LIFEREG */
/* DATA: */
/* */
/* SUPPORT: lichen */
/* REF: PROC LIFEREG, EXAMPLE 2. */
/* MISC: */
/****************************************************************/
data subset;
input Hours Yrs_Ed Yrs_Exp @@;
if Hours eq 0
then Lower=.;
else Lower=Hours;
datalines;
0 8 9 0 8 12 0 9 10 0 10 15 0 11 4 0 11 6
1000 12 1 1960 12 29 0 13 3 2100 13 36
3686 14 11 1920 14 38 0 15 14 1728 16 3
1568 16 19 1316 17 7 0 17 15
;
proc lifereg data=subset outest=OUTEST(keep=_scale_);
model (lower, hours) = yrs_ed yrs_exp / d=normal;
output out=OUT xbeta=Xbeta;
run;
data predict;
drop lambda _scale_ _prob_;
set out;
if _n_ eq 1 then set outest;
lambda = pdf('NORMAL',Xbeta/_scale_)
/ cdf('NORMAL',Xbeta/_scale_);
Predict = cdf('NORMAL', Xbeta/_scale_)
* (Xbeta + _scale_*lambda);
label Xbeta='MEAN OF UNCENSORED VARIABLE'
Predict = 'MEAN OF CENSORED VARIABLE';
run;
proc print data=predict noobs label;
var hours lower yrs: xbeta predict;
run;