COMM5007 Group Assignment|让原始 G0 在整个项目里只读
🔒 先定一条规矩:G0 只读
这份 Group Assignment 我会先从一列数据讲起,就是每条记录的基础血糖 G0。原因其实很简单,整条分析线刚开头,你就会动到它,而你在清理阶段怎么处理它,会一路传到 Feature Engineering、模型比较,再到 presentation 的现场问答。所以读表之后,我会先给自己定一条规矩:原始 G0 只读,任何截断、调整都另开一列。
听起来有点保守,不过放进一个常见场景就好理解了。⚠️ 比如组里负责代码的人看到 G0 有几个偏高、偏低的值,顺手写一句 df['G0'] = df['G0'].clip(...),当场看着很干净。然后过了一周,大家想比较「原始基线」和「调整后基线」两种写法,这时才发现原始值已经找不回来了。
🧹 清理阶段:记录剔除理由,保全 G0 原值
顺着这个规矩,清理阶段的动作就很清楚了。rubric 数据清理那一栏其实写得很直白:Fail 那一档写的是修改原始基线值、导致数据完整性受损,Credit 那一档写的是保留原始 G0,同时派生调整后的变量。两条描述放在一起看,方向也就定下来了。
具体做法分两步。先在读表后立刻复制一份原始 G0 留作对照;再按项目数据说明判断哪些记录需要剔除,并逐类记下理由。示例采用删行处理缺失或无效记录,保留下来那些行的 G0 一个数都不改;其他变量的处理规则仍要看数据字典。
| 清理时的写法 | 对应 rubric 数据清理一栏 | 后面还能做什么 |
|---|---|---|
截断后直接写回 G0 | 落在 Fail 描述:修改原始基线值 | 原始基线失去独立对照 |
原始 G0 不动,调整结果另存 AdjG0 | 对上 Credit 描述:保留原始 G0,同时派生调整变量 | 保留了同样本比较的依据 |
举个练习数据的例子:原表有 360 行,TIR_pct 和 各缺 1 行,还有 1 行禁食时长为负。按这份示例的有效性规则剔除 3 行后,保留 357 行。审计记录逐项写明剔除原因,并用断言确认保留行的 与原表一致。






