今天分享一个实用的六西格玛数据分析工具------用Python计算DPMO和西格玛水平。
在六西格玛项目中,DPMO(每百万机会缺陷数)和西格玛水平是两个核心指标。手动计算不仅繁琐还容易出错,用Python可以批量处理。

核心代码
import numpy as np
from scipy import stats
def calculate_dpmo(defects, units, opportunities_per_unit):
"""
计算DPMO
defects: 缺陷总数
units: 总单位数
opportunities_per_unit: 每个单位的缺陷机会数
"""
dpmo = (defects / (units * opportunities_per_unit)) * 1000000
return dpmo
**def dpmo_to_sigma_level(dpmo):
"""
DPMO转换为西格玛水平(假设1.5倍偏移)
"""
计算合格率
yield_rate = 1 - (dpmo / 1000000)
查找对应的Z值
z = stats.norm.ppf(yield_rate)
加上1.5倍偏移
sigma_level = z + 1.5
return sigma_level**
def sigma_to_dpmo(sigma_level):
"""
西格玛水平转换为DPMO
"""
z = sigma_level - 1.5
yield_rate = stats.norm.cdf(z)
dpmo = (1 - yield_rate) * 1000000
return dpmo
# 示例
defects = 230 # 缺陷数
units = 50000 # 总单位数
opportunities = 3 # 每个单位3个缺陷机会
dpmo = calculate_dpmo(defects, units, opportunities)
sigma = dpmo_to_sigma_level(dpmo)
print(f"DPMO: {dpmo:.2f}")
print(f"西格玛水平: {sigma:.2f}")
print(f"合格率: {(1-dpmo/1000000)*100:.4f}%")
输出结果
DPMO: 1533.33
西格玛水平: 4.48
合格率: 99.8467%
西格玛水平对照表
| 西格玛水平 | DPMO | 合格率 |
|---|---|---|
| 1σ | 691,462 | 30.85% |
| 2σ | 308,538 | 69.15% |
| 3σ | 66,807 | 93.32% |
| 4σ | 6,210 | 99.38% |
| 5σ | 233 | 99.977% |
| 6σ | 3.4 | 99.99966% |
在实际项目中,DPMO和西格玛水平可以帮助我们:
-
量化当前流程质量水平
-
设定改进目标
-
跟踪改进效果
-
与行业基准对比
六西格玛的核心就是用数据说话。DPMO和西格玛水平给了我们一个统一的语言来描述质量。
后续会分享更多六西格玛数据分析工具,包括控制图绘制、过程能力分析等。