2

lrm我已经使用Harrell 的“rms”包中的函数拟合了比例赔率回归模型。我想知道如何计算应用于我的拟合模型的外部验证数据集的 c-index / Somer's D。这些统计数据可以直接使用 fit.model$stats 为拟合模型计算,但我不确定如何为外部验证数据集获取它们。

val.prob在 'rms' 包&中似乎有内置函数用于二进制或生存响应val.surv,但我找不到序数响应的方法。

4

1 回答 1

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 
> 
于 2013-10-17T17:20:37.557 回答