R 计算具有交互变量的非比例风险(Cox)模型的过程数据集
我正在尝试运行一个非比例cox回归模型,该模型具有与时间变量的交互作用,如Singer和Willett的《应用纵向数据分析》第15章(第15.3节)所述。然而,我似乎无法得到与这本书相符的答案 本书中使用的数据和源代码在此提供。不幸的是,最后一章没有提供R代码,文中讨论的示例中为R提供的数据集不完整,并且为最简单的模型(我知道如何运行)提供了不正确的答案。相反,要获得本例的完整数据集,必须单击“SAS”列中的“下载”链接(具有正确的数据集),然后在安装R 计算具有交互变量的非比例风险(Cox)模型的过程数据集,r,survival-analysis,cox-regression,survival,R,Survival Analysis,Cox Regression,Survival,我正在尝试运行一个非比例cox回归模型,该模型具有与时间变量的交互作用,如Singer和Willett的《应用纵向数据分析》第15章(第15.3节)所述。然而,我似乎无法得到与这本书相符的答案 本书中使用的数据和源代码在此提供。不幸的是,最后一章没有提供R代码,文中讨论的示例中为R提供的数据集不完整,并且为最简单的模型(我知道如何运行)提供了不正确的答案。相反,要获得本例的完整数据集,必须单击“SAS”列中的“下载”链接(具有正确的数据集),然后在安装haven软件包(允许以外来数据格式读取)后
haven
软件包(允许以外来数据格式读取)后,通过以下方式读取相关数据集:
haven::read_sas(“alda/lengthofstay.sas7bdat”)
此数据集表示在医院接受住院治疗的参与者(变量ID
)的住院时间(变量DAYS
)。审查变量是CENSOR
。研究人员假设两种不同类型的治疗(二元变量TREAT
)可以预测退出治疗的风险差异值。此外,他们预计,随着时间的推移,组间危险差异不会恒定,因此需要创建一个相互作用项。我可以让简单的主效应模型工作,返回书中报告的相同危险系数(这就是我最终发现随R代码提供的.csv文件不完整的原因)
summary(modA我发现我做错了什么。当我创建交互变量TREATINT
而不是
longLOS$TREATINT
coef exp(coef) se(coef) z Pr(>|z|)
TREAT 0.1457 1.1568 0.1541 0.945 0.345
cutPoints <- sort(unique(los$DAYS[los$EVENT == 1]))
# now split the dataset
longLOS <- survSplit(Surv(DAYS,EVENT)~ ., data = los, cut = cutPoints)
# and (just because I'm anal) rename the interval upper bound column (formerly "DAYS")
names(longLOS)[5] <- "tstop"
longLOS$TREATINT <- longLOS$EVENT*(longLOS$tstop - 1)
summary(modB <- coxph(Surv(tstart, tstop, EVENT) ~ TREAT + TREATINT, data = longLOS))
Error in fitter(X, Y, strats, offset, init, control, weights = weights, :
routine failed due to numeric overflow.This should never happen. Please contact the author.
coef exp(coef) se(coef) z Pr(>|z|)
TREAT 0.706411 2.026705 0.292404 2.416 0.0157
TREATINT -0.020833 0.979383 0.009207 -2.263 0.0237