1

我有一个多项模型,nnet:multinom由 26 个变量的 5 个类构成:

mirna_multinom_0 = multinom(formula_0, data= clase_training, maxit=10000 )

然后我创建了我的 ROCS:

multiclass.roc(clase_training$clase, mirna_multinom_0$fitted.values,plot=TRUE)

我绘制的。

pred_test_inter_multinom_5 = predict(interaction_multinom_model_5, newdata = clase_test, "probs")
multiclass.roc(clase_test$clase, pred_test_inter_multinom_5,plot=TRUE)

第一个对比 Ctrl 与 Group1 的图

为了理解它们,我将它存储为一个对象e并调用对比names(e$roc)来查看我的对比。

e = multiclass.roc(clase_training$clase, mirna_multinom_0$fitted.values)
names(e$rocs)

 [1] "Control/Idiop_grave"      "Control/Idiop_leve"       "Control/Isquem_grave"    
 [4] "Control/Isquem_leve"      "Idiop_grave/Idiop_leve"   "Idiop_grave/Isquem_grave"
 [7] "Idiop_grave/Isquem_leve"  "Idiop_leve/Isquem_grave"  "Idiop_leve/Isquem_leve"  
[10] "Isquem_grave/Isquem_leve"

这给了我 2 个图,其中 1 个在 > 方向,另一个在 < 方向。

现在。我可以以某种方式在图中绘制每个对比的标题吗?

而且,有没有一种方法可以为每个 ROC 对比度获得曲线 AUC 下的面积?我只在多项式的消息中获得它。没有 PROC 图。我可以获得多项式 ROC,还是它只是一个没有图形表示的构造?

4

1 回答 1

0

我可以以某种方式在图中绘制每个对比的标题吗?

您需要自己遍历曲线,但可以轻松完成,例如:

for (contrast in names(e$rocs)) {
    plot(e$rocs[[contrast]][[1]], col = "green", main = contrast)
    plot(e$rocs[[contrast]][[2]], col = "blue", add = TRUE)
}

有没有一种方法可以获得每个 ROC 对比度的曲线 AUC 下的面积?

您可以使用该auc功能执行类似的操作:

for (contrast in names(e$rocs)) {
    print(contrast)
    print(auc(e$rocs[[contrast]][[1]]))
    print(auc(e$rocs[[contrast]][[2]]))
}

我可以获得多项式 ROC,还是它只是一个没有图形表示的构造?

这是 Hand & Till 在doi:10.1023/A:1010920819831中描述的 AUC 的一种平均值。没有对应的曲线可以表示。

于 2020-03-25T19:59:18.090 回答