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

质量控制p控制图校准数据呈直线的原因及解读求助

P控制图呈现直线异常的排查与解决

问题背景

使用R语言qcc包绘制p控制图时,Phase 1校准数据的图表呈现直线,但数据库包含数千条非均匀分布的定性变量数据,该表现与RStudio自带的orangejuice示例不符,需排查原因。

重现代码

library(qcc)
## Control Charts

#Phase 1
View(Amostra_Procon)
require(qcc)
attach(Amostra_Procon)
windows()
qcc(Amostra_Procon$NaoAtendidas[Trial], sizes=Size[Trial], type="p")
qcc(Amostra_Procon$NaoAtendidas[Trial], sizes=Size[Trial], type="p", newdata=NaoAtendidas[!Trial], newsizes=Size[!Trial])
#Phase2
qcc(Amostra_Procon$NaoAtendidas[Trial], sizes=Size[Trial], type="p", newdata=NaoAtendidas[!Trial], newsizes=Size[!Trial])

异常原因排查

  • Trial向量取值异常:若Trial是全为TRUE或FALSE的逻辑向量,会导致Phase 1仅选取单一类型的样本;或Trial索引错误,仅筛选出了不合格率完全一致的样本组,最终图表呈现直线。可通过table(Trial)查看分组分布。
  • 变量类型与对应关系错误:NaoAtendidas应为每个样本组的不合格数(整数型),Size为对应样本组的总量(整数型)。若两者的比例NaoAtendidas/Size在所有Phase 1样本中完全相等,会直接生成直线;或变量被误转换为比例值而非计数,导致计算异常。
  • attach()导致变量混淆:使用attach(Amostra_Procon)后,全局环境中若存在同名变量,会导致NaoAtendidas[Trial]与Amostra_Procon$NaoAtendidas[Trial]取到不同数据,进而出现错误图表。
  • 样本分组逻辑错误:若所有数据被当作单个样本组处理,或分组后每组的不合格率完全一致,也会呈现直线。需确认数据是否按正确的批次/组划分。

解决建议

  1. 验证Trial分组有效性
    运行以下代码确认Phase 1的样本数量与分布:

    table(Amostra_Procon$Trial)
    

    确保TRUE对应的样本是多个不同的组。

  2. 检查Phase 1的不合格率分布
    计算并查看不合格率的统计特征,确认是否存在异常:

    p_phase1 <- Amostra_Procon$NaoAtendidas[Amostra_Procon$Trial] / Amostra_Procon$Size[Amostra_Procon$Trial]
    summary(p_phase1)
    table(p_phase1)
    

    若所有p_phase1值相同,需检查数据采集或预处理是否出错;若存在差异,再排查绘图代码。

  3. 移除attach(),使用完整数据框索引
    避免变量混淆,修改代码为:

    library(qcc)
    # 查看数据结构,确认变量类型
    str(Amostra_Procon)
    # 绘制Phase 1控制图
    qcc(Amostra_Procon$NaoAtendidas[Amostra_Procon$Trial],
        sizes = Amostra_Procon$Size[Amostra_Procon$Trial],
        type = "p")
    
  4. 确认qcc包版本
    运行packageVersion("qcc")检查版本,若版本较旧,使用update.packages("qcc")更新后重试。

内容的提问来源于stack exchange,提问作者Flora Rodrigues

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 11:01:34