数据基础:从实验台到统计图的底层逻辑
做化学有效性率统计,第一步不是调图表颜色,而是搞清楚你手里拿的是什么数据。我个人习惯先把数据分类整明白,再谈怎么画图。你想想看——把连续数据当成离散数据画柱状图,或者把分类数据当成连续数据算平均值,出来的图不但没法看,结论还可能是错的。
我在项目中遇到过好几回,组里的人拿着 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。从那以后我对原始记录的要求就很严格:
- 每一条数据必须有时间戳 + 实验员签名
- 不允许涂改,写错用单横线划掉 + 改后值 + 签名
- 所有测量仪器必须记录型号和校准日期
第二步:数据清洗——把脏数据挡在门外
原始记录进了电脑,第一件事不是分析,而是清洗。我常用的几个检查点:
- 缺失值检查:找到所有空单元格,区分“机械缺失”(仪器没开)和“人为缺失”(漏记)
- 异常值检测:用 ±3σ 或 IQR 方法,但别盲目剔除——我曾经差点把一个关键催化剂的“峰值活性”点当成异常扔掉,后来发现是反应条件变了
- 格式统一:所有小数点统一保留 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 替你改了哪些值。
这张图把整个流程串起来了:从原始数据出发,先分清楚离散、连续、分类,再按照统一的采集规范记录,最后用清洗和命名规范整理到可分析的干净数据集。我每次做新项目都把这几个节点贴到白板上,组员做完一步打一个勾,清晰又不容易漏。
总结一句话:数据分类是统计学和可视化之间的“翻译官”,采集规范是保证翻译不跑偏的“校对员”。这两块地基打牢了,后面画什么图都不会慌。