2
$\begingroup$

I've constructed a Cox PH model using multiple imputed datasets in SAS. Now I would like to estimate adjusted survival curves for each treatment group (main variable in the model). Is there a principled way of combining adjusted survival curves estimated from each imputation? Can I just estimate the probabilities from each imputation and then combine them later using PROC MIANALYZE?

Thanks!

*Edit: I've sort of rigged the pooling of multiple imputations so that the modeleffects argument in PROC MIANALYZE is the estimated survival probability for group A or B at a single timepoint. I have several of these "effects" based on the number of timepoints. The stderr argument in PROC MIANALYZE is the associated standard error. My concern is if doing it this way still leads to valid inferences.

$\endgroup$
2
  • $\begingroup$ Are the same predictor variables included in the models for all of the imputed data sets? $\endgroup$
    – EdM
    Commented Aug 9, 2015 at 17:11
  • $\begingroup$ Yes, I ran the same model for each imputed dataset and obtained a set of adjusted survival probabilities at each timepoint for each treatment group. $\endgroup$ Commented Aug 9, 2015 at 17:13

3 Answers 3

1
$\begingroup$

With the same predictors in all of your models, the basic rule for the pooling step of multiple imputation is:

The pooling step consists of computing the mean over the m repeated analysis, its variance, and its confidence interval or P value.

So in your case, the "mean" etc. would be for each regression coefficient in the Cox models. (It's not clear in your question what you mean by "estimate the probabilities from each imputation.") Calculating the p-values properly might require information about covariances.

I don't use SAS, but a quick look at its manual page suggests that PROC MIANALYZE is designed to do what you want. It would seem to work best if you do the analyses in a way that maintains the special data-set structures that SAS uses to keep track of covariances in multiple imputations. (That's certainly the case for the mice package in R for multiple imputation.)

EDIT: In response to the revised question, an important issue would be the distributions of survival probabilities among the imputations, as they might not be as amenable to pooling among imputed models as the regression coefficients are. For example, if some probabilities are very close to 100% or 0% then simply taking the average of the probabilities is likely to lead to trouble, particularly in calculating the p-values for differences between groups. You will be better off by following the standard imputation procedure for pooling multiple models into a single model, and then getting the estimates of survival probabilities from that single pooled model.

$\endgroup$
3
  • $\begingroup$ Thanks. In SAS PROC PHREG, there is a way to output adjusted survival curves from the result of a Cox model. Essentially, it takes the covariate profile from the data and computes the average survival probabilities given the estimated regression coefficients. The resulting curve represents the adjusted survival prob for the average individual. Survival Curves in PROC PHREG. Additionally, this procedure outputs standard errors at each time point. $\endgroup$ Commented Aug 9, 2015 at 18:02
  • $\begingroup$ Hi @EdM. When following advice to follow standard procedure for pooling multiple models, how should the baseline cumulative hazards be combined? The logs of the hazard ratios (coefficients) can be pooled easily as they have asymptotic normality. However, to calculate survival probabilities you also need an estimate of the baseline (cumulative) hazard. This does not have asymptotic normality, as far as I am aware, so I am unsure how to pool multiple coxph models into a single model. Many thanks if you see this. $\endgroup$
    – AP30
    Commented Feb 26, 2018 at 15:11
  • $\begingroup$ @AP30 the link in the answer by Ray Velcoro to this question shows one general way to proceed, pooling survival curves after complementary log-log transformation and then back-transforming. I haven't verified personally, but the authors argue that this procedure follows Rubin's Rules for pooling multiple imputations. $\endgroup$
    – EdM
    Commented Feb 26, 2018 at 17:57
1
$\begingroup$

I agree with @EdM's, and here's another perspective. In my experience with multiple imputation, getting the overall estimate has been very straightforward. It's the uncertainty part that's tricky.

For an overall estimate in general, as @EdM said, you'd average over the estimates obtained from each imputation. For the model coefficients, this is trivial as it's just an arithmetic mean of a bunch of numbers. For the survival functions, however, you might have to think a bit, especially if PROC MIANALYZE doesn't have a ready-made solution for survival situations (i.e., it's not Bear Grylls). In that case, I believe you'll have to fix covariate values at specific values and estimate the survival curve using the model fits from the various imputations. Perhaps you'll want to evaluate points on a fixed grid, and then finally average them to get a pointwise average curve.

But to me, the interesting part of multiple imputation is the variance adjustment, as you've literally made up data and need to pay a penalty for this in your reported uncertainty. "Rubin's Rules" make this straightforward whenever Wald-type statistics (estimate / se) are available, but I don't know how you'd do it for Kaplan-Meyer survival curve estimates.

$\endgroup$
0
1
$\begingroup$

If I understand this correctly, you would like to get Kaplan-Meier curves for each treatment. There is an article published recently that shows this using the R package MICE.

Basically, what they do is get the imputations, and then pool on the cloglog scale and then backtransform to get predictions.

I don't know enough about SAS to say if you can do it there, but it isn't too hard to code up the stuff located in the section in that article called "Rubin’s rules after complementary log-log transformation:"

$\endgroup$

Not the answer you're looking for? Browse other questions tagged or ask your own question.