3. 描述性统计分析:集中趋势、离散程度、分布形状与数据可视化

各位工程师朋友,大家好。今天我们聊聊描述性统计分析。说白了,就是拿到一堆可靠性数据后,怎么用几个数字和几张图,快速摸清这批数据的“脾气”。我做了十几年可靠性,见过太多人一上来就套复杂模型,结果数据本身有没有问题都没搞清楚。嗯,咱们先打好基础。

核心思想:描述性统计不是做决策,而是帮我们“看清”数据。它是所有后续推断、建模的起点。

3.1 集中趋势:数据往哪儿“聚”

集中趋势回答一个问题:这批数据典型的、有代表性的值是多少?常用的有三个指标。

3.1.1 均值(Mean)

就是算术平均。把所有失效时间加起来,除以样本量。公式很简单:

μ = (x₁ + x₂ + ... + xₙ) / n

但我得提醒你,均值对异常值非常敏感。我在项目中遇到过一批轴承寿命数据,大部分在2000小时左右,结果有一个样品因为安装不当,只跑了50小时就坏了。均值一下子被拉低了很多,差点误导我们以为产品有问题。所以,均值适合数据比较“干净”、没有极端值的情况。

3.1.2 中位数(Median)

把数据从小到大排好,最中间那个数。如果样本量是偶数,取中间两个数的平均值。

中位数有个好处:它不怕异常值。还是刚才那个轴承的例子,中位数基本不受那个50小时的影响,能更真实地反映“大多数产品能跑多久”。我个人习惯,在可靠性数据分析中,尤其是样本量不大时,会同时看均值和中间位数。如果两者差很多,说明数据里有“故事”。

3.1.3 众数(Mode)

出现次数最多的那个值。在连续型数据中,众数可能不那么明显,但在离散型数据或分组数据中很有用。比如,我们统计一批电阻的阻值,发现1kΩ这个值出现频率最高,那众数就是1kΩ。

我的小技巧:当数据分布不对称时,中位数比均值更能代表“典型值”。比如电子产品早期失效期,数据往往左偏,这时候看中位数更靠谱。

3.2 离散程度:数据有多“散”

光知道集中趋势还不够。两个批次的均值可能一样,但一个批次数据很集中,另一个很分散。离散程度就是衡量这个的。

3.2.1 极差(Range)

最大值减最小值。最简单,但也最粗糙。它只用了两个极端值,中间的数据分布情况完全不管。我一般只在快速检查时用一下。

3.2.2 方差(Variance)与标准差(Standard Deviation)

这是最常用的。方差是每个数据与均值差的平方的平均值。标准差是方差的平方根,单位跟原始数据一致,更好理解。

样本方差 s² = Σ(xᵢ - x̄)² / (n - 1)
样本标准差 s = √s²

注意分母是n-1,不是n。这是为了用样本估计总体时更准确,叫“无偏估计”。

标准差越小,说明数据越集中,产品一致性越好。我在做可靠性增长试验时,会特别关注标准差的变化。如果随着试验进行,标准差在缩小,说明工艺在稳定,这是个好信号。

避坑指南:我曾经犯过一个错——直接用总体方差公式(分母为n)去算样本方差,结果估计出来的总体方差偏小。后来做置信区间时发现怎么都对不上。记住,只要你是用样本推断总体,就用n-1。

3.3 分布形状:数据长啥样

集中趋势和离散程度描述了数据的位置和宽度,但形状也很重要。两个数据集可能有相同的均值和标准差,但一个对称,一个偏斜,那背后的失效机理可能完全不同。

3.3.1 偏度(Skewness)

衡量数据分布不对称的程度和方向。

  • 正偏(右偏):尾巴拖在右边。均值大于中位数。常见于早期失效期,大部分产品寿命长,少数短命。
  • 负偏(左偏):尾巴拖在左边。均值小于中位数。常见于耗损失效期,大部分产品寿命到了,少数长寿。
  • 零偏:对称分布。比如正态分布。

