我正在使用的数据集来自IPUMS的当前人口调查,它具有13个变量的大约1,716,121个观测值。我正在尝试对此数据进行交叉验证,然后绘制结果AUC。
我正在使用的模型是逻辑回归,我的因变量是二进制变量(值为0或1)。每当我运行代码时,都会收到警告:
在bind_rows_(x,.id)中:向量化“标记”元素可能不会保留其属性。
我不确定这意味着什么。
我也收到错误:
select(。,.id,result,pred)中的错误:未使用的参数(.id,result,pred)“
和
summarise_impl(.data,点)中的错误:评估错误:未找到对象“结果”。
如果有人可以帮助我,将不胜感激!
我的代码是:
mod1_formula<-formula("self_employ~
as.factor(educ_level)+
as.factor(SEX)+
as.factor(RACE)+
as.factor(NCHILD)")
cps_data %>%
crossv_kfold(k=2) %>%
mutate(model = purrr::map(train, ~glm(mod1_formula, data=.,
family=binomial))) -> trained.models
trained.models %>%
unnest( pred = map2( model, test, ~predict( .x, .y, type =
"response")) ) -> test.predictions`
trained.models %>%
unnest( fitted = map2(model, test, ~augment(.x, newdata =
.y)),
pred = map2( model, test, ~predict( .x, .y, type =
"response")) ) -> test.predictions
test.predictions %>% select(.id, outcome, pred )
test.predictions %>%
group_by(.id) %>%
summarize(auc = roc(outcome, .fitted)$auc) %>%
select(auc)
gg <- ggplot(data=test.predictions, aes(x= auc))
gg <- gg+geom_histogram()
gg
答案 0 :(得分:0)
基于警告消息,我认为问题是由于ipumsr使用标签值而不是R的因素引起的。特别是,您可能需要在运行回归之前转换为因子,而不是将as.factor
放入公式中((as.factor
也没有得到标签,而是使用as_factor
)。在value-labels
vignette中有更多信息。
我感谢IPUMS许可限制使您很难发布完整的可复制示例,这在这里是社区所期望的(您已经发布了代码,这是很好的第一步,但是如果没有数据,我们将无法完全复制它) 。您可以将少量的行作为子集,以查看是否收到相同的错误消息并发布该数据。否则,如果您发布到IPUMS论坛(http://answers.popdata.org/),IPUMS工作人员可以访问您的摘录,这样可能会更容易,因此您可以更快地获得帮助。