R绘制logistic模型calibration plot出现non-numeric argument报错问询
报错原因
classifierplots包的calibration_plot函数对输入的真实标签参数test.y有格式要求,必须是取值为0/1的数值型向量,你当前传入的是因子(factor)类型的标签,函数内部计算颜色透明度参数时误将因子类型变量代入数值运算,才触发non-numeric argument to binary operator报错。
解决方法
将传入的test.y转换为数值型的0/1向量即可,注意不要直接对因子变量执行as.numeric(),否则会默认将因子水平按顺序转为1、2,不符合标签要求,需要先转字符再转数值,示例修正代码如下:
library(tidyverse) library(classifierplots) test.df <- tibble( y = factor(c(0,0,0,0,1,1,0,1,0,1)), pred = c(0.1,0.15,0.2,0.05,0.6,0.7,0.2,0.85,0.1,0.75) ) # 先转字符再转数值,保证标签为0/1的数值格式 calibration_plot( test.y = as.numeric(as.character(test.df$y)), pred.prob = test.df$pred )
如果是处理自有数据,只要提前确认test.y是取值仅为0和1的数值向量,即可正常绘制校准曲线。
内容的提问来源于stack exchange,提问作者jclifto8
相关产品推荐
相关产品推荐

