SuperAPI AI 工具集

experimental-design

数据与分析

查看项目

更新于 10-23 19:40

技能介绍

Experimental Design 是 Scientific Agent Skills 库中的一个技能,主题是“在收集数据之前”设计实验与研究,包括选择设计、随机化、区组化,以及安排处理组合的结构,使结果可解释、效应可估计。

用途与核心理念

技能指出,研究设计——单位如何分配到条件、什么保持恒定、什么变化、以什么结构变化——决定了数据能回答什么问题;事后分析无法挽救混杂或伪重复的设计。其基础是 Fisher 的三项原则:

  • 随机化:随机分配处理,使已知与未知混杂因素在期望上平衡,从而支持因果推断。
  • 重复:在正确层级进行独立重复,以估计变异;最常见的致命错误是伪重复,即把同一单位的多次测量当作独立重复。
  • 区组化/局部控制:将相似单位(批次、日期、站点、窝)分组并在区组内随机化,把干扰变异从误差项中移除。

主要能力

技能提供设计选择决策树,按研究问题分流:比较少数预设条件时,可选完全随机、随机区组、交叉/重复测量或整群随机设计;筛选大量因子(5 个以上)时,可用部分析因或 Plackett-Burman 筛选;量化少数因子的主效应与交互时,用全 2^k 析因;寻找响应最优设置(存在曲率)时,用响应面设计(中心复合或 Box-Behnken);探索连续空间时,用拉丁超立方等空间填充设计。

技能附带两个脚本:scripts/randomization.py 生成带种子的分配表,提供 simple_randomization、block_randomization、stratified_block_randomization、cluster_randomization、assign_factorial_runs、arm_balance;scripts/doe_designs.py 以真实因子单位生成 DOE 矩阵,提供 full_factorial、two_level_factorial、fractional_factorial、plackett_burman、central_composite、box_behnken、latin_hypercube。DOE 运行顺序默认随机化(拉丁超立方默认不添加 run_order),以减少时间/漂移与因子的系统对齐。

安装方式

uv venv --python 3.13 .venv-design uv pip install --python .venv-design/bin/python "numpy==2.5.3" "pandas==3.0.6" "pydoe==1.5.0"

Windows 下环境解释器为 .venv-design/Scripts/python.exe。文档说明 PyDOE3 已于 2026 年 5 月归档,开发回到 pydoe;附带封装面向 pydoe==1.5.0,以小写 pydoe 导入。文中称所有七个 DOE 封装和两个脚本演示均在 Python 3.13、NumPy 2.5.3、pandas 3.0.6、SciPy 1.18.1 下执行过。建议归档环境版本与导出计划,因为仅凭种子不保证跨包或脚本升级后输出完全一致。

使用方式要点

  • 区组随机化按完整区组边界平衡,最终不完整区组或中途前缀未必满足目标比例。
  • 分层区组随机化在各层内独立平衡;整群随机化以群为分配单位。
  • 序列型分层输入中 unit_id 为原始从 1 开始的位置(含分层交错情形),需用该位置把导出计划与受试者 ID 连接并逐一核对;字典输入创建分组规划槽位而非分配现有名册;缺失分层标签和重复群 ID 会被拒绝。
  • 中心复合设计运行前须检查每个因子实际最小/最大值;默认 face="circumscribed" 会把轴点放到给定低/高设置之外,这些参数并非硬性操作限值。若所给范围是物理极限,应选 face="inscribed" 或 face="faced" 并复查所有组合;不应裁剪超范围行,因为裁剪会改变设计几何与统计性质。
  • CCD 示例保留四个中心运行点以估计纯误差,封装默认只有一个;需确认设置可行、模型矩阵满秩,并有独立重复提供残差自由度。中心点检查总体曲率,但没有轴点或合适运行点时不能识别各二次项。
  • 封装全局打乱;对于裂区、培养板或分批执行的 CCD,应保留区组 ID 并只在允许结构内随机化。

适用场景与限制

适用于规划比较实验或试验时的单位分配、受试者/样本随机化(简单、区组、分层、整群)、通过区组或分层去除干扰变异、多因子析因/部分析因/筛选、连续因子响应优化、受试者内/重复测量/交叉/裂区/拉丁方设计、整群随机设计、确定重复数与避免伪重复、序贯/成组序贯/自适应设计、培养板/批次布局与运行顺序随机化等。

技能本身不实现招募系统,也不对招募者隐藏未来分配;默认种子仅用于演示,真实分配应选择并安全记录研究专用种子。分析阶段需让区组、分层、整群与嵌套结构进入模型,可衔接 statistical-power、statistical-analysis、statsmodels、pymc 等相关技能。文档同时提醒伪重复、干扰变量混杂、随机化缺失或损坏、缺少同期对照、批次效应、培养板边缘/位置效应、部分析因别名结构被忽略、无曲率优化等结构性错误。

跨客户端使用:GitHub Copilot 可放在可见技能路径或用项目指令包装;Claude Code 放在本地 skills 目录或兼容插件源;Codex 同步到 $CODEX_HOME/skills/experimental-design 并在重大变更后重启。无需 MCP 服务器。