Dear David, Thanks for your reply. I'll try to be more specific: why > library(survival) > data(ovarian) > fit <- coxph(Surv(futime, fustat) ~ resid.ds *rx + ecog.ps, data = ovarian, > subset=ovarian$age>50) > anova(fit) > fit2 <- coxph(Surv(futime, fustat) ~ resid.ds +rx + ecog.ps, data=ovarian, > subset=ovarian$age>50) > anova(fit2,fit)
give different answers? (I assumed that both were sequential tests for the interaction? while > sub.ovarian <- subset(ovarian, age>50) > fit <- coxph(Surv(futime, fustat) ~ resid.ds *rx + ecog.ps, data =sub.ovarian) > anova(fit) > fit2 <- coxph(Surv(futime, fustat) ~ resid.ds +rx + ecog.ps, data=sub.ovarian) > anova(fit2,fit) give the same answer? Thanks for your help, Oscar Oscar M. Rueda, PhD. Postdoctoral Research Fellow, Caldas Lab, Breast Cancer Functional Genomics. University of Cambridge. Cancer Research UK Cambridge Institute. Li Ka Shing Centre, Robinson Way. Cambridge CB2 0RE England ________________________________________ From: David Winsemius [dwinsem...@comcast.net] Sent: Wednesday, January 29, 2014 12:10 AM To: Oscar Rueda Cc: r-help@r-project.org Subject: Re: [R] anova.coxph with subsets of data On Jan 28, 2014, at 10:32 AM, Oscar Rueda wrote: > Dear list, > I'm using the rms package to fit some Cox models. I run anova() on them to > obtain sequential p-values, but I'm getting strange results when I run it on > a subset of the data. > > Following the example on the help page of anova.coxph: >> library(rms) >> data(ovarian) >> fit <- coxph(Surv(futime, fustat) ~ resid.ds *rx + ecog.ps, data = ovarian) >> anova(fit) >> fit2 <- coxph(Surv(futime, fustat) ~ resid.ds +rx + ecog.ps, data=ovarian) >> anova(fit2,fit) > > would give me the same result, as expected. > But If I do > >> fit <- coxph(Surv(futime, fustat) ~ resid.ds *rx + ecog.ps, data = ovarian, >> subset=ovarian$age>50) >> anova(fit) >> fit2 <- coxph(Surv(futime, fustat) ~ resid.ds +rx + ecog.ps, data=ovarian, >> subset=ovarian$age>50) >> anova(fit2,fit) > > The first p-value seems to be wrong. Wrong ... in what way? > Would anybody please explain to me why? Perhaps because anova is a generic function and you were expecting anova.cph to be used but the coxph function is not from pkg:rms but rather from pkg:survival. methods(anova) # with both rms and survival loaded > methods(anova) [1] anova.coxmelist* anova.coxph* anova.coxphlist* anova.glm [5] anova.glmlist anova.glmmPQL* anova.lm anova.loess* [9] anova.loglm* anova.mlm anova.negbin* anova.nls* [13] anova.polr* anova.rms* anova.rq anova.rqlist [17] anova.survreg* anova.survreglist* > > Cheers, > Oscar > > PS. I'm using R 3.0.1. > > Oscar M. Rueda, PhD. > Postdoctoral Research Fellow, Caldas Lab, Breast Cancer Functional > Genomics. > University of Cambridge. Cancer Research UK Cambridge Institute. > Li Ka Shing Centre, Robinson Way. > Cambridge CB2 0RE > England > ______________________________________________ > 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. David Winsemius Alameda, CA, USA ______________________________________________ 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.