数据基础:从实验台到统计图的底层逻辑

做化学有效性率统计,第一步不是调图表颜色,而是搞清楚你手里拿的是什么数据。我个人习惯先把数据分类整明白,再谈怎么画图。你想想看——把连续数据当成离散数据画柱状图,或者把分类数据当成连续数据算平均值,出来的图不但没法看,结论还可能是错的。

我在项目中遇到过好几回,组里的人拿着 pH 计读数直接当离散值扔进堆叠图,结果趋势线完全乱了,就是因为没区分数据类型。所以这一章咱们好好聊聊:离散、连续、分类这三个数据“性格”,以及怎么把实验台上的原始记录变成干净、可复用的数据集。

化学实验数据的三种“性格”

化学实验数据看着复杂,但按统计特性分,其实就三类。我习惯用生活中的例子来记——离散像“数人头”,连续像“量身高”,分类像“按血型贴标签”。

数据类型 定义 化学实验典型例子 统计处理注意
离散数据 可数整数,取值有限 滴定次数、晶核个数、反应器台数 适用计数模型,不能有小数
连续数据 实数取值,区间内无限可能 温度(°C)、pH、浓度(mol/L) 保留有效数字,区分测量精度
分类数据 定性标签,无大小顺序 催化剂类型、反应成功/失败、晶体形状 编码后用于分组对比

曾经有个坑:我有一版数据把催化剂用量(连续)按“少、中、多”录成了分类,结果用卡方检验分析,显著性全错。记住——分类数据一旦被编码成 0/1,就失去了数值间的真实差距。

连续 vs 离散:不只是“有没有小数点”

很多人觉得连续和离散的区别就是能不能有小数。其实没那么简单。区分的关键是:数值之间的间隔是否有意义。

  • 离散数据:1 次滴定和 2 次滴定,差值 1 有意义,但 1.5 次不存在。画图时常用点图、柱状图。
  • 连续数据:23.5°C 和 23.6°C 都能测出来,差值 0.1°C 有物理意义。画图时常用折线图、箱线图、散点图。

我之前带过一个新人,他把 HPLC 的保留时间(连续)四舍五入到整数当离散数据做卡方,结果组间差异被放大。后来我用原始数据重算了一遍,p 值从 0.03 变成 0.15。所以别为了省事就乱舍入。

我的一个小习惯:每次拿到新数据集,先花 5 分钟列一张“数据类型清单”——把每个字段的名字、类型、取值范围、单位写清楚。这张表就是后续所有统计图的“说明书”。

分类数据的特殊之处

分类数据看起来最“简单”,其实就是贴标签。但要注意:

  • 名义分类:比如催化剂品牌 A/B/C,没有顺序。
  • 有序分类:比如反应剧烈程度“弱/中/强”,有顺序但间隔不等。

处理有序分类时,别随便给它赋值 1、2、3 就当成连续数据算平均值。举个例子:“弱=1,中=2,强=3”,平均值是 2.3——这代表什么?实际上没意义。我一般在可视化时把它保留为分类标签,用堆叠条形图展示比例。

数据的采集与整理规范

数据种类搞清楚了,下一个问题是怎么把实验采集的“毛坯”变成可用的“精装数据”。我总结了一套“三步走”规范,这些年帮团队省了不少返工时间。

第一步:原始记录——写清楚,别涂改

我在职业生涯早期吃过亏——实验记录本上温度写了个“25”,没写单位也没写日期,三个月后谁也说不清是 25°C 还是 25K。从那以后我对原始记录的要求就很严格:

  • 每一条数据必须有时间戳 + 实验员签名
  • 不允许涂改,写错用单横线划掉 + 改后值 + 签名
  • 所有测量仪器必须记录型号和校准日期

第二步:数据清洗——把脏数据挡在门外

原始记录进了电脑,第一件事不是分析,而是清洗。我常用的几个检查点:

  1. 缺失值检查:找到所有空单元格,区分“机械缺失”(仪器没开)和“人为缺失”(漏记)
  2. 异常值检测:用 ±3σ 或 IQR 方法,但别盲目剔除——我曾经差点把一个关键催化剂的“峰值活性”点当成异常扔掉,后来发现是反应条件变了
  3. 格式统一:所有小数点统一保留 2 位?还是按仪器精度留 3 位?定一个规则贴到实验台前

一个实用的模板(Python + pandas 示例):

import pandas as pd

# 读取原始数据
df = pd.read_excel('exp_raw.xlsx')

# 检查缺失
print(df.isnull().sum())

# 标记异常值(以温度列为例,阈值90-110)
outliers = df[(df['temperature'] < 90) | (df['temperature'] > 110)]
print(f"发现异常值 {len(outliers)} 条")

# 单位统一(温度从华氏度转摄氏度)  
df['temperature'] = (df['temperature'] - 32) * 5/9

第三步:数据存档与命名规范

数据整理好之后怎么存?我见过太多“最终版_V3_真的最终版.xlsx”的悲剧。现在团队里统一用这个命名规则:

字段 规则 例子
日期 YYYYMMDD 20250315
实验编号 项目缩写+序号 CAT-013
数据类型 raw / clean / plot CAT-013_clean.csv
版本 v1.0, v1.1 … CAT-013_clean_v1.1.csv

这样一来,任何人拿到文件名都能知道:哪天做的、哪个实验、是不是清洗过、是否最新版。别小看这个,当年我们团队因为文件名混乱重做了一周的分析——确实疼过才知道规范的重要性。

关于电子记录的陷阱:Excel 默认会帮你做“智能转换”,比如把“01-02”自动变成日期。我建议在所有原始数据里先将列格式设为“文本”,录完后再统一转成正确的数值/日期格式。否则你永远不知道 Excel 替你改了哪些值。

数据分类与整理规范流程 原始实验数据 离散数据 连续数据 分类数据 采集规范(原始记录+单位+签名) 整理规范(清洗+命名+格式统一) 提示 分类先行,规范在后 否则清洗时容易混淆

这张图把整个流程串起来了:从原始数据出发,先分清楚离散、连续、分类,再按照统一的采集规范记录,最后用清洗和命名规范整理到可分析的干净数据集。我每次做新项目都把这几个节点贴到白板上,组员做完一步打一个勾,清晰又不容易漏。

总结一句话:数据分类是统计学和可视化之间的“翻译官”,采集规范是保证翻译不跑偏的“校对员”。这两块地基打牢了,后面画什么图都不会慌。