我希望通过计算方差膨胀因子(VIF)来评估Cox比例风险模型中的多重共线性。像{car}等包中的vif函数不接受coxph对象。
是否有一种方法在R中计算cox模型的VIF?
我希望通过计算方差膨胀因子(VIF)来评估Cox比例风险模型中的多重共线性。像{car}等包中的vif函数不接受coxph对象。
是否有一种方法在R中计算cox模型的VIF?
您在上面的评论中非常正确,VIF仅取决于X值。'package:car'中的vif
函数将接受任何响应于vcov
、coef
和model.matrix
的模型,在'package:survival'中应该使用coxph
,因此假设您有一个适合对象,这应该给您结果:
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)
vif
函数。然而,VIF::vif
不会计算方差膨胀因子。 - IRTFM