R 计算具有交互变量的非比例风险(Cox)模型的过程数据集

R 计算具有交互变量的非比例风险(Cox)模型的过程数据集,r,survival-analysis,cox-regression,survival,R,Survival Analysis,Cox Regression,Survival,我正在尝试运行一个非比例cox回归模型,该模型具有与时间变量的交互作用,如Singer和Willett的《应用纵向数据分析》第15章(第15.3节)所述。然而,我似乎无法得到与这本书相符的答案 本书中使用的数据和源代码在此提供。不幸的是,最后一章没有提供R代码,文中讨论的示例中为R提供的数据集不完整,并且为最简单的模型(我知道如何运行)提供了不正确的答案。相反,要获得本例的完整数据集,必须单击“SAS”列中的“下载”链接(具有正确的数据集),然后在安装haven软件包(允许以外来数据格式读取)后

我正在尝试运行一个非比例cox回归模型,该模型具有与时间变量的交互作用,如Singer和Willett的《应用纵向数据分析》第15章(第15.3节)所述。然而,我似乎无法得到与这本书相符的答案

本书中使用的数据和源代码在此提供。不幸的是,最后一章没有提供R代码,文中讨论的示例中为R提供的数据集不完整,并且为最简单的模型(我知道如何运行)提供了不正确的答案。相反,要获得本例的完整数据集,必须单击“SAS”列中的“下载”链接(具有正确的数据集),然后在安装
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