Excel复刻正态概率纸图:中位秩、z值与正态性初判
发布时间:2026/9/30 15:07:44 作者:尧图编辑部 阅读量:1,286

1. 概率纸图到底是个什么东西为什么值得单独折腾一次1.1 从一张看着别扭的散点图说起做质量、可靠性或者实验数据分析的人大概都有过这种时刻手上一组数据想说它是不是长得像正态分布画了直方图看着像那么回事又好像哪里不对算了偏度和峰度数值挂在临界值边上说不清到底算不算过关。直方图最大的问题是它骗人——分组区间一变图形就换了一张脸20个数据分5组还是分7组视觉结论可能完全相反。概率纸图就是为了绕开这个主观性而存在的。它的思路非常朴素正态分布是一个已知形状的模板那就把数据点拉到一张已经被正态分布改造过的坐标系里如果数据真的来自正态分布这些点在图上就会乖乖排成一条直线如果排不成直线那是哪里歪了、歪得厉害不厉害一眼就能看出来。整个过程不需要分组不需要挑组距每一个原始数据都对图有贡献这也是它比直方图更诚实的地方。我最早接触这个概念是在一份质量控制的老教材里概率纸是一张印好的、棕黄色的坐标纸纵轴刻度稀稀拉拉中间宽两边密。后来才发现这东西完全没必要去买Excel里两个公式加一张散点图就能复刻出来而且比纸质版好用得多——可以随数据更新自动重算可以直接把图贴进Word文档做成分析报告的一部分。1.2 概率纸图的纵轴其实是一把变形尺这里必须先把一件事讲透不然后面所有操作都会变成无脑抄公式。普通坐标纸的纵轴是等距的从0到1每0.1一格均匀分布。正态概率纸的纵轴不是这样的它标的是累积概率但物理间距是按正态分布的分位数来铺开的——中间的概率区间0.4到0.6在纸上占的宽度很小两端的概率区间0.01到0.05反而占得很宽。为什么会这样因为正态分布的数据本来就高度集中在均值附近极端值稀少。如果纵轴均匀铺开那么绝大多数点会挤在中间一小块两端几乎空着图完全没法看。把纵轴按分位数拉伸本质是给数据做了一次空间换密度的补偿让累积概率的分布和数据的实际密度对齐。用一句话概括概率纸图的横轴是原始数值纵轴是正态分位数也就是常说的z值而不是概率本身。你看到的纵轴标签写着1%、5%、50%那只是为了让工程师读起来方便它背后的物理坐标其实是 -2.33、-1.64、0 这些z值。这也是很多人第一次自己动手做这张图时最容易翻车的地方——以为要在纵轴上直接填概率数字结果画出来的图不管什么数据都弯成一条弧线。因为Excel的纵轴是线性的你把概率直接填进去就等于用了普通坐标纸当然得不到直线。1.3 这张图适合谁用解决什么问题概率纸图的典型使用场景其实相当集中正态性初判在正式做t检验、方差分析、控制图之前快速看一眼数据是不是近似正态。它不能替代Shapiro-Wilk这类正式检验但胜在直观而且能告诉你哪里不正态。小样本场景样本量只有8个、10个、15个的时候直方图基本没意义众数、偏度都不可靠概率纸图是少数还能提供有效视觉信息的手段。可靠性数据分析寿命、强度、失效时间这类数据很多时候关心的是1%分位点是多少概率纸图可以直接目测读出这个数比反解分布函数快得多。现场快速判断车间里拿到一批新样品不需要开统计软件一张Excel模板拖进数据就出结论这在实操中价值很大。教学与沟通跟不熟悉统计的同事解释什么叫正态画一条直线比讲半天中心极限定理有用一百倍。我自己的用法更偏体检性质任何一组准备做参数检验的数据先扔进这张图看一眼。如果明显是一条直线后面就放心用均值±标准差那套工具如果明显弯了那就老老实实换非参数方法或者先做变换。这个习惯帮我避免过好几次数据不正态还硬做ANOVA的尴尬。2. 用Excel复刻概率纸的底层逻辑与关键选型2.1 为什么选散点图而不是折线图、雷达图Excel里的图表类型看着多真正能当概率纸用的只有散点图XY散点图而且必须是仅带数据标记的散点图这一种。原因很直接只有散点图的两个坐标轴都是数值轴Excel会按照数值的真实大小来定位每个点。折线图看起来也能画但它的横轴默认是分类轴第一个数据点永远落在横轴起点第二个落在第二个刻度跟X值的大小无关。你把排序后的数据画上去X间距全部被拉成等距图形就彻底失真了。雷达图、面积图就更不用提它们连基本的直角坐标系约束都不满足。还有一个细节值得提醒Excel 2013之后的散点图有个带平滑线和数据标记的散点图不要选那个。平滑线会对数据点之间做样条插值在数据稀疏的地方会画出一些根本没发生过的虚拟轨迹看上去像是数据在拐弯实际只是插值算法在画蛇添足。老老实实用直线段或者干脆只留标记。2.2 横轴用原始值纵轴用z值这是唯一正确的做法我把自己试过的三种纵轴方案列个表你就明白为什么只剩一种能用了。纵轴方案具体做法结果是否可用直接填累积概率纵轴放0.05、0.10、0.50等几乎所有数据都画成S形弧线无法判读不可用填概率的百分数形式纵轴放5、10、50同上只是换了量纲不可用填正态分位数z值纵轴放-2.33、-1.64、0、1.64正态数据呈现直线可用用对数或其他变换纵轴放ln(p/(1-p))这叫logit概率纸用于Logistic分布特定场景可用第四行是唯一一个别的方式也行的情况但它的适用对象是Logistic分布或者极值分布跟正态没关系。做可靠性分析的人手里通常有好几套概率纸——正态的、威布尔的、对数的——每种对应不同的分布假设。这篇文章只谈正态概率纸因为它最常用而且用Excel实现起来最干净。顺便说一下用z值当纵轴的另一个好处是你不需要任何辅助刻度也能读懂图。z-1.28对应累积概率10%z0对应50%z1.28对应90%这几个数记住看图的精度就够了。非要精细的话后面我会讲怎么加一列假刻度把概率标签贴上去。2.3 中位秩公式的选择比你想的更重要要把n个数据点放到概率纸上得先给每个点配一个累积概率。做法是把数据从小到大排序第i个数据对应一个经验累积概率。最直觉的写法是 i/n但这个公式有个致命毛病最大值对应的概率是100%正态分位数是正无穷Excel直接给你返回 #NUM! 错误。同理i/n 在第一个点给出的值偏大会让整条线整体偏移。统计学家们为此提出了好几个修正公式常用的有三个简单中位秩$p_i (i - 0.5) / n$最朴素样本量大时和别的公式差别很小。Benard 中位秩$p_i (i - 0.3) / (n 0.4)$工程上用得最多对小样本比较友好。Blom 中位秩$p_i (i - 0.375) / (n 0.25)$在正态分布下的无偏性表现更好。我用得最多的是Benard公式理由很实际它给出的两端概率离0和1还有足够的距离n10的时候第一个点的概率是0.0673z值约为-1.49画在图上位置合理不会跑到图外去。如果用 (i-0.5)/nn10时第一个点是0.05z-1.64n5时第一个点是0.1z-1.28端点数据的权重会被放大看起来像是极端值被高估了。这三个公式之间的差异在小样本时会明显一些样本量超过30以后基本可以忽略。所以如果你只是画个图看看趋势选哪个都行但如果这张图要出报告、要用来估计分位寿命建议统一用一个公式并在图注里写清楚别今天用这个明天用那个同一个数据集得出两个不同结论。3. 手把手从一列原始数据到一张像样的概率纸图3.1 数据准备与排序别在源数据上动手我给自己定了一条规矩源数据只进不改。原始数据永远放在单独一列所有排序、计算都在旁边的区域做。假设你有20个某零件的抗拉强度测量值放在A2:A21。排序有两种做法SORT(A2:A21) // Excel 365 / 2021 的动态数组写法老版本Excel或者需要固定引用的话就在C2输入SMALL($A$2:$A$21,ROW(A1))然后往下拖到C21。SMALL函数的好处是它天然处理并列值不需要担心排序算法把相同值的前后顺序搞乱。数据区域我一般这样排列内容说明A原始测量值只读不动C升序排列后的值 x(i)排序区D秩次 i1、2、3…nE累积概率 p(i)中位秩公式Fz(i)正态分位数提示排序区一定要用绝对引用指向源数据区。我踩过一次坑把公式写在源数据旁边结果插入新行时引用区域跟着漂移整张图的纵坐标全部错位而且图看起来还挺正常直到对照原始报告才发现差了0.3个标准差。3.2 累积概率与z值的计算细节秩次D列最简单D2填1D3填2双击填充柄拖到底或者用ROW(A1)往下拉。E列的Benard公式n放在单元格里单独管理会更好维护。假设B1存了样本量COUNT(A2:A21)(D2-0.3)/($B$10.4)F列就是正态分位数NORM.S.INV(E2)这里有几个必须记住的点第一NORM.S.INV是Excel 2010及以后的函数名旧版本叫NORMSINV。中文版Excel里输入英文函数名照样能用但如果你的文件要给用旧版的人打开写成NORMSINV兼容性更好。两个函数算出来的结果完全一样。第二这个函数的参数必须在0和1之间开区间。传入0或1会返回#NUM!。Benard公式在n≥2时永远不会给出0或1所以是安全的(i-0.5)/n 在n很大时也不会但如果不小心手滑写成 i/(n-1) 之类的就可能撞上端点。第三得到的z值范围大概在±3以内n20时约±1.82这正是概率纸图的常规可视范围。如果你的点跑到了±4以外先检查公式是不是写错了。用前面说的20个数据算出来前几个点的结果大致是这样ix(i)p(i)z(i)148.20.0343-1.821249.10.0833-1.385349.80.1324-1.115450.30.1814-0.910550.60.2304-0.738…………1853.90.86761.1151954.30.91671.3852055.10.96571.821注意看z值是对称的这是Benard公式的必然结果——第i个和第(n1-i)个点的概率加起来正好等于1。如果你的表里不对称说明公式哪里写错了。3.3 插入散点图与坐标轴调整选C列和F列跳过D、E两列没关系用Ctrl键多选插入仅带数据标记的散点图。图出来之后大概率会有几个地方需要修横轴最小值。Excel默认从0开始你的数据可能在48到55之间那样所有点都挤在图的右侧三分之一。双击横轴把最小值设成47或者45.5比最小值略小最大值设成56主刻度单位设2或者2.5。别设成自动自动刻度会随数据变化跳来跳去做报告时图的样子每次都不一样。纵轴范围。固定成-2.5到2.5主刻度单位0.5。这样任何一批新数据画上去坐标尺度都是统一的横向对比几批数据时不会产生错觉。我见过有人让Excel自动缩放纵轴结果两组数据看起来斜率和位置都差不多实际上一组标准差是另一组的1.5倍。网格线。横轴的主网格线保留纵轴的可以留浅灰色。如果这份图要打印出来给别人手绘标注可以再加次要网格线。数据标记。方形或圆形都行大小调到6左右太小看不清太大互相遮挡。颜色用单一深色别用Excel默认的彩色序列——概率纸图只有一个数据系列彩色毫无意义只会让人误以为有分组。去掉图例和标题框。图例只有一个系列时纯属占地方。标题建议在Word里用题注写比在图表里加文本框更容易对齐和管理。3.4 加一条拟合直线顺手把均值标准差算出来图表右键添加趋势线选线性勾上显示公式和显示R平方值。这条线就是正态分布的最佳拟合它有两个非常实用的性质直线与 z0 的交点横坐标就是均值的估计值。因为z0对应累积概率50%而50%分位点就是中位数正态分布下中位数等于均值。直线斜率的倒数就是标准差的估计值。因为从z-1到z1跨越2个标准差横轴对应的跨度就是2σ。如果想在单元格里直接算而不是从图上读数SLOPE(F2:F21, C2:C21) // 斜率 INTERCEPT(F2:F21, C2:C21) // 截距 -INTERCEPT(F2:F21,C2:C21)/SLOPE(F2:F21,C2:C21) // 均值估计 1/SLOPE(F2:F21,C2:C21) // 标准差估计注意SLOPE和INTERCEPT的参数顺序是先y后x写反了不会报错但算出来的斜率和标准差会完全是另一个数而且从图上看还有点像。我第一次做的时候就把顺序写反了估计出来的标准差是0.03跟实际差了20倍幸好拿样本标准差一对照才发现。估计出来的均值和标准差应该跟用AVERAGE和STDEV.S算出来的常规值比较接近。如果差得离谱基本可以断定数据不正态这两套估计量本来就不是一回事。3.5 让纵轴显示出概率标签的取巧办法到这一步图已经能用了但纵轴上的 -2、-1、0、1、2 对不熟悉统计的人不友好。有三种办法可以把它伪装成真正的概率纸办法一手动加文本框。在纵轴刻度旁边贴几个小文本框写上2.3%15.9%50%84.1%97.7%。这是最省事的缺点是数据范围一变刻度位置就得重新贴。办法二用刻度对照表加辅助系列。新建一个小表格列出你要显示的概率刻度和对应的z值概率z值公式0.01-2.326NORM.S.INV(0.01)0.05-1.645NORM.S.INV(0.05)0.10-1.282NORM.S.INV(0.10)0.25-0.674NORM.S.INV(0.25)0.500.000NORM.S.INV(0.50)0.750.674NORM.S.INV(0.75)0.901.282NORM.S.INV(0.90)0.951.645NORM.S.INV(0.95)0.992.326NORM.S.INV(0.99)然后把这一列的z值作为一个新系列加进图表X值统一设为横轴最左端比如47这样所有标签点都贴在左边界上标记设为无只显示数据标签标签内容引用概率那一列。这个办法能自动适应数据变化缺点是横向会占掉一点空间需要把绘图区稍微调整。办法三改纵轴数字格式用自定义格式直接换算。这条路理论上可行但Excel的自定义数字格式只能做线性变换没法把z值转换成概率所以走不通。别在这上面浪费时间。我个人最常用办法二因为做完一次以后就是模板后续直接换数据。4. 图做出来之后怎么读、怎么判断、怎么用4.1 从直线的形状判断哪里不正态概率纸图最有价值的地方是它不仅告诉你是不是正态还能告诉你偏离的方向。把常见的几种形态记下来比记p值有用得多图形特征含义常见原因点近似排成一条直线数据与正态分布相容正常两端同时向上翘中间平缓尾部比正态更薄数据被截断、量程受限两端同时向下弯两端稀疏尾部比正态更厚存在离群值、混合分布整体呈S形分布偏斜存在物理下限如时间、尺寸中间段是直线一端突然折该端混入了另一批数据抽样污染、设备切换分成明显的两簇两个不同总体双班次、双供应商举一个我实际遇到的例子一批表面粗糙度数据概率纸图上左端突然向上翘。查了半天发现是测量仪器的分辨率下限造成的——粗糙度低于某个值之后仪器读不出来全部记为同一个值导致低端数据被堆积。这种情况用任何正态性检验都会报不正态但概率纸图一眼就能看出问题在左端比检验统计量直接多了。4.2 从直线上直接读分位数比反解公式快工程上经常要回答99%的产品强度不低于多少这种问题。用概率纸图直接在图上找到纵轴 z-2.326 的位置水平画一条线到拟合直线再垂直落到横轴读到的数值就是1%分位点。整个过程不需要计算器。当然这种方法在样本量小的时候会低估真实的分位点因为直线端点靠拟合而拟合在端点处的方差最大。我的经验是n20时用概率纸图读5%和95%分位点还算可靠读1%和99%分位点就只能当参考必须配合专门的分布拟合软件比如用极大似然估计拟合正态参数来交叉验证。4.3 R平方值能说明什么不能说明什么Excel趋势线给出的R²是这些点对直线的拟合优度。数值高比如0.98以上通常意味着数据接近正态但这个指标有两个坑第一样本量越大R²越容易高。因为中位秩公式本身在n大时给出的点分布很规律即使数据偏离正态直线拟合也不会太差。n100时R²0.97的一批数据可能比n15时R²0.95的那批更不正态。第二R²高不等于正态。S形曲线用直线拟合R²也能到0.96以上尤其当S的幅度不大的时候。所以别把R²当判据还是要看点的实际形状。我的建议是R²只作为一个辅助数字写在报告里真正的判断依据是图形本身。如果非要量化那就老老实实做Shapiro-Wilk检验或者Anderson-Darling检验这两个对尾部偏离更敏感。5. 常见问题与排查实录5.1 NORM.S.INV报错图表变成一条奇怪的水平线这是新手最常遇到的问题症状是F列出现若干#NUM!图上对应位置的点消失或者丢到图外。原因只有两个参数≤0参数≥1。排查顺序先看E列最小值是不是0或者负数再看最大值是不是1。如果用(i-0.5)/n且n1第一个点就是0.5正常但如果公式误写成i/(n1)且in得到 n/(n1)也不会有问题真正出事的多半是手滑写成i/n这时in的位置就是1必定报错。还有一种隐蔽情况E列引用了空单元格Excel把空单元格当0处理NORM.S.INV(0)同样报#NUM!。如果你的数据中间有空白行整个排序区就会错位。所以排序前一定要用COUNT确认行数。5.2 数据里有重复值图上出现了一串竖直的点并列数据在概率纸图上的表现是相同的x值对应不同的z值于是若干个点垂直叠在一条竖线上。这在计数型、量具分辨率不足的数据里非常常见。三种处理方式一是直接用Benard公式对并列值不敏感竖直的几点不会严重扭曲直线二是把并列值合并成一个点取其平均概率这样图更干净但丢失了样本量信息三是如果并列太多超过20%的数据是同一个值那说明这份数据本身的连续假设就站不住画概率纸图之前该先反思数据采集方式。我在做硬度测试数据时遇到过同一批零件读出来的HRC值有大量重复因为硬度计只能读到0.5个单位。这时候概率纸图上会有很多短竖线读斜率还行读极端分位点就很不靠谱了。5.3 图表不跟着数据更新或者坐标轴范围乱跳Excel图表不更新的原因通常是引用区域被固定死了。如果你插入图表后又在数据区中间插了行图表的引用范围不会自动扩展。解决办法是把数据区做成表格CtrlT图表引用表格名称而不是单元格区域这样增删行都会自动同步。坐标轴乱跳是另一个烦人问题尤其是把图复制到Word里之后。我的做法是所有坐标轴的最小值、最大值、主刻度单位全部手动设定不勾任何自动。横轴按数据量纲固定比如45到56纵轴固定-2.5到2.5。这样无论数据怎么变图的坐标系稳定复制出去也不会变形。5.4 20个点不到就画概率纸图值不值得坦率说n10的时候这张图的诊断价值很有限如果你非要画那至少注意两点一是纵轴范围适当收窄比如固定到-2到2否则少数几个点会散得很开二是别用任何自动拟合目测判断即可。n在10到20之间是概率纸图的甜蜜区既比直方图有意义又不至于让点密到看不清。n超过50以后点会连成一片判断直线与否反而变难这时可以把标记改小、加一点透明度或者干脆改看分位数-分位数图QQ图那个在大样本下更清晰。5.5 概率纸图和其他正态性检验的关系这里必须明确一点概率纸图是探索性工具不是正式检验。它能做的事是发现明显的偏离、定位偏离发生在哪个区间、辅助判断分布形态它不能做的事是给出一个是/否的统计结论。我的常规流程是概率纸图先看如果有明显问题就停下来查数据如果看着像直线再补一个Shapiro-Wilk检验确认两个都过了才用参数方法。如果概率纸图看着就不行那就直接走非参数路线省下检验的功夫。另外别把这张图和QQ图混为一谈。两者思路一致但QQ图的纵轴是理论分位数刻度是均匀的而概率纸图的纵轴本质是正态分位数——所以严格说用z值当纵轴的概率纸图就是一张横轴为原始数据、纵轴为理论分位数的QQ图。这么一想两类工具其实是一回事只是包装不同。6. 模板固化与几个我用了很多年的实操习惯6.1 把它做成一个能反复用的模板这张图值得做成模板因为每次重新搭一遍太浪费时间。我的模板结构是这样的Sheet 输入 A列放原始数据B1放样本量 COUNT(A:A) Sheet 计算 C列排序值、D列秩次、E列概率、F列z值 Sheet 刻度 概率刻度对照表供辅助系列引用 Sheet 图 只放图表不放在计算表里图表单独放一个工作表好处是复制到Word的时候可以直接选图表对象整块复制不会连带着把几百行数据也拖过去。计算表隐藏起来只留输入和图给使用者看。公式全部用结构化引用或者命名区域不用硬编码的$A$2:$A$21。这样换一批数据只需要清空输入列粘贴其他所有东西自动重算。我自己的模板里还给输入列设了条件格式输入非数值时变红避免把文本混进去导致NORM.S.INV报错。6.2 几个从实际踩坑里总结出来的细节第一排序区绝对不要和原始数据区共用一个工作表列更不要就地排序。就地排序会打乱原始记录与时间、批号的对应关系等到发现某个点是异常值想追查来源时已经找不到记录了。我现在的做法是原始数据列旁边永远保留一个序号列任何加工都在别的列做。第二正态分位数函数在小概率端精度会下降。当概率小于1e-4时NORM.S.INV的返回结果会出现明显的数值误差这时候得到的z值不太可靠。所以中位秩公式不要设计得让最小概率低于千分之一样本量特别大比如n2000的时候两端几个点的位置会有偏差。这种大样本场景本来也不适合用概率纸图改用直方图加密度曲线更合适。第三图上别画超过两组数据。很多人喜欢把改进前后两批数据画在同一张概率纸上对比看起来很方便但如果两组数据都符合正态它们在概率纸上都是直线两条直线放在一起谁是谁很容易搞混而且互相遮挡。如果要对比建议分成两张图并排或者把其中一组用空心标记、另一组用实心标记并且明确标注。第四横轴不要做任何变换后再当概率纸用。有些人为了处理偏态数据先取对数再画概率纸图这时候图上的直线意味着对数正态分布不是正态分布。这是完全正当的做法但一定要在图注里写清楚数据已取自然对数否则看图的人会误以为原始数据服从正态。报告里少写这几个字后面可能要花半小时解释。第五把这张图放进Word报告时记得改图注编号。Word的题注功能会自动编号但如果直接复制粘贴图表对象编号不会自动更新需要手动右键更新域。我吃过这个亏一份报告里有两张图的编号都是图3交出去才被发现。现在我的习惯是图表先在Excel里定稿再在Word里用选择性粘贴-图片增强型图元文件粘贴这样既不会随源文件变化排版也稳定。第六别把这张图当成万能的。它只能回答像不像正态回答不了数据是否独立方差是否齐性有没有系统性偏差。这些问题的答案要靠实验设计本身来保证图表再好也只是统计分析链条上的一个环节。我见过有人拿一张漂亮的概率纸图当作全部的质量证据那是本末倒置。我自己在实际操作中的一个体会是这张图真正的门槛不在Excel技巧而在看得懂。公式五分钟就能学会图形判断却需要积累——记住正态数据的点不会端端正正落在直线上样本量二三十的时候两端有点偏离太正常了别一看到弯曲就惊慌。我通常会拿自己熟悉的历史数据集先画一遍把正常长什么样刻在脑子里再去看新数据判断的准确度会高很多。