R语言报错:plot.window(...)中'ylim'值无效的解决求助
问题根源与解决方案
你的错误核心在于:QQ图、箱线图、Grubbs检验都是为连续数值型变量设计的分析工具,而你的loan_status是二进制分类变量(0/1),用这些方法完全不适用,自然会触发绘图参数错误。
针对二进制响应变量的正确基础分析步骤
对于违约预测的二进制响应变量,你需要聚焦于类别分布分析,而非连续变量的正态性、异常值检测:
检查变量类型与类别完整性
先确认loan_status是否只有0和1两个类别,没有残留的其他取值:# 查看类别及频数 table(dfbm3$loan_status) # 查看占比 prop.table(table(dfbm3$loan_status))可视化类别分布
用条形图替代QQ图、箱线图,直观展示违约与非违约的样本占比:par(mfrow = c(1,1)) # 重置绘图布局 status_counts <- table(dfbm3$loan_status) barplot(status_counts, main = "Loan Status Distribution", xlab = "Loan Status (0 = Non-Default, 1 = Default)", ylab = "Number of Samples", col = c("#1f77b4", "#ff7f0e")) # 添加占比标签 text(x = 1:length(status_counts), y = status_counts + max(status_counts)*0.02, labels = paste0(round(prop.table(status_counts)*100, 1), "%"))逻辑回归的变量准备
确保loan_status被识别为分类因子(逻辑回归对因子型响应变量的处理更规范):dfbm3$loan_status <- factor(dfbm3$loan_status, levels = c(0,1), labels = c("Non-Default", "Default")) # 查看转换后的变量类型 str(dfbm3$loan_status)
为什么原代码报错?
QQ图需要变量服从近似正态分布的数值特征,二进制变量只有两个离散值,无法生成有效的正态分位数对比,plot.window()会因为无法计算合理的ylim范围而报错;箱线图和Grubbs检验同理,针对离散分类变量没有统计意义。
内容的提问来源于stack exchange,提问作者Toly
相关产品推荐
相关产品推荐

