2

我对 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

这是什么意思?我能做些什么来规避它?

//M

4

2 回答 2

1

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

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

于 2011-09-17T15:44:50.100 回答
0

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

于 2017-12-12T14:33:12.100 回答