Dear All, I was thinking of two possible ways to plot a time-varying coefficient in a Cox model.
One is simply to use survival::plot.cox.zph which directly produces a beta(t) vs t diagram. The other is to transform the dataset to counting process format and manually include an interaction with time, expanded with spline (to be similar to plot.cox.zph). Plotting the coefficient produces the needed beta(t) vs t diagram. I understand that they're slightly different approaches, so I don't expect totally identical results, but nevertheless, they approximate the very same thing, so I do expect that the results are more or less similar. However: library( survival ) library( splines ) data( veteran ) zp <- cox.zph( coxph(Surv(time, status) ~ trt + prior + karno, data = veteran ), transform = "identity" )[ 3 ] veteran3 <- survSplit( Surv(time, status) ~ trt + prior + karno, data = veteran, cut = 1:max(veteran$time) ) fit <- coxph(Surv(tstart,time, status) ~ trt + prior + karno + karno:ns( time, df = 4 ), data = veteran3 ) cf <- coef( fit ) nsvet <- ns( veteran3$time, df = 4 ) plot( zp ) lines( 0:1000, ns( 0:1000, df = 4, knots = attr( nsvet, "knots" ), Boundary.knots = attr( nsvet, "Boundary.knots" ) )%*%cf[ grep( "karno:ns", names( cf ) ) ] + cf["karno"], type = "l", col = "red" ) Where is the mistake? Something must be going on here, because the plots are vastly different... Thank you in advance, Tamas ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.