有人可以解释R中pROC包的roc()函数中“ Control”和“ Cases”选项的含义以及如何使用它,并检查数据集中没有可用的控件和案例吗?
答案 0 :(得分:1)
来自help(roc)
:
控件,案例 可以使用两个数值或有序向量来提供数据,而不是使用预测值作为响应,而包含控制和案例观察的预测值。
通常在分类设置中使用roc曲线,其中有两个带标记的类向量(R中的factor()
),一个是预测的标记,另一个是真值,每个obs都被标记了。
其他时候,您可以有一个对照组(例如在医学场景中),并且可以给该函数一个控件(一个数字向量)或一个案例(一个因子向量)。
对照组基本上是您不接受治疗的人群的一部分。
再次使用help
函数:
数据可以作为响应,预测变量提供,其中预测变量是所评估信号的数字(或有序)电平,响应对观察类别(控件或案例)进行编码。 level参数指定必须将哪个响应级别作为控件(级别的第一个值)或案例(第二个)。当响应编码为0和1时,可以放心地忽略它,但是否则它将经常失败。默认情况下,采用level(as.factor(response))的前两个值,其余的级别将被忽略。这意味着,如果您的回答编码为“控制”和“案例”,则级别将相反。
在某些情况下,将数据作为控件,案例传递更为方便,但是如果将response,predictor指定为非NULL值,则将忽略两个参数。也可以通过带有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"])
答案 1 :(得分:0)
在二进制分类中,您总是有两个组。这些组之一将与您要检测的事物对应的观察结果。根据您的研究领域,可以用几种方法来称呼它,但是常用术语包括 hit , positive 或 case 。
通过对比,将没有想要检测的观测标记为阴性, miss 或 control 。
因此在pROC中,这称为 control 和 case ,但您可以将其视为阴性和阳性。
您无需检查可用控件和案例的数量。 pROC会为您进行此检查,并且在print
曲线时会报告实际使用的数字。
答案 2 :(得分:-1)
这是与特定情况有关还是与ROC曲线的功能有关? 如果您被困在ROC曲线项目中的R中,请写下代码。当您举一个例子时,更容易解释这一点。