predicting expected number of events using a coxph model
On Jul 2, 2012, at 19:27 , agittens wrote:
Peter Dalgaard-2 wrote
I fit a coxph model: coxphfit <- coxph(Surv(sampledLifetime, !sampledCensoredQ) ~ curpbc6 + prevpbc6, sampledTimeSeries) Now I'm trying to predict the expected number of events using a new dataset. The documentation suggests that coxPred <- predict(coxphfit, newdata = testTimeSeries, type="expected") will do what I want, but I get the error Error in model.frame.default(data = testTimeSeries, formula = Surv(sampledLifetime, : variable lengths differ (found for 'curpbc6') when I do this. The dataframes sampledTimeSeries and testTimeSeries were constructed by taking rows from a larger dataframe, so they have the same data. What am I doing incorrectly?
Most likely referring to a variable not in testTimeSeries. (I kind of suspect that unlike predict.lm, predict.coxph does not ignore the left hand side of formulas. Does testTimeSeries contain a sampledLifetime column?)
No, I did not have the lifetime and censored data in the dataframe. Per your idea, I put the sampledLifetime and and sampledCensoredQ variables in the dataframe sampledTimeSeries and left the rest of the code the same. Now when I try with the new data set, coxPred <- predict(coxphfit, newdata = testTimeSeries, type="expected") I get different errors. If I use testTimeSeries without the lifetime and censor indicator columns (which shouldn't be required for prediction), then i get the same error as before.
I gather that type="expected" requires a follow-up time which the routine needs to get from somewhere. Presumably those columns _are_ required.
If I put in these columns, then I get the error Error in predict.coxph(coxphfit, newdata = testTimeSeries, type = "expected", : object 'x' not found
Do you have an "x" somewhere in your model specification? Otherwise, I'm out of clues. Perhaps try a traceback() or options(error=recover) and see where the error comes from.
Peter Dalgaard, Professor, Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com