我使用Harrell'rms'包中的lrm
函数拟合比例赔率回归模型。我想知道如何计算应用于我的拟合模型的外部验证数据集的c-index / Somer's D.可以使用fits.model $ stats直接计算拟合模型的这些统计数据,但我不确定如何将它们用于外部验证数据集。
对于“rms”包中的二进制或生存响应,似乎有内置函数,val.prob
& val.surv
,但我无法找到顺序响应的方法。
答案 0 :(得分:1)
您应该重新阅读lrm
的文档。在该函数中处理序数响应。我使用生成“适合”对象的?lrm中的第一个示例来运行此代码:
pred.logit <- predict(fit)
phat <- 1/(1+exp(-pred.logit))
> str(pred.logit)
Named num [1:1000] NA NA NA 0.234 0.577 ...
- attr(*, "names")= chr [1:1000] "1" "2" "3" "4" ...
> str(fit$y)
Named num [1:997] 0 1 0 1 1 0 0 0 0 0 ...
- attr(*, "names")= chr [1:997] "4" "5" "6" "7" ...
val.prob(phat[-(1:3)], y=fit$y, m=20, cex=.5)
Dxy C (ROC) R2 D D:Chi-sq D:p
2.836172e-01 6.418086e-01 8.959553e-02 6.840647e-02 6.920125e+01 1.110223e-16
U U:Chi-sq U:p Q Brier Intercept
-2.006018e-03 -1.591616e-12 1.000000e+00 7.041249e-02 2.315756e-01 5.977542e-14
Slope Emax S:z S:p Eavg
1.000000e+00 1.956213e-13 -3.813108e-02 9.695832e-01 2.443947e-02
>