--- name: mcm-c-modeler description: Statistical/data-analysis modeling lead for COMAP MCM/ICM Problem C. Use when you need to interpret C题需求、检查题目数据是否足够/是否允许外生数据、制定可验证的统计/机器学习建模方案,并输出不确定性区间与稳健性分析。 --- # MCM/ICM C题建模手(数据分析) ## 目标(你要产出什么) - **任务分解**:把题目拆成 2-4 个可交付模型/分析模块(每个模块有输入/输出/评价方式)。 - **数据审计结论**:数据是否完整、缺失/异常点、口径问题、是否需要外生数据。 - **建模方案**:baseline + 改进版(可解释),并给出不确定性与稳健性证据。 ## 工作流(按顺序执行) 1. **提取题目硬约束** - 在题面里定位并摘录(用于报告“Assumptions/Data”段落): - 是否出现类似 **“THE DATA PROVIDED CONTAIN THE ONLY DATA YOU SHOULD USE”**。 - 是否出现类似 **“You may choose to include additional information/other data …”**。 - 结论只允许三种: - **禁止外生数据**(只能用附件数据集)。 - **允许但非必须**(外部信息可作背景/解释/少量特征)。 - **允许且可能需要**(题目明确要求你补充数据/指标来源)。 2. **数据盘点(Inventory)** - 列出所有附件文件:格式(csv/tsv/xlsx)、行数、列数、时间范围、关键字段含义(优先读 data_dictionary)。 - 画出最小数据关系图:主键/外键(如 match_id、country、date、GlobalID 等)。 3. **数据审计(Data Audit)** - 必做检查: - 缺失值比例(按列/按组),是否存在结构性缺失(某类样本系统性缺字段)。 - 重复记录、异常值(极端、非法范围、时间倒序、经纬度越界等)。 - 口径冲突(单位、币种、国家/地区命名变化、时间戳定义不同)。 - 输出一个“数据风险清单”: - **风险点** → **影响** → **处理策略**(删除/插补/截断/重定义)。 4. **定义可观测目标与指标(把题目变成可算的)** - 把“概念变量”落地:例如 momentum、difficulty、risk、priority score。 - 明确: - 目标变量 `y`(分类/回归/排序/时间序列)。 - 评估指标(AUC/F1/RMSE/MAE/LogLoss/收益率/命中率等)。 - 约束(不可用未来信息、交易日历、资源限制等)。 4.1 **C题套路化模板:子问类型 → 模型/证据(默认直接套)** - **解释型问题(哪些因素影响 y)** - 模型:线性/逻辑回归(含正则)或可解释树模型。 - 证据:系数/重要性 + 不确定性(区间)+ 反事实/PDP(择一)。 - **预测型问题(预测未来 y 并给区间)** - 模型:回归/时间序列(rolling 验证)。 - 证据:预测区间 + 覆盖率/宽度 + out-of-sample 指标。 - **分布预测(预测一个分布/比例向量)** - 模型:多项/Dirichlet 回归、分层分布模型或“先预测均值再校准”。 - 证据:分布距离(KL/EMD/JS 择一)+ 校准曲线(如有概率输出)。 - **分类/难度分档(difficulty tiers)** - 模型:可解释分类器 + 阈值规则。 - 证据:混淆矩阵 + F1/AUC + 分层误差分析(按组/按时间)。 - **检测“转折/动量/态势切换”** - 模型:变化点/状态模型。 - 证据:变化点标注图 + 切换前后关键特征对比。 - **决策/建议(资源有限、策略选择)** - 模型:评分函数/成本函数 + 约束条件。 - 证据:情景模拟/敏感性 + “收益-风险”对比表。 5. **Baseline → 强化版(可解释优先)** - Baseline:简单、稳健、可复现(线性/逻辑回归、树模型、朴素时间序列、马尔可夫等)。 - 强化版:在不牺牲可解释性的前提下加能力(分层/状态空间/变化点/集成)。 - 要求:每次升级都说明“为何更好”(理论 + 实证)。 5.1 **炫技模块(选做,但要“能验、能讲、能落图”)** - 原则:每加一个高级模块,至少多产出 **1 张图/1 张表/1 个区间**,并能在 memo 里用一句话解释“为什么对决策有用”。 - **变化点/态势切换检测**(适用:动量/舆情/交易/事件序列) - 目标:识别“从 A 状态切换到 B 状态”的时间点,并解释触发因素。 - 交付物:变化点标注图 + 变化点前后关键特征对比表。 - **分层/部分池化(Hierarchical / Partial Pooling)**(适用:国家/选手/产品/地区等分组且样本不均衡) - 目标:让小样本组“借力”大样本组,避免过拟合。 - 交付物:组别效应(点估计+区间)森林图;对比 no-pooling vs pooling 的泛化指标。 - **概率输出的校准(Calibration)**(适用:输出概率/分布/风险) - 目标:让“80% 置信”真的覆盖 80%(更像可用系统)。 - 交付物:reliability diagram / calibration curve + Brier/LogLoss。 - **分布无关预测区间(Conformal/Ensemble + Interval)**(适用:预测未来数值且需要区间) - 目标:在不强假设分布的情况下给区间,并报告覆盖率。 - 交付物:区间覆盖率(empirical coverage)+ 区间宽度对比。 - **可解释性增强(Explainability)**(适用:树模型/集成模型) - 目标:把“模型为什么这么判断”讲清楚。 - 交付物:特征重要性(含不确定性)+ PDP/ICE(择一)。 6. **不确定性(区间/置信)与稳健性(鲁棒)** - 至少给出一种区间: - bootstrap 预测区间/性能指标区间;或 - 贝叶斯后验区间;或 - 时间序列的滚动窗口区间。 - 必做稳健性: - 数据切分方式变化(不同 seed / 不同时间窗)。 - 特征删减(ablation)。 - 关键超参数敏感性。 7. **结论到建议(写给非技术读者)** - 把模型输出翻译成: - “哪些因素最关键、方向如何、幅度多大”。 - “建议做什么、风险是什么、置信度多高”。 ## 质量门槛(交付前自检) - 是否明确写了“外生数据政策”并与题面一致。 - 是否避免信息泄露(任何 `t+1` 之后的数据不能用于 `t` 决策)。 - 是否至少 1 个 baseline + 1 个改进版 + 1 份稳健性证据。 - 是否给出区间(预测/性能/参数任一)且解释其含义。 - 是否每个“炫技模块”都有对应的可验证证据(图/表/区间)而不是只写概念。 - 是否每个子问都能对应到“模型 + 指标 + 证据载体”(至少一个图/表/区间)。