我正在使用区间截尾数据进行生存分析,我正在尝试使用 incox 包中的 intcox() 函数来进行 Cox 回归。我已经使用 survfit() 完成了部分分析,一切正常。
当我尝试使用 intcox 时,总是出现问题:
> intcox(Surv(tempo2,tempo1,type="interval2")~dados$sexo)
Error in copy.data[ord, ] :
object of type 'environment' is not subsettable
> intcox(Surv(tempo2,tempo1,type="interval2")~sexo, data=dados)
Error in if (any(derivs.wert$g1 <= 0)) { :
missing value where TRUE/FALSE needed
In addition: Warning messages:
1: In Surv(data$mix, lokal.cens) : Invalid status value, converted to NA
2: In coxph(formula, data) : X matrix deemed to be singular; variable 1
dados$sexo 是一个具有三个水平的因子,dados 是一个包含 156 个观察值和 52 个变量的列表。在进行 Kaplan-Meier 分析或在没有区间数据的情况下使用 coxph() 时没有问题。当我使用其他变量时,问题似乎是一样的。
我正在使用 R 3.0.1
**更新**
我什么都没做,现在错误看起来像这样:
> intcox(Surv(tempo2,tempo1,type="interval2")~dados$sexo)
Error in intcox(Surv(tempo2, tempo1, type = "interval2") ~ dados$sexo) :
Invalid cens status
> intcox(Surv(tempo2,tempo1,type="interval2")~sexo, data=dados)
Error in intcox(Surv(tempo2, tempo1, type = "interval2") ~ sexo, data = dados) :
Invalid cens status
最佳答案
对于你的第一个问题,
>intcox(Surv(tempo2,tempo1,type="interval2")~sexo, data=dados) Error in if (any(derivs.wert$g1 <= 0)) { : missing value where TRUE/FALSE needed In addition: Warning messages: 1: In Surv(data$mix, lokal.cens) : Invalid status value, converted to NA 2: In coxph(formula, data) : X matrix deemed to be singular; variable 1
这是因为您的变量是数据框中其他变量的线性组合,这使得 X 矩阵非奇异,正如第二个警告所暗示的那样。
coxph 可以通过将那些变量的系数设置为 NA 来处理这个非奇异问题。然而,不幸的是,这个 intcox 包不是很健壮。一种解决方案是首先使用一些线性模型找出这些变量并将它们从数据框中删除。然后你走吧。
对于你的第二个问题,
> intcox(Surv(tempo2,tempo1,type="interval2")~sexo, data=dados) Error in intcox(Surv(tempo2, tempo1, type = "interval2") ~ sexo, data = dados) : Invalid cens status
可能您没有以正确的方式构建您的数据集。我不能提供更多帮助,因为您没有提供有关变量 tempo1 和 tempo2 含义的更多信息。
关于类型为 'environment' 的 R 对象不可子集化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21477491/