3

我想通过计算方差膨胀因子 (VIF) 来评估 cox 比例风险模型中的多重共线性。{car} 等包中的 vif 函数不接受 coxph 对象。

有没有办法计算 R 中 cox 模型的 VIF?

4

1 回答 1

4

您在上面的评论中非常正确,即 VIF 仅取决于 X 值。'package:car' 中的vif-function 将接受任何响应vcov,的模型coef,并且model.matrix应该coxph在 'package:survival' 中发生,所以假设你有一个 fit-object,这应该会给你结果:

library(survival)
library(rms)  # one possible source for a `vif`-function .... there are many
cvif <- vif(  testfit1  ) #assumes testfit from :  lrm, ols, psm, cph, Rq, Glm, glm

(尚未测试,因为您没有提供任何工作示例。)

这是在复制另一个问题中的示例并修改以构造“coxph”对象之后的测试用例构造:

treatment <- factor(rep(c(1, 2), c(43, 41)), levels = c(1, 2), labels = c("placebo", "treated"))
improved <- factor(rep(c(1, 2, 3, 1, 2, 3), c(29, 7, 7, 13, 7, 21)), levels = c(1, 2, 3), labels = c("none", "some", "marked"))
numberofdrugs <- rpois(84, 5)+1
healthvalue <- rpois(84,5)
y <- data.frame(healthvalue,numberofdrugs, treatment, improved)

testfit1 <- coxph(Surv(healthvalue, rep(1,nrow(y) ) ) ~numberofdrugs+treatment+improved, data= y)
于 2015-08-15T00:18:13.940 回答