I am unable to get the basehaz function to apply a proportional hazards model to a new data frame. I replicated my specific situation with the example for coxph in the help, where I changed the x value of the first record from 0 to 1. Is there something incorrect in the syntax that I am using? Thanks in advance! test1 <- list(time= c(4, 3,1,1,2,2,3), status=c(1,NA,1,0,1,1,0), x= c(0, 2,1,1,1,0,0), sex= c(0, 0,0,0,1,1,1)) test2 <- list(time= c(4, 3,1,1,2,2,3), status=c(1,NA,1,0,1,1,0), x= c(1, 2,1,1,1,0,0), sex= c(0, 0,0,0,1,1,1)) f1 <- coxph( Surv(time, status) ~ x + strata(sex), data=test1) #stratified model f2 <- coxph( Surv(time, status) ~ x + strata(sex), data=test2) #stratified model f1 Call: coxph(formula = Surv(time, status) ~ x + strata(sex), data = test1) coef exp(coef) se(coef) z p x 1.17 3.22 1.29 0.907 0.36 Likelihood ratio test=0.87 on 1 df, p=0.351 n=6 (1 observation deleted due to missingness)> f2Call: coxph(formula = Surv(time, status) ~ x + strata(sex), data = test2) coef exp(coef) se(coef) z p x 0.896 2.45 1.42 0.63 0.53 Likelihood ratio test=0.38 on 1 df, p=0.535 n=6 (1 observation deleted due to missingness)> > basehaz(f1, newdata=test2)Error in basehaz(f1, newdata = test2) : unused argument(s) (newdata = list(time = c(4, 3, 1, 1, 2, 2, 3), status = c(1, NA, 1, 0, 1, 1, 0), x = c(1, 2, 1, 1, 1, 0, 0), sex c(0, 0, 0, 0, 1, 1, 1)))>
Hi, just looked at it briefly and I don't know if it is the real cause for your problems. But 'data' as well as 'newdata' require a data.frame and not a list as input. Does this help? Best, Roland mah wrote:> I am unable to get the basehaz function to apply a proportional > hazards model to a new data frame. I replicated my specific situation > with the example for coxph in the help, where I changed the x value of > the first record from 0 to 1. Is there something incorrect in the > syntax that I am using? Thanks in advance! > > test1 <- list(time= c(4, 3,1,1,2,2,3), > status=c(1,NA,1,0,1,1,0), > x= c(0, 2,1,1,1,0,0), > sex= c(0, 0,0,0,1,1,1)) > test2 <- list(time= c(4, 3,1,1,2,2,3), > status=c(1,NA,1,0,1,1,0), > x= c(1, 2,1,1,1,0,0), > sex= c(0, 0,0,0,1,1,1)) > f1 <- coxph( Surv(time, status) ~ x + strata(sex), data=test1) > #stratified model > f2 <- coxph( Surv(time, status) ~ x + strata(sex), data=test2) > #stratified model > f1 > Call: > coxph(formula = Surv(time, status) ~ x + strata(sex), data = test1) > > > coef exp(coef) se(coef) z p > x 1.17 3.22 1.29 0.907 0.36 > > Likelihood ratio test=0.87 on 1 df, p=0.351 n=6 (1 observation > deleted due to missingness) >> f2 > Call: > coxph(formula = Surv(time, status) ~ x + strata(sex), data = test2) > > > coef exp(coef) se(coef) z p > x 0.896 2.45 1.42 0.63 0.53 > > Likelihood ratio test=0.38 on 1 df, p=0.535 n=6 (1 observation > deleted due to missingness) >> basehaz(f1, newdata=test2) > Error in basehaz(f1, newdata = test2) : > unused argument(s) (newdata = list(time = c(4, 3, 1, 1, 2, 2, 3), > status = c(1, NA, 1, 0, 1, 1, 0), x = c(1, 2, 1, 1, 1, 0, 0), sex > c(0, 0, 0, 0, 1, 1, 1))) > > ______________________________________________ > R-help at r-project.org mailing list > stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >
The 'basehaz' function is just a wrapper for survfit, and includes only some of the arguments of the former. It's main reason for existence is that another more well known (but inferior :-) package uses that term. I don't understand the final comment in the exchange, however:> I had been hoping the tedious > alignment of the baseline curve with the value of the variables in the > new data set would be [somehow] handled for me.Terry Therneau