2

嗨,我正在使用 R 库

library(pROC)
library(ff)
library(ffbase)
library(biglm)

以下代码使用 ffdf 大数据框生成逻辑回归模型并计算 ROC 曲线下的面积:

mymodel <- bigglm(outcome~x1+x2+x3,family=binomial("logit"),data=myffdf,maxit=20)
summary(mymodel)
pred <- predict(mymodel,myffdf,type="response")
rocobj <- roc(myffdf$outcome, pred)

我收到以下错误:

Error in opsff_compare_logic(x, y, "|") : 
operator requires length 1 for e2, recycling not possible

感谢您对如何获得 AUC 的任何建议。

4

2 回答 2

2

这将起作用:

roc(myffdf$outcome[], pred)

注意方括号。

感谢 user20650 和 JVL

于 2014-06-11T07:36:47.137 回答
1

该函数pROC::roc尝试检查myffdf$outcomepred使用以下行中的 NA:

nas <- is.na(response) | is.na(predictor)

但是一看ffbase::opsff_compare_logic就会发现,一个ff_vector对象只能与另一个ff_vector对象或长度为 1 的向量进行比较。所以错误发生的原因myffdf$outcome是 是ff_vector,但pred不是 并且长度 > 1。

一个可能的解决方案可能是调用

rocobj <- roc(myffdf$outcome, as.ff(pred))

反而。

于 2014-06-09T20:08:54.760 回答