library(eventglm)
<- cumincglm(Surv(time, status) ~ rx, time = 2500, data = colon)
colon.cifit summary(colon.cifit)
#>
#> Call:
#> cumincglm(formula = Surv(time, status) ~ rx, time = 2500, data = colon)
#>
#> Deviance Residuals:
#> Min 1Q Median 3Q Max
#> -0.5875 -0.4902 -0.3467 0.4863 2.1103
#>
#> Coefficients:
#> Estimate Std. Error z value Pr(>|z|)
#> (Intercept) 0.54345 0.02946 18.449 < 2e-16 ***
#> rxLev -0.02907 0.04173 -0.697 0.48596
#> rxLev+5FU -0.13176 0.04186 -3.148 0.00165 **
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#> (Dispersion parameter for quasi family taken to be 1)
#>
#> Null deviance: 253.10 on 928 degrees of freedom
#> Residual deviance: 250.15 on 926 degrees of freedom
#> AIC: NA
#>
#> Number of Fisher Scoring iterations: 2
confint(colon.cifit)
#> 2.5 % 97.5 %
#> (Intercept) 0.4857153 0.60118745
#> rxLev -0.1108637 0.05271372
#> rxLev+5FU -0.2137964 -0.04971921
This uses the st0202_1
package, available from here: https://www.stata-journal.com/article.html?article=st0202_1
"colon.csv", clear
. import delimited obs)
(18 vars, 929
. stset time, failure(status==1)
.
failure event: status == 1obs. time interval: (0, time]
exit on or before: failure
------------------------------------------------------------------------------total observations
929
0 exclusions
------------------------------------------------------------------------------
929 observations remaining, representingin single-record/single-failure data
452 failures total analysis time at risk and under observation
1,551,389 at risk from t = 0
earliest observed entry t = 0last observed exit t = 3,329
. // requires st0202_1 install (search stpci)
. at(2500)
. stpci, for the cumulative incidence function.
Pseudo-observations none).
Competing risks: (percent completed).
Computing pseudo-observations (progress dots indicate
----+--- 1 ---+--- 2 ---+--- 3 ---+--- 4 ---+--- 5
.................................................. 50
.................................................. 100variable: pseudo.
Generated
tabulate rx, gen(rxdum)
.
rx | Freq. Percent Cum.
------------+-----------------------------------
Lev | 310 33.37 33.37
Lev+5FU | 304 32.72 66.09
Obs | 315 33.91 100.00
------------+-----------------------------------
Total | 929 100.00
glm pseudo rxdum1 rxdum2, vce(robust)
.
log pseudolikelihood = -708.7556
Iteration 0:
of obs = 929
Generalized linear models Number
Optimization : ML Residual df = 926
Scale parameter = .270145
Deviance = 250.154308 (1/df) Deviance = .270145
Pearson = 250.154308 (1/df) Pearson = .270145
function: V(u) = 1 [Gaussian]
Variance function : g(u) = u [Identity]
Link
AIC = 1.532305
Log pseudolikelihood = -708.7556003 BIC = -6078.23
------------------------------------------------------------------------------
| Robust
pseudo | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
rxdum1 | -.029075 .0416186 -0.70 0.485 -.1106459 .0524959
rxdum2 | -.1317578 .0417443 -3.16 0.002 -.2135752 -.0499404_cons | .5434514 .02938 18.50 0.000 .4858676 .6010352
------------------------------------------------------------------------------
Assuming you have loaded the colon data in your workspace.
proc lifetest data=colon noprint plots=none timelist=2500 reduceout outsurv=sall;
time time*status(0);
run;
data sall;
set sall;
theta = survival;
keep theta;
run;
data sout;
set colon;
keep id;
run;
%macro pseudosurv;
%do ip=1 %to 929;
data coloni;
set colon;
where id ^= &ip;
run;
proc lifetest data=coloni noprint plots=none timelist=2500 reduceout outsurv=salli;
time time*status(0);
run;
data salli;
set salli;
thetamini = survival;
id = &ip;
keep id thetamini;
run;
data souti;
merge salli sall;
run;
data sout;
merge sout souti;
by id;
run;
%end;
%mend pseudosurv;
%pseudosurv;
data sout2;
set sout;
pseudoci = 1 - (929 * theta - (929 - 1) * thetamini);
run;
data colon2;
merge colon sout2;
by id;
if rx='Lev' then rxlev = 1;
else rxlev = 0;
if rx='Lev+5FU' then rxlevplus = 1;
else rxlevplus = 0;
run;
proc reg data = colon2;
model pseudoci = rxlev rxlevplus / white;
run;
Parameter Estimates | ||||||||
---|---|---|---|---|---|---|---|---|
Variable | DF |
Parameter Estimate |
Standard Error |
t Value | Pr > |t| | Heteroscedasticity Consistent | ||
Standard Error |
t Value | Pr > |t| | ||||||
Intercept | 1 | 0.54345 | 0.02928 | 18.56 | <.0001 | 0.02936 | 18.51 | <.0001 |
rxlev | 1 | -0.02907 | 0.04158 | -0.70 | 0.4846 | 0.04160 | -0.70 | 0.4847 |
rxlevplus | 1 | -0.13176 | 0.04179 | -3.15 | 0.0017 | 0.04172 | -3.16 | 0.0016 |