pROC软件包中的roc()函数-控制和案例及其上下文的使用

时间:2018-07-13 06:13:33

标签: r controls logistic-regression proc roc

有人可以解释R中pROC包的roc()函数中“ Control”和“ Cases”选项的含义以及如何使用它,并检查数据集中没有可用的控件和案例吗?

3 个答案:

答案 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"])

roc() documentation

答案 1 :(得分:0)

在二进制分类中,您总是有两个组。这些组之一将与您要检测的事物对应的观察结果。根据您的研究领域,可以用几种方法来称呼它,但是常用术语包括 hit positive case

通过对比,将没有想要检测的观测标记为阴性 miss control

因此在pROC中,这称为 control case ,但您可以将其视为阴性阳性

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

答案 2 :(得分:-1)

这是与特定情况有关还是与ROC曲线的功能有关? 如果您被困在ROC曲线项目中的R中,请写下代码。当您举一个例子时,更容易解释这一点。