ROC分析当中的AUC和Mann-Whitney U statistic的关系

Receiver operating characteristic (ROC) curve 是在做two group supervised learning非常常用的一个工具。而area under curve (AUC) 又是最常用的一个表述一条ROC曲线的最常用的统计量。

为了更好的说明问题,我们要用到以下这个简单的例子。

  1. 设我们有 N=5 个数据点,可以分成两个组。 第一个组有 n_1 = 3 个数 据点,第二个组有 n_2 = 2 个。
  2. 每个点我们知道两种信息:一个(连续的)观察值,记为 X_i, 一个就是 它的分组,用”0″(第一组)和”1″(第二组)来代表。
    ID X_i Group
    1 0.11 0
    2 0.56 0
    3 1.13 1
    4 2.14 0
    5 2.29 1
  3. 举个例子,假设这两组分别对应于”Normal”和”Disease”。我们希望能从我们 观察到的这5个 X_i 总结出这么一种简单的分类方法:当 X_i > c 我们 判断第 i 个数据点为 “Disease”, 反之则为 “Normal”,这里 c 是一个 可以调整的cutoff point。

显然,在实践中大部分时候我们不可能用这种方法找到 完美 的分类。大一点 的c值就意味着更大可能把本来有病的人误诊为没病(type II error or false negative),但小点的c又会导致一些本来没病的人被误诊为有病(type I error or false positive)。这里的type I/II error是由实践问题的性质所决 定的,光从数学的角度来讲它们完全可以互换。统计上我们一般用false positive rate(记为 fpr, 总type I error数除以 n_1 )和true positive rate(记为 tpr, 正确确诊为病人的数量除以 n_2 )来做ROC图, 也就是说tpr和fpr之间的一种对换关系–你作为一个决策者可以决定你愿意为了 提高一点tpr来付出多少fpr的代价。AUC呢,就是一条ROC curve之下的面积,这 个面积越大越好:因为它说明只要付出很小的fpr的代价就可以换到很高的tpr。

注意,搞工程的人一般不用false positive/negative rate这两个术语,而是习惯用 1-specificity (等于 fpr )和sensitivity(等于tpr)来标记ROC curve。

R 里我们可以用如下命令来做ROC分析,计算AUC:

library(ROCR)

observations <- c(0.11, 0.56, 1.13, 2.14, 2.29)
groups <- c(0, 0, 1, 0, 1)

pred <- prediction(observations, groups)
perf <- performance(pred, "tpr", "fpr")
plot(perf, xlab="1-Specificity", ylab="Sensitivity")

## Wilcoxon rank-sum statistic == 5
wilcox.test(observations[groups==1], observations[groups==0])
## AUC == 5/6, or U/(n1*n2)
performance(pred, "auc")@y.values[[1]]

事实上,AUC和Mann-Whitney U statistic基本上是等价的: AUC = \frac{U}{n_1 n_2}.

之所以有这样的关系,是因为计算AUC的时候我们可以把要求的面积沿着x-轴分成 n_1 等分,第 i 个分割出来的矩形的高度对应当false positive等于 i 时的tpr。

从下面这张图(虚线是我自己加的)看我上面说的关系就很清楚了:

https://qiuxing.files.wordpress.com/2011/01/wpid-roc1.png

计算一个ROC Curve的AUC

有了这个关系,我们很容易就能算出来AUC:
AUC = \frac{1}{n_1 n_2} \sum_{i \in G_1} \left(R_i - i\right) = \frac{W - \frac{n_1 (n_1 + 1)}{2}}{n_1 n_2} .
其中 R_i 是第 i 个数据点在 /全体数据/ 当中的序(rank);求和 运算只对第一组(记为 G_1 ),W是第一组的Wilcoxon rank-sum statistic. 公式右 边正好就是 U/n_1 n_2 (U为 Mann-Whitney U statistic)。

另外还有一个等价,但更加深刻的基于代数的证明。人们很早就知道Mann-Whitney U或 者Wilcoxon rank-sum statistic是连续单调变换群的极大不变统计量(maximal invariant statistic)。换句话说,以下两个条件成立:

  1. 如果我们例子里的全体 N 个X都被转换成了 Y=f(x) ,其中f(\cdot) 是一个连续单调函数,那么通过 Y 算出来的 W 或者 U 还是 原来的值。(the invariance property)
  2. 如果另外还有一组数据 ZU 正好等于等于从 X 求出的值,那么必然存在一个 连续单调变换 g, 使得 g(X)=Z.

而我们很容易通过变量代换来证明AUC也满足这两个性质。所以它们必然存在一一对应关 系和等价的假设检验/classification的判别法。

事实上,不仅仅是sample version的AUC有这个性质,连population的AUC,定义为 AUC = \int_{\mathbb{R}}(1- F_2(x)) d(1-F_1(x)) 一样满足上面的这两个性质(可以通过 Radon-Nikodym定理严格证明)。具体这个性质是否有实际用处我就不知道了,:-)

,

  1. #1 by xiao2er on 一月 3, 2011 - 7:55 下午

    Hi Qiuxing, I have been reading your blog through Google reader and really like it. Great job!
    Just to let you know that there is some change recently (probably today) in your feed has messed up the format (everything shows in a chunk without paragraph or line break) and marked all posts as new in Google reader. Is this something you could fix? Thanks.

    • #2 by qiuxing on 一月 4, 2011 - 5:53 上午

      I xiao2er, thanks for pointing out this aberration to me! I have subscribed my own blog via Google Reader and noticed the same technical difficulty. Btw, I am a heavy google reader user, but until today I have not subscribed my own blog in my google reader :-)

      What might be the cause I think, was the fact that when I migrated from the LiveJournal, WordPress assigned all my older posts as “Uncategorized” posts. This morning I took sometime and pain to manually assign the right categories to all these posts, as a result google reader might think every post was a new one.

      As for the messed-up html formats, I have no idea. As you may have noticed, I use html formats and WordPress keywords (like the source code, inline LaTeX, etc) rather extensively. Some of these features might have confused google reader I guess.

  2. #3 by xiao2er on 一月 4, 2011 - 7:07 下午

    The new blog you posted today shows up all right in Google Reader, so there is no need to worry about the format anymore. Thanks.

  3. #4 by Ling on 四月 28, 2011 - 2:41 下午

    你提到:AUC和Mann-Whitney U statistic基本上是等价的

    “基本上” 是指只是approximate 吗? 可以证明严格相等吗?谢谢!

    • #5 by qiuxing on 五月 16, 2011 - 4:35 下午

      给定两个group的sample size之后就是是严格意义上的一一对应。AUC和U statistic只相差一个乘数(U*n1*n2==AUC)而已。证明就在这篇文章里啊,呵呵。

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: