lrm
我已经使用Harrell 的“rms”包中的函数拟合了比例赔率回归模型。我想知道如何计算应用于我的拟合模型的外部验证数据集的 c-index / Somer's D。这些统计数据可以直接使用 fit.model$stats 为拟合模型计算,但我不确定如何为外部验证数据集获取它们。
val.prob
在 'rms' 包&中似乎有内置函数用于二进制或生存响应val.surv
,但我找不到序数响应的方法。
您应该重新阅读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
>