sql - 使用 SQL 计算 ROC
问题描述
我正在尝试使用 MS SQL Server 计算接收器操作曲线 (ROC)。以下是代码。
DROP TABLE #Areas
SELECT CASE WHEN b.sensitivity> a.sensitivity THEN b.sensitivity ELSE
a.sensitivity END * abs(b.specificity-a.specificity)
+ Abs(b.sensitivity - a.sensitivity) * abs(b.specificity.specificity)/2
AS area
INTO #Areas
FROM #SensSpec a inner join #SensSpec b ON b.rnum-1 = a.rnum
我不断收到以下错误:
消息 258,级别 15,状态 1,第 4 行无法调用浮点方法
它在代码“abs(b.specificity.specificity)/2”的这一部分中指的是“b.specificity”。我该如何解决?
解决方案
我不知道b.specificity.specificity
应该是什么。这应该可以解决您的问题:
SELECT ((CASE WHEN b.sensitivity> a.sensitivity THEN b.sensitivity
ELSE a.sensitivity
END) * abs(b.specificity - a.specificity) +
(abs(b.sensitivity - a.sensitivity) *
abs(b.specificity - a.specificity) / 2
)
) AS area
INTO #Areas
FROM #SensSpec a inner join
#SensSpec b
ON b.rnum - 1 = a.rnum;
这不是我计算数据 ROC 值的方式。此计算使用内部连接,因此至少您缺少范围的端点。
我更喜欢使用累积窗口函数的计算。但是对于 Stack Overflow 的答案来说,这个解释有点长。我很少这样做,但我确实在使用 SQL 和 Excel 的数据分析,第二版中涵盖了这一点。
推荐阅读
- c# - EF 在多对多关系中插入记录
- c# - 为什么我的 .cs 表单在打开后不断调整大小?
- jquery - 在文本编辑器中单击时显示警报
- microsoft-cognitive - 计算机视觉识别文本 API 无法识别繁体中文
- javascript - 添加自定义字体大小选项
- typescript - 当使用 jest/ts-jest 在 typescript 中模拟一个类时,我得到“TypeError:“X”。默认不是构造函数。”
- javascript - 如何在 AdonisJS 中使用事务?
- javascript - 使用 JavaScript 打开需要基本 HTTP 身份验证的 URL
- python - 在 python 中同时运行两个程序的最佳方法
- jquery - 何加入新行
在我的 jquery 中标记?