我在Stata中有一些代码,我正试图在R中重做。我正在研究一个延迟进入生存模型,我想将随访时间限制为5年。在Stata中,这是非常容易的,可以通过以下方式完成,例如:
stset end, fail(failure) id(ID) origin(start) enter(entry) exit(time 5)
stcox var1
library(survival); library(foreign); library(rstpm2)
data(brcancer)
brcancer$start <- 0
# Make delayed entry time
brcancer$entry <- brcancer$rectime / 2
# Write to dta file for Stata
write.dta(brcancer, "brcancer.dta")
好的,现在我们已经建立了一个相同的数据集,用于R和Stata。以下是Stata位代码和模型结果:
use "brcancer.dta", clear
stset rectime, fail(censrec) origin(start) enter(entry) exit(time 1000)
stcox hormon
这是R代码和结果:
# Limit follow-up to 1000 days
brcancer$limit <- ifelse(brcancer$rectime <1000, brcancer$rectime, 1000)
# Cox model
mod1 <- coxph(Surv(time=entry, time2= limit, event = censrec) ~ hormon, data=brcancer, ties = "breslow")
summary(mod1)
正如你们所看到的,R估计和状态估计略有不同,我不知道为什么。我是否错误地设置了R模型以匹配Stata,或者有其他原因导致结果不同?