3

我使用了以下 R 包:micemitoolspROC.

基本设计:在 n~1,000 上缺失数据率介于 5% 和 70% 之间的 3 个预测指标。1 个二元目标结果变量。

分析目标:确定 3 个预测变量中的每一个的 AUROC。

我用这个mice包来估算数据,现在有m个估算数据的数据集。使用以下命令,我可以获得m个数据集的每一个的 AUROC 曲线:

fit1<-with(imp2, (roc(target, symptom1, ci=TRUE)))
fit2<-with(imp2, (roc(target, symptom2, ci=TRUE))) 
fit3<-with(imp2, (roc(target, symptom3, ci=TRUE)))

我可以毫无问题地看到每个m个数据集的估计值。

fit1
fit2
fit3

为了组合参数,我尝试使用 mitools

>summary(pool(fit1))
>summary(pool(fit2))
>summary(pool(fit3))

我收到以下错误消息: "Error in pool(fit): Object has no vcov() method"

当组合来自m个数据集的系数估计时,我的理解是这是系数的简单平均值。但是,误差项更复杂。

我的问题:如何合并“m”ROC 参数估计值(AUROC 和 95% CI 或 SE)以获得对显着性检验/95% 置信区间的误差项的准确估计?

感谢您提前提供任何帮助。

4

2 回答 2

1

我认为以下工作可以结合估计。

pROC 生成 AUROC 的点估计以及 95% 的置信区间。

要结合来自m个插补数据集的 AUROC,只需对 AUROC 进行平均。

为了创建适当的标准误差估计值和 95% CI,我使用标准公式(多重插补常见问题解答)将 95% CIs 转换为 SE ,我计算了估计值的组内、组间和总方差。一旦我有了标准错误,我将其转换回 95% CI

如果有人有更好的建议,我将不胜感激。

于 2014-01-26T19:42:26.680 回答
0

我会使用boot包的引导来评估不同的方差来源。例如,对于归因于插补的方差,您可以使用以下内容:

bootstrap.imputation <- function(d, i, symptom){
    sampled.data <- d[i,]
    imputed.data <- ... # here the code you use to generate one imputed dataset, but apply it to sampled.data

    auc(roc(imputed.data$target, imputed.data[[symptom]]))
} 

boot.n <- 2000
boot(dataset, bootstrap.imputation, boot.n, "symptom1") # symptom1 is passed with ... to bootstrap.imputation
boot(dataset, bootstrap.imputation, boot.n, "symptom2") 
boot(dataset, bootstrap.imputation, boot.n, "symptom3") 

然后你可以做同样的事情来评估 AUC 的方差。估算您的数据,并再次应用引导程序(或者您可以使用 pROC 的内置函数)。

于 2014-02-15T11:22:47.370 回答