2

有人可以解释R 中 pROC 包中的函数controlscases参数的含义roc(),以及如何使用它们吗?如何检查数据集中可用的控件和案例的数量?

4

3 回答 3

2

来自help(roc)

控制、案例 而不是响应、预测变量,数据可以作为两个数字或有序向量提供,其中包含控制和案例观察的预测变量值。

通常在分类设置中使用 roc 曲线,其中您有两个标记类向量(factor()在 R 中),一个是您的预测标签,另一个是事实,每个 obs 都被标记。

其他时候,您可以有一个控制组(如在医学场景中),您可以为函数提供控制(数字向量)或案例(因子向量)。

对照组基本上是不接受治疗的人群。

再次从help功能:

数据可以作为响应,预测器提供,其中预测器是评估信号的数字(或有序)水平,响应编码观察类(控制或案例)。level 参数指定必须将哪个响应级别作为控制(级别的第一个值)或案例(第二个)。当响应编码为 0 和 1 时可以安全地忽略它,但否则它会经常失败。默认情况下,取levels(as.factor(response))的前两个值,忽略其余的levels。这意味着,如果您的响应被编码为“控制”和“案例”,则级别将被反转。

在某些情况下,将数据作为控件传递更方便,情况下,但如果响应,预测器被指定为非空值,则两个参数都将被忽略。也可以使用 density.controls、density.cases 传递密度数据,即使 smooth=FALSE 也会产生平滑的 ROC 曲线,但如果提供了响应、预测变量或控件,则将被忽略。

data(aSAH)
# With numeric controls/cases
roc(controls=aSAH$s100b[aSAH$outcome=="Good"], cases=aSAH$s100b[aSAH$outcome=="Poor"])
# With ordered controls/cases
roc(controls=aSAH$wfns[aSAH$outcome=="Good"], cases=aSAH$wfns[aSAH$outcome=="Poor"])

roc() 文档

于 2018-07-13T08:52:03.657 回答
1

在二元分类中,您总是有两个组。其中一组将对应于您要检测的事物的观察结果。根据您的研究领域,它可以称为多种方式,但常用术语包括hitpositivecase

相比之下,没有您想要检测的观察结果被标记为否定错过控制

因此,在 pROC 中,这称为controlcase,但您可以分别将其视为negativepositive

您无需检查可用的控件和案例的数量。printpROC 会为您进行此项检查,并在您进行曲线时报告实际使用的数字。

于 2018-07-14T16:24:01.717 回答
-1

是关于特定案例还是关于 ROC 曲线的一般功能?如果您在 ROC 曲线项目中卡在 R 中,请写下代码。当你举一个例子时,更容易解释这一点。

于 2018-07-13T08:49:31.363 回答