带有rcs()术语的anova.rms问题

时间:2011-09-17 15:17:14

标签: r regression anova

我在rms包中遇到了anova函数的问题:

require(rms)
getHdata(prostate)

mod1<-cph(Surv(dtime,status!="Alive")~stage+rx+age+wt,data=prostate,x=T,y=T)
mod2<-cph(Surv(dtime,status!="Alive")~stage+rx+rcs(age,4)+wt,data=prostate,x=T,y=T)
anova(mod1)
anova(mod2)

- 一切正常,但当我尝试比较模型的非线性对年龄的影响时

anova(mod1,mod2)

我得到了

Error in anova.rms(mod1, mod2) : factor names not in design:  mod2

这是什么意思?我该怎么做才能绕过它?

//中号

2 个答案:

答案 0 :(得分:1)

您应该能够使用anova(mod2)的输出作为评估重要性的一种方法,但最佳答案是比较-2 * log(似然)统计数据。 anova.rms函数不适用于两种模型拟合。假定第二个和后续的未命名参数是模型中术语的名称而不是拟合对象。

(请注意,对于rcs个术语,您不会看到单个术语的总和等于完整的模型卡方值。我已经向Harrell询问过这个问题并且他说要“手工完成交叉模型比较” ”。)

答案 1 :(得分:0)

这种比较是使用lrtest完成的(根据Misha的评论)。