我想通过计算方差膨胀因子 (VIF) 来评估 cox 比例风险模型中的多重共线性。{car} 等包中的 vif 函数不接受 coxph 对象。
有没有办法计算 R 中 cox 模型的 VIF?
我想通过计算方差膨胀因子 (VIF) 来评估 cox 比例风险模型中的多重共线性。{car} 等包中的 vif 函数不接受 coxph 对象。
有没有办法计算 R 中 cox 模型的 VIF?
您在上面的评论中非常正确,即 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)