You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求协助计算new_outcome=1时的NPV、PPV、灵敏度、特异度

你的核心问题在于只筛选了new_outcome == 1的子集——计算NPV、PPV、灵敏度、特异度需要同时包含真实阳性(new_outcome=1)和真实阴性(new_outcome=0)的样本,否则无法构建完整的混淆矩阵(缺少真阴、假阴等关键数据)。

正确解决步骤

  1. 基于A、B、C的和生成预测变量(你设定的规则是A+B+C >=2为阳性)
  2. 用完整数据集构建混淆矩阵,明确指定阳性类别避免因子顺序错误
  3. 从混淆矩阵中提取所需指标

具体代码实现

# 1. 生成预测变量
mydata$pred <- ifelse(mydata$A + mydata$B + mydata$C >= 2, 1, 0)

# 2. 转换为因子并指定阳性类别(将1设为阳性)
mydata$new_outcome <- factor(mydata$new_outcome, levels = c(0, 1))
mydata$pred <- factor(mydata$pred, levels = c(0, 1))

# 3. 构建混淆矩阵(注意:data是预测值,reference是真实值)
conf_mat <- confusionMatrix(data = mydata$pred, reference = mydata$new_outcome, positive = "1")

# 4. 提取指标
NPV <- conf_mat$byClass[["Neg Pred Value"]]
PPV <- conf_mat$byClass[["Pos Pred Value"]]
sensitivity <- conf_mat$byClass[["Sensitivity"]]
specificity <- conf_mat$byClass[["Specificity"]]

# 查看结果
cat("NPV:", NPV, "\nPPV:", PPV, "\n灵敏度:", sensitivity, "\n特异度:", specificity)

关键提示

你提供的示例数据中new_outcome全为0,实际运行时如果没有new_outcome=1的样本,灵敏度和PPV会因分母为0无法计算,请确保真实数据集包含两类样本。

内容的提问来源于stack exchange,提问作者이예림

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 07:42:07