背景:
已知一个二分类预测模型和一个用于预测的样本集合 \(\mathbb{S}\),将模型预测结果为阳性的子集记为 \(\mathbb{A}\)。为评价该模型的预测能力,至少需要计算出它在这个样本集 \(\mathbb{S}\) 上的召回率 r 和精确率 p(具体定义和更多评价指标参见:二分类模型常用评价指标)。
但是,由于仅知道 \(\mathbb{S}\) 中阳性样本的规模为 \(N\),而并不知道具体哪些是阳性样本。所以,在样本集 \(\mathbb{S}\) 中随机抽查小规模样本后,人工检验出了 \(n\) 个阳性样本,而在这 \(n\) 个阳性样本中有 \(k\) 个在预测结果为阳性的子集 \(\mathbb{A}\) 之中。

问题:求召回率和精确率95%的置信区间。
一、精确计算方法
1.1 假设
定义:无特别说明,下面以字母代表集合,为方便书写,在参与计算时,字母也代表集合的规模。
假设:集合 \(\mathbb{C}\) 在集合 \(\mathbb{B}\) 中均匀分布(这由题意中的随机抽取小规模样本从式检验来保证),因此,他们在与集合 \(\mathbb{A}\) 取交集之后的比例不变,也即以下等式成立: \[ \dfrac{|A\cap C|}{|A\cap B|}=\dfrac{|C|}{|B|} \]
即:
\[ {\color{blue}|A\cap B|=\dfrac{|B|}{|C|}\cdot |A\cap C|} \]
1.2 计算公式
在计算召回率和精确率的置信区间时,仅关注以下公式中的蓝色部分即可,而黑色部分可以用于参数估计。
召回率为:
\[ {\color{blue}r=\dfrac{|A\cap B|}{|B|}}\xrightarrow{假设条件}\dfrac{|A\cap C|}{|C|} \]
精确率为:
\[ {\color{blue}p=\dfrac{|A\cap B|}{|A|}} \xrightarrow{假设条件} \underbrace{\dfrac{|A\cap C|}{|A|}}_\text{阳性样本子集上的精确率}\cdot\underbrace{\dfrac{|B|}{|C|}}_\text{放大系数} =\dfrac{|A\cap C|}{|C|}\cdot\dfrac{|B|}{|A|}=r\cdot\dfrac{|B|}{|A|} \]
1.3 \(A\cap B\) 的分布律
从以上两公式,可以看出问题的关键是:在已知 \(|\mathbb{A}\cap \mathbb{C}|=k\) 的条件下计算 \(|\mathbb{A}\cap \mathbb{B}|=x\) 的置信区间,即要计算以下条件概率,参考《超几何分布与相关变体》中的第二章有:
\[ P\{|A\cap B|=x \;|\; |A\cap C|=k\}=\dfrac{\binom{x}{k}\binom{N-x}{n-k}}{\binom{N+1}{n+1}} \]
其中,\(|\mathbb{B}|=N\)、\(|\mathbb{C}|=n\)、\(|\mathbb{A}|=M\)。
从两侧分别截掉 2.5% 的 \(x\) 取值的极端情况后,即得到了 \(\mathbb{A}\cap \mathbb{B}\) 两侧概率相等的 95% 的置信区间(当在某一端分布律的和不足 2.5% 时,由另一侧补足,此时两侧概率不再相等)。
二、近似计算方法
当样本量足够大时,不放回抽样可近似为放回抽样,因此,可用以下两种方法计算总体召回率 \(r:=\mathbb{A}\cap \mathbb{B}\div \mathbb{B}\) 的分布和置信区间,进而计算出 \(\mathbb{A}\cap \mathbb{B}\) 的置信区间,再计算精确率 \(p:=\mathbb{A}\cap \mathbb{B}\div \mathbb{A}\) 的置信区间。
2.1 用正态分布近似计算
参考《概率论与数理统计》盛骤,高等教育出版社,第四版,P168
记 \(\overline{X}\) 是 \(|\mathbb{A}\cap\mathbb{C}|\) 在 \(|\mathbb{C}|\) 中的占比,由中心极限定理可得:
\[ \dfrac{n\overline{X}-nr}{\sqrt{nr(1-r)}}\sim N(0,1) \]
则召回率 \(r\) 的置信水平为 \(1-\alpha\) 的置信区间为:
\[ (\frac{-b-\sqrt{b^2-4ac}}{2a},\frac{-b+\sqrt{b^2-4ac}}{2a}) \]
其中,\(a=n+Z_{\alpha/2}^2,\;b=-(2n\overline{X}+Z_{\alpha/2}^2),\;c=n\overline{X}^2\)。
所以 \(\mathbb{A}\cap \mathbb{B}\) 的 \(1-\alpha\) 的置信区间为:
\[ (\frac{-b-\sqrt{b^2-4ac}}{2a}\times|\mathbb{B}|,\frac{-b+\sqrt{b^2-4ac}}{2a}\times|\mathbb{B}|) \]
所以精确率 \(p:=\mathbb{A}\cap \mathbb{B}\div \mathbb{A}\) 的 \(1-\alpha\) 的置信区间为:
\[ (\frac{-b-\sqrt{b^2-4ac}}{2a}\times\frac{|\mathbb{B}|}{|\mathbb{A}|},\frac{-b+\sqrt{b^2-4ac}}{2a}\times\frac{|\mathbb{B}|}{|\mathbb{A}|}). \]
2.2 用 Beta 分布近似计算
参考《高等数理统计》茆诗松,高等教育出版社,第二版,P346
记 \(x\) 表示 \(|\mathbb{A}\cap\mathbb{C}|\) 的数量,\(n\) 表示 \(|\mathbb{C}|\) 的数量,由贝叶斯公式,
\[ r\sim Be(x+1,n-x+1). \]
所以召回率 \(r\) 的置信水平为 \(1-\alpha\) 的置信区间为:
\[ (Be_{1-\alpha/2},Be_{\alpha/2}) \]
其中 \(Be_{\alpha/2}\) 是参数为 \(x+1,\;n-x+1\) 的 Beta 分布的上 \(\alpha/2\) 分位点,即 \(P(x>Be_{\alpha/2})=\alpha/2\),\(P(x\leqslant Be_{1-\alpha/2})=\alpha/2\)。
精确率 \(p:=|\mathbb{A}\cap \mathbb{B}|\div |\mathbb{A}|\) 的 \(1-\alpha\) 的置信区间为:
\[ (Be_{1-\alpha/2}\times\frac{|\mathbb{B}|}{|\mathbb{A}|},Be_{\alpha/2}\times\frac{|\mathbb{B}|}{|\mathbb{A}|}). \]
三、不同方法的比较
(待补充)
四、Mathematica代码
4.1 用精确方法计算召回率和精确率的置信区间(待修正)
定义
1 | (*定义*) |
计算:均值 center,置信区间 left, righ
1 | (*计算:均值 center,置信区间 left, right*) |
绘图
1 | (*绘图*) |
4.2 用正态分布近似计算召回率和精确率的置信区间
通常要求抽样数量至少要大于50(即代码中的nn)。
1 | (*用正态分布近似计算召回率和精确率的置信区间*) |
4.3 用Beta分布近似计算召回率和精确率的置信区间
通常要求抽样数量至少要大于50(即代码中的nn)。
1 | (*用Beta分布近似计算召回率和精确率的置信区间*) |