正态概率图是一种用于评估数据集是否遵循正态分布(也称为高斯分布)的统计工具。
制作过程
收集数据:首先,您需要一组数据点。
模拟数据如下
data =[6.05,5.93,6.02,5.89,5.62,5.58,5.66,5.87,6.01,6.07,5.86,6.17,6.07,5.99,5.87,5.89,6.15,6.49,6.23,6.05,5.87,6.13,6.11,5.99,6.05]
排序数据:将这些数据点从最小到最大排序(Python中用probplot 计算理论分位数,这一步省略)。
计算理论分位数:使用 scipy.stats.probplot 函数,针对正态分布(dist="norm")计算数据的理论分位数。这个函数返回两个数组(理论分位数和实际值)以及一条最佳拟合直线的斜率(slope)、截距(intercept)和相关系数(r)。
(norm_quantiles, actual_values), (slope, intercept, r) = stats.probplot(data, dist="norm")
绘制正态概率图:在图表上,沿着横轴(x轴)放置x值(原始数据),沿着纵轴(y轴)放置理论分位数。
# 绘制实际值对应的累积分布函数值
x = actual_values
y = stats.norm.cdf(norm_quantiles)
# 绘制点
plt.plot(x, y, 'o',color='#0054a6', label='Data Points')
绘制拟合的直线:
# 使用 numpy 的 polyfit 方法从 x 和 y 拟合一条直线
m, b = np.polyfit(x, y, 1)
# 绘制拟合的直线
plt.plot(x, m*x + b, color='#931313' ,label='')
最终得到
同一组数据,我们用minitab实现进行对比
得到下图
可以看出是一样的。
分析图表
直线形态:如果数据遵循正态分布,那么图表上的点将形成接近直线的模式。
偏离直线:如果点偏离直线,表明数据可能不遵循正态分布。点的偏离模式可以提供有关数据偏态或峰态的信息。
完整代码,请在公众号回复“概率图”下载。
我们的简易SPC也一步到位整合在SPC分析报告中,如下图: