Here's what I would do. Let's assume that you are presenting the results of the example on the cph help page. I agree with you that the results should be presented on the hazard ratio scale. The Design package provides appropriate plotting tools for creation of publication quality graphics. in your example I would issue the following command:
plot(f, age=NA, sex= NA, #age will be on the x axis and separate plots will be done for male and female col= c("red", "blue"), # fortunately Frank constructed plot.Design, so that both the main effects plots and the CI plots get colored fun = exp, # this results in the log hazard effects on the y axis being transformed to the hazard ratio scale ylab = "Hazard Ratios") # and this adds a meaningful label fo the y axis An alternative plot would be to suppress the CI lines which might be more effective in getting across the message: plot(f, age=NA, sex= NA, col= c("red", "blue"), fun = exp, ylab = "Hazard Ratios", conf.int=FALSE) Given that the model forces the male-female curves to be equidistant on the log hazards scale, I would also examine the possibility that they were in "truth" different by creating an interaction model and testing for difference between that model and the more simplistic model. In this case it is no surprise that the statistical test fails to support such a model: f2 <- cph(Srv ~ rcs(age,4)* sex, x=TRUE, y=TRUE) anova(f) anova*f2) Which mean I would not get the challenge of explaining to my audience the notion of different forms of the age effect for men and women. You would explain in your paper that the model shows that males are on average exp(-0.6445) = 0.5249 times as likely to experience the event of interest. Ths is not at all typical for ordinary humans and this would require careful consideration and review of the experimental situation. The hazard ratios at each age relative to a person of average age are displayed on the graphic. They show a plateau in mortality at young ages (which is typical of free-range humans) but that risk then doubles each decade between ages 45 and 60 but the rise tapers off somewhat at the extremes of age. Those features are typical for human mortality and would not require as much commentary. -- David On Aug 1, 2009, at 8:53 PM, zhu yao wrote: > Thx for your reply. > In this example, age was transformed with rcs. So the output was > different between f and summary(f). > If I need to publicate the results, how do I explation the hazard > ratio of age? > > 2009/8/1 David Winsemius <dwinsem...@comcast.net> > > On Jul 31, 2009, at 11:24 PM, zhu yao wrote: > > Could someone explain the summary(cph.object)? > > The example is in the help file of cph. > > n <- 1000 > set.seed(731) > age <- 50 + 12*rnorm(n) > label(age) <- "Age" > sex <- factor(sample(c('Male','Female'), n, > rep=TRUE, prob=c(.6, .4))) > cens <- 15*runif(n) > h <- .02*exp(.04*(age-50)+.8*(sex=='Female')) > dt <- -log(runif(n))/h > label(dt) <- 'Follow-up Time' > e <- ifelse(dt <= cens,1,0) > dt <- pmin(dt, cens) > units(dt) <- "Year" > dd <- datadist(age, sex) > options(datadist='dd') > > This is process for setting the range for the display of effects in > Design regression objects. See: > > ?datadist > > "q.effect > set of two quantiles for computing the range of continuous variables > to use in estimating regression effects. Defaults are c(.25,.75), > which yields inter-quartile-range odds ratios, etc." > > ?summary.Design > #--- > " By default, inter-quartile range effects (odds ratios, hazards > ratios, etc.) are printed for continuous factors, ... " > #--- > "Value > For summary.Design, a matrix of class summary.Design with rows > corresponding to factors in the model and columns containing the low > and high values for the effects, the range for the effects, the > effect point estimates (difference in predicted values for high and > low factor values), the standard error of this effect estimate, and > the lower and upper confidence limits." > > #--- > > > > Srv <- Surv(dt,e) > > f <- cph(Srv ~ rcs(age,4) + sex, x=TRUE, y=TRUE) > summary(f) > > Effects > Response : Srv > > Factor Low High Diff. Effect S.E. Lower 0.95 Upper > 0.95 > age 40.872 57.385 16.513 1.21 0.21 0.80 1.62 > Hazard Ratio 40.872 57.385 16.513 3.35 NA 2.22 5.06 > > In this case with a 4 df regression spline, you need to look at the > "effect" across the range of the variable. You ought to plot the age > effect and examine anova(f) ). In the untransformed situation the > plot is on the log hazards scale for cph. So the effect for age in > this case should be the difference in log hazard at ages 40.872 and > 57.385. SE is the standard error of that estimate and the Upper and > Lower numbers are the confidence bounds on the effect estimate. The > Hazard Ratio row gives you exponentiated results, so a difference in > log hazards becomes a hazard ratio. {exp(1.21) = 3.35} > > > sex - Female:Male 2.000 1.000 NA 0.64 0.15 0.35 0.94 > Hazard Ratio 2.000 1.000 NA 1.91 NA 1.42 2.55 > > > Wat's the meaning of Effect, S.E. Lower, Upper? > > You probably ought to read a bit more basic material. If you are > asking this question, Harrell's "Regression Modeling Strategies" > might be over you head, but it would probably be a good investment > anyway. Venables and Ripley's "Modern Applied Statistics" has a > chapter on survival analysis. Also consider Kalbfliesch and Prentice > "Statistical Analysis of Failure Time Data". I'm sure there are > others; those are the ones I have on my shelf. > > David Winsemius, MD > Heritage Laboratories > West Hartford, CT > > David Winsemius, MD Heritage Laboratories West Hartford, CT [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list 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.