P3-5.1 如何把原始日志转换成可比较的表¶
Section ID:
P3-5.1Version:v2026.09.19
把一次动作定义为样本后,可以按问题用不同方式表示同一批记录。动作内的细节看原始记录,动作间的区段均值差异看摘要表,多次动作的近期状态看汇总表。摘要表只是帮助比较的一种表示,也可以直接比较原始时间序列,或把它们作为模型输入。
从已分配区段的 36 个观测开始¶
虚构流量 CSV 包含 A~F 六次动作的 36 个观测,flow 单位为 L/min。每次动作的 early、mid、late 各有两个观测;A、B、C 属于 baseline,D、E、F 属于 recent。
这个输入已经分配好动作 ID、进度区段和比较分组。本节使用这些分配计算均值,不重新计算区段边界。区段划分标准见 P3-5.4。CSV 没有时间戳或原始进度值,因此仅凭此文件无法验证区段分配是否合理,也无法确定动作时长。
先看 A 的六个观测。(event_id, progress_bin) 是收集观测的分组依据;每个组合出现两次,所以并非单个观测的唯一标识符。
| event_id | window | progress_bin | flow |
|---|---|---|---|
| A | baseline | early | 0.70 |
| A | baseline | early | 0.90 |
| A | baseline | mid | 2.00 |
| A | baseline | mid | 2.10 |
| A | baseline | late | 1.70 |
| A | baseline | late | 1.80 |
先平均同一次动作、同一区段的观测¶
A 的前段均值为 (0.70 + 0.90)/2 = 0.80 L/min,中段为 (2.00 + 2.10)/2 = 2.05,后段为 (1.70 + 1.80)/2 = 1.75。这三个值分别描述 A 的不同区段,不是三个全程均值。
对其他动作使用相同计算,得到下表。一行代表一次动作,可通过 event_id 找回原来的观测组。每个均值的分母是该动作、该区段的两个观测。
| event_id | window | early_flow_mean | mid_flow_mean | late_flow_mean |
|---|---|---|---|---|
| A | baseline | 0.80 | 2.05 | 1.75 |
| B | baseline | 0.80 | 2.15 | 1.65 |
| C | baseline | 0.80 | 2.00 | 1.85 |
| D | recent | 0.95 | 2.45 | 1.85 |
| E | recent | 1.05 | 2.65 | 1.95 |
| F | recent | 1.00 | 2.55 | 1.75 |
例如,这张表可以直接比较 A 与 D 的中段均值。但均值相同,不代表区段内的变化形状相同。A 前段的 0.70、0.90 与 B 前段的 0.80、0.80 均值都是 0.80,观测值却不同。要看变化顺序或瞬间峰值,还需检查原始记录。
再次平均动作均值,得到比较分组的均值¶
现在收集同一 window 内各动作的同一列。基准前段均值为 (A 的 0.80 + B 的 0.80 + C 的 0.80)/3 = 0.80,近期前段均值为 (D 的 0.95 + E 的 1.05 + F 的 1.00)/3 = 1.00。前一次的分母 2 是观测数,这次的分母 3 是动作数,每次动作占相同权重。
| window | member_events | event_count | early_flow_mean | mid_flow_mean | late_flow_mean |
|---|---|---|---|---|---|
| baseline | A, B, C | 3 | 0.80 | 2.07 | 1.75 |
| recent | D, E, F | 3 | 1.00 | 2.55 | 1.85 |
虽然均值列与前表同名,此时描述的却是三次动作而非一次动作。转交为其他文件时,也应保留一行的含义与计算规则。基准中段均值为 (2.05 + 2.15 + 2.00)/3 = 2.0666…,仅在表中四舍五入为 2.07。
前段的近期减基准差值为 1.00−0.80 = +0.20 L/min。这是六次虚构动作中的均值差异,不能直接当作故障或长期变化的证据。每组实际只有三次动作,也不能称作“最近 20 次”。
flowchart TD
A["36 个观测<br/>区段已分配"] --> B["6 条动作摘要<br/>动作内各区段均值"]
B --> C["2 条分组汇总<br/>各动作等权"]
36 个观测→6 行动作→2 行汇总的转换没有重新定义动作样本,而是在不同层级汇总相同的六次动作。如果汇总值异常,可以沿着 window → event_id → progress_bin 的观测 回查哪个值发生了变化。
改变一个值,追踪两步计算的影响¶
保持原始 CSV 不变,假设把 A 前段的 0.90 改为 1.50。请计算 A 的前段均值、基准前段均值,以及近期减基准的差值。
A 变为 (0.70 + 1.50)/2 = 1.10,基准变为 (1.10 + 0.80 + 0.80)/3 = 0.90,差值为 1.00−0.90 = +0.10 L/min。原始值增加 0.60,在动作均值中体现为增加 0.30,在三动作汇总中体现为增加 0.10。近期组与中段、后段值不变。沿着受影响的列,可以把汇总结果追溯到具体观测。
选择让测量点等权,还是让动作等权¶
前面的每次动作、每个区段都有两个观测,因此直接汇集观测求平均也会得到相同结果。观测数不同时则会不同。另设一个虚构案例:X 有两个值为 10 的测量点,Y 有六个值为 20 的测量点。
| 问题 | 计算 | 结果 | 各动作的权重 |
|---|---|---|---|
| 每次动作等权,比较两次动作的平均水平 | (10+20)/2 | 15 | X:Y = 1:1 |
| 计算全部八个测量点的均值 | (2×10+6×20)/8 | 17.5 | X:Y = 2:6 |
第二种计算中,Y 的权重是 X 的三倍,这就是加权的含义。不是测量点均值错误、动作均值总是正确,而是需要根据问题选择分母和权重。如果测量间隔不规则,也不能直接把测量点均值当作时间均值。
如果为 X 再采集四个值为 10 的观测,两种均值会怎样?动作均值仍为 15,测量点均值也变成 (6×10+6×20)/12 = 15。动作本身的水平未变,改变的是测量点数量的比重。不能把 17.5 降到 15 解释成 Y 的状态改善。
检查清单¶
- 能否说明 early/mid/late 是输入中已分配的区段,而非本次汇总新建的区段?
- 能否从 A 的两个前段观测追踪到动作均值和基准均值?
- 能否区分 36 个观测、6 次动作、2 条汇总各自在计数什么?
- 是否算出了 A 的一个观测改变后受影响的列与分组?
- 能否按问题选择 15 或 17.5,并解释各动作的权重?
- 是否记录摘要丢失的信息,以及返回原始记录的路径?
来源与参考资料¶
- W3C,PROV-Overview。为记录处理过程与派生关系提供一般依据。本节的 CSV、区段分配、计算和练习是自行设计的虚构案例,并非 W3C 规定的表转换程序。/ 查阅日期:2026-09-19