偏度的绝对值越大,不对称越严重。一般|偏度| > 1,就算明显偏斜了。

3.3.2 峰度(Kurtosis)

衡量数据分布的“尖峭”或“平坦”程度,说白了就是尾巴有多厚。

  • 高峰度(尖峰):数据集中在均值附近,但尾巴厚,极端值多。比如某些电子元件的突发失效。
  • 低峰度(平峰):数据分布比较均匀,尾巴薄。
  • 常峰度:跟正态分布一样,峰度值为3(有些软件会减去3,得到超额峰度)。

峰度大,意味着你要小心极端值。我在做加速寿命试验时,如果发现峰度异常高,会先检查是不是有测试错误,或者是不是有新的失效模式出现了。

一句话总结:偏度看左右不对称,峰度看尾巴厚不厚。这两个指标能帮你判断数据是否适合用正态分布建模。

3.4 数据可视化:一图胜千言

数字再精确,也不如一张图直观。我每次拿到新数据,第一件事就是画图。这里介绍两个最常用的。

3.4.1 直方图(Histogram)

把数据分成若干区间,每个区间画一个柱子,高度表示落在该区间的数据个数或频率。

直方图能直观展示数据的分布形状:是单峰还是双峰?对称还是偏斜?有没有异常间隔?

举个例子,我做过一批继电器的失效时间分析。直方图画出来是双峰的,一个峰在1000小时,一个在5000小时。后来一查,原来是两个不同供应商的批次混在一起了。你看,一张图就发现了问题。

# Python示例:画直方图
import matplotlib.pyplot as plt
import numpy as np

# 模拟一批失效时间数据(单位:小时)
data = np.random.weibull(1.5, 100) * 1000

plt.hist(data, bins=15, edgecolor='black', alpha=0.7)
plt.xlabel('失效时间 (小时)')
plt.ylabel('频数')
plt.title('失效时间直方图')
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.show()

3.4.2 箱线图(Box Plot)

箱线图展示五个统计量:最小值、第一四分位数(Q1)、中位数、第三四分位数(Q3)、最大值。箱体从Q1到Q3,中间一条线是中位数。箱体外的“须”延伸到非异常范围内的最远点,超出须的点就是异常值。

箱线图的优势在于:

  • 可以同时比较多个组的数据。
  • 能清晰识别异常值。
  • 不受极端值影响,稳健性好。

我在做不同温度下的可靠性对比时,最喜欢用箱线图。把25℃、50℃、75℃三组数据并排画出来,中位数、离散程度、异常值一目了然。

# Python示例:画箱线图
import matplotlib.pyplot as plt
import numpy as np

# 模拟三组数据
data1 = np.random.normal(1000, 100, 50)
data2 = np.random.normal(1200, 150, 50)
data3 = np.random.normal(800, 200, 50)

plt.boxplot([data1, data2, data3], labels=['25°C', '50°C', '75°C'])
plt.ylabel('失效时间 (小时)')
plt.title('不同温度下的失效时间箱线图')
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.show()

我的习惯:先画直方图看整体形状,再画箱线图看细节和异常值。两个图配合使用,基本能摸清数据的底细。

3.5 知识体系总览

下面这张图,把本章的核心逻辑串起来了。你可以把它当作一个检查清单:拿到数据后,按这个顺序走一遍,心里就有数了。

描述性统计分析知识体系 原始数据 集中趋势 均值(易受异常值影响) 中位数(稳健,不怕异常值) 众数(出现频率最高) 离散程度 极差(简单但粗糙) 方差(平方单位,难解释) 标准差(单位一致,最常用) 分布形状 偏度(左偏/右偏/对称) 峰度(尖峰/平峰/常峰) 数据可视化 直方图(看分布形状) 箱线图(看异常值)

好了,这一章的内容就这些。记住,描述性统计不是终点,而是起点。把数据看透了,后面的建模、推断才能站得住脚。下次拿到数据,别急着跑模型,先画两张图,算几个数,跟数据“聊聊天”。


专注资料整理