You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言报错:plot.window(...)中'ylim'值无效的解决求助

问题根源与解决方案

你的错误核心在于:QQ图、箱线图、Grubbs检验都是为连续数值型变量设计的分析工具,而你的loan_status是二进制分类变量(0/1),用这些方法完全不适用,自然会触发绘图参数错误。

针对二进制响应变量的正确基础分析步骤

对于违约预测的二进制响应变量,你需要聚焦于类别分布分析,而非连续变量的正态性、异常值检测:

  1. 检查变量类型与类别完整性
    先确认loan_status是否只有0和1两个类别,没有残留的其他取值:

    # 查看类别及频数
    table(dfbm3$loan_status)
    # 查看占比
    prop.table(table(dfbm3$loan_status))
    
  2. 可视化类别分布
    用条形图替代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), "%"))
    
  3. 逻辑回归的变量准备
    确保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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 19:31:22