build(stage1): create primary outcome response layer

This commit is contained in:
Jinotech
2026-09-20 09:11:16 +12:00
parent 2bc0062aef
commit 89c20f32c7
7 changed files with 435 additions and 7 deletions
+19 -5
View File
@@ -1,9 +1,9 @@
# 项目进度档案
版本:1.14
版本:1.15
建立日期:2026-09-20
当前总状态:`in_progress`
当前阶段:阶段 1 `in_progress`84 个主要结局题目实例与编码/双审包已形成,YRBS 1991–2023 共 17 年完整表均通过来源与值域检查;`responses_long.parquet`设计复核和实际双人审核尚未完成
当前阶段:阶段 1 `in_progress`84 个主要结局题目实例及 919,863 行回答长表已形成并通过结构校验,YRBS 17 年完整表可用;设计复核和实际双人审核尚未完成
## 1. 管理规则
@@ -28,7 +28,7 @@
| 阶段 | 名称 | 状态 | 当前判定 |
|---|---|---|---|
| 0 | 冻结研究问题、范围与版本 | `passed` | 四项交付物齐备,Gate 0 已通过;研究工具链补强与锁定完成 |
| 1 | 有来源证据的题库和回答层 | `in_progress` | 主要结局结构化包已生成,YRBS 2021/2023 已按官方 SAS 布局解除导入隔离;回答长表、设计复核和实际双重审核尚未完成 |
| 1 | 有来源证据的题库和回答层 | `in_progress` | 主要结局题库、回答字典和回答长表已生成并通过结构校验;设计复核和实际双重审核尚未完成 |
| 2 | 可行性、可识别性和连接审计 | `not_started` | 等待 Gate 1 |
| 3 | 冻结验证协议与已知真值模拟 | `not_started` | 等待 Gate 2 |
| 4 | 直接协调和传统基线 | `not_started` | 等待 Gate 3 |
@@ -775,6 +775,20 @@ Gate 0 当前判定:`passed`。四项交付物齐备;目标总体政策、
- 推送状态:`pushed`;研究增量提交 `a6df01d` 已推送至 `origin/main`
- 下一步:用当前题库/回答字典生成跨调查 `responses_long.parquet`,保留 eligibility、observed status 与各类缺失;同时准备实际双人审核安排。
### A-20260920-061:生成并验证主要结局回答长表
- 时间:2026-09-20
- 阶段:1(有来源证据的题库和回答层)
- 动作:行动前完整读取工作流与进度档案并核对干净 Git 状态;以 `item_bank.csv``response_dictionary.csv` 为唯一映射源,流式处理 GSHS,读取 17 个 YRBS 年度完整表,并将 NSDUH 限定为官方 `CATAG2=1`(12–17 岁)青少年,生成 Gate 1 回答长表。
- 输出:新增 `build_responses_long.py``responses_long_manifest.json``responses_long_audit.md`;生成忽略于 Git 的 `Dataset/可直接分析数据包_NSDUH_YRBS/harmonization/responses_long.parquet`
- 检查:输出 919,863 行且“受访者×题目”键 919,863 个,重复为 0;覆盖 80 个有本地回答数据的实例。按调查为 GSHS 64,599、YRBS 764,028、NSDUH 91,236 行,均与从 7 个 GSHS 组件、17 个 YRBS 年度表及 NSDUH 青少年人数独立推导的期望行数一致。867,995 行为有效观测;其余保留为 unknown、refused、dont_know、ordinary_missing 或 data_error;必填标识/状态无空值,所有有效观测均有 canonical response。
- 纳入边界:GSHS 仅含 7 个实际施测组件;YRBS 含 17 个已验证年度;NSDUH 只含 12–17 岁青少年的意念和计划。4 个 `YUSUICTRY` 实例仍在题库但没有回答行,因为公用微数据未提供该字段,未从其他题推导或伪造。
- 可复现性:输出 SHA-256 为 `0260386444fd2d4a9b0183ef79b171b4fa47ab1d7c1706b05619c14cc8f8a197`;生成物由脚本重建,不纳入 Git 大文件历史。
- 工程记录:首次误用系统 Python 导致 DuckDB 不可用,在读取数据前失败;切换到锁定的 `.venv-research` 后完成,记录为已解决 `ERR-20260920-040`
- 质量边界:结构校验通过不等于条目内容双审或抽样设计批准。所有题目仍为 `provisional`Gate 1 保持 `in_progress`
- 推送状态:`push_pending`;完成差异检查、提交和远端推送后更新。
- 下一步:逐调查核验权重、PSU、stratum 和方差方法的官方来源;随后落实两名实际审核者签署。
## 9. 剩余工作量估算(2026-09-20 基线)
| 阶段 | 主要工作 | 预计人周 | 主要波动来源 |
@@ -797,6 +811,6 @@ Gate 0 当前判定:`passed`。四项交付物齐备;目标总体政策、
阶段 1 下一行动:
1. 以题库和回答字典为唯一映射源,为当前可用且通过检查的数据生成 `responses_long.parquet`,显式保存 eligibility、observed status 与缺失类型
2. 复核 GSHS、YRBS、NSDUH 的年度/组件设计字段与官方方差说明,禁止凭字段名推断方差方法
1. 复核 GSHS、YRBS、NSDUH 的年度/组件设计字段与官方方差说明,禁止凭字段名推断方差方法
2. 核对长表各题的阳性/缺失计数与原始审计,形成回答层验收摘要
3. 安排两名实际审核者逐项处理 `primary_outcome_human_review_queue.csv`;审核完成前保持全部主要结局为 `provisional`