尧图精选

实验设计类型与重复结构完全指南:从随机区组到伪重复,构建可解释的实验方案

🕒 发布时间:2026/9/11 6:49:54 📁 来源:尧图网络
实验设计类型与重复结构完全指南从随机区组到伪重复构建可解释的实验方案【免费下载链接】scientific-agent-skillsTurn any AI agent into an AI Scientist. The #1 Agent Skills library for science, used by 190,000 scientists worldwide. 165 ready-to-use validated skills plus 100 scientific databases covering biology, chemistry, medicine, and drug discovery. Compatible with Cursor, Claude Code, Codex, Pi, Antigravity, and the open Agent Skills standard.项目地址: https://gitcode.com/GitHub_Trending/cl/scientific-agent-skills实验设计决定了数据能回答什么问题——分析无法挽回一个在数据收集之前就已错误的设计。本文聚焦 scientific-agent-skills 仓库中 experimental-design 技能的核心参考文档 design_types.md系统讲解从完全随机设计到嵌套设计这一族经典结构每种设计的适用场景、随机化与重复单元、分析模型要求并用完整篇幅拆解实验生物学中最常见且最具破坏性的设计错误——伪重复pseudoreplication。读完本文你将能根据问题与单元结构选出正确设计、识别重复的正确层级、并用仓库内置脚本生成可复现的随机化方案与设计矩阵。实验设计技能的流程总览随机化与区块blocking作为输入randomization.py 与 doe_designs.py 生成设计方案伪重复识别与单元合并贯穿始终图片来源docs/images/experimental-design.png。选择设计结构的核心原则选择正确的设计结构本质上是让随机化单元与重复单元匹配你的科学问题并在分析中尊重任何嵌套结构。设计类型的选择不应当从最喜欢的实验设计出发而应从研究问题和单元结构出发。仓库中 SKILL.md 给出了 Fisher 三大设计原则它们是理解下文所有设计类型的底层框架随机化Randomization——将处理随机分配给单元使已知与未知混杂因素在期望上均衡这是把比较变成因果主张的关键重复Replication——在正确的层级进行独立重复使你可以估计变异性最常见的致命错误是伪重复——把同一单元上的重复测量当作独立重复区组化/局部控制Blocking / local control——将相似单元按批次、日期、窝次分组并在组内随机化把干扰变异从误差项中剔除。围绕这一原则design_types.md 文档将标准设计结构分为六大类以下逐一展开。完全随机设计Completely Randomized Design核心思路单元被纯随机地分配到处理组不做任何区组划分。适用场景单元间同质homogeneous不存在可识别的干扰因素nuisance factor。这是最简单的设计分析时使用单因素方差分析one-way ANOVA或回归即可。关键注意事项如果单元不同质干扰变异会膨胀误差项——此时应当改为区组设计而非继续使用完全随机设计。换句话说完全随机设计以单元同质为前提假设一旦这个假设不成立误差估计就会被污染处理效应的检验功效也随之下降。随机完全区组设计Randomized Complete Block Design, RCBD核心思路将单元按相似性归入区组block——例如同一天、同一批次、同一窝次——并在每个区组内部随机化所有处理。每个处理在每个区组中恰好出现一次。为什么有效区组间的变异被从误差项中移除当区组之间确实存在差异时处理比较的精度会显著提升。分析时在模型中加入treatment block两项。定位这是完全随机设计的默认升级方案——只要存在任何可识别的干扰因素就应优先考虑区组设计。仓库的 randomization_and_blocking.md 进一步给出了区组的判定标准对任何(a)能在实验前识别、(b)预计会影响响应但本身不是研究兴趣的因素进行区组——时间天、周、批次、空间板、板边缘、笼架、材料试剂批次、窝次、细胞传代、人员/仪器操作者、机器、测序批次并遵循能区组就区组不能区组就随机化的原则。源码佐证区组随机化的实现位于 randomization.py 的block_randomization函数——每个区块内各 arm 按指定比例出现块内顺序被洗牌block_size必须是比例单元之和的倍数。配套测试 test_scripts.py 中的BlockRandomizationTests验证了该设计的核心承诺每个完整区块严格平衡24 个单元、区块大小 4 时每区块恰好 2 治疗 2 对照并且平衡贯穿入组全程而非仅最终结果。拉丁方设计Latin Square核心思路用方形布局同时控制两个干扰因素每个处理在每一行和每一列中都恰好出现一次。经典用法行 天day列 位置/顺序position/order单元格 处理。约束条件处理数 行数 列数假设区组因素与处理之间无交互。适用场景两个干扰维度都重要、且实验运行次数有限时拉丁方非常高效。Graeco-Latin 方希腊-拉丁方将其扩展到控制三个干扰因素。重复测量与交叉设计Repeated-Measures and Crossover核心思路每个受试者接受不止一种条件充当自身的对照。这移除了受试者间变异——通常也是最大的噪声来源——因此这类设计在每受试者上的功效远高于独立单元设计。重复测量Repeated measures同一单元在多种条件下或在时间上被重复测量交叉设计Crossover每个受试者按顺序接受每种处理处理之间设有洗脱期washout以清除残留效应。受试者被随机分配到处理顺序——例如 AB/BA 交叉或 ≥3 种处理时使用 Williams 方以平衡顺序。必须警惕的三类风险残留/延续效应Carry-over / residual effects——前一处理的效果持续影响下一阶段。充分的洗脱期至关重要否则设计产生偏倚时期效应Period effects——随时间发生的系统性变化学习效应、疲劳、疾病进展。平衡的顺序让你能把时期效应与处理效应分离受试者内相关性Correlation within subject——重复观测并不独立分析必须对其建模混合模型 / 重复测量 ANOVA。这类设计的样本量与功效取决于受试者内相关性——应使用本仓库的 statistical-power 技能进行模拟。裂区设计Split-Plot Designs核心思路当某些因素难以改变应用于大单元而另一些因素易于改变应用于子单元时产生。难变因素被随机化到整区whole plot易变因素被随机化到每个整区内的子区subplot。经典例子烤箱温度整区——无法针对每个样本重设× 涂层类型子区——可逐样本施加。关键陷阱裂区设计存在两个不同的误差项——一个用于整区因素一个用于子区因素——分析必须同时使用两者。若把裂区设计当作完全随机析因处理会得到错误通常是反保守/宽松即假阳性率偏高的整区因素检验。工业 DOE 与农业试验中充满了意外的裂区结构识别某个因素无法逐次重置是应用本设计的前提。集群/群随机化设计Cluster / Group-Randomized Designs核心思路当干预施加给一个群体诊所的规程、教室的课程、村庄的供水时只能在群体层面随机化。集群是随机化单元且由于集群内成员相互关联它实质上也是重复单元。关键要点功效取决于集群数量而非个体数量并受**组内相关系数Intraclass Correlation, ICC**影响。向已有集群中增加人员的效果远不如增加集群数量**设计效应Design effect**公式DEFF 1 (m − 1)·ICCm 为集群大小量化了有效样本量缩水多少——即使 ICC 很小大集群也会付出惨重代价。此类设计应通过模拟进行功效计算见 statistical-power分析必须采用考虑聚类的统计方法带集群随机效应的混合模型或 GEE。把个体当作独立观测分析就是伪重复。源码佐证randomization.py 中的cluster_randomization函数直接体现集群是单元这一原则——它对集群列表整体做随机化返回的是每个集群一行不含unit_id列并通过对集群进行区组来保证各 arm 平衡。测试 test_scripts.py 的ClusterTests验证了这一点4 个诊所得到 4 行结果8 个集群在区块大小 4 时严格得到 4 治疗 4 对照。嵌套设计与伪重复Nested Designs and Pseudoreplication这是整个 design_types.md 文档着墨最深、最核心的议题。什么是伪重复伪重复是把非独立的测量当作独立重复。它是实验生物学中最常见、最具破坏性的设计错误而且无法在数据收集之后修复——只能在正确的层级进行设计和分析。核心原则重复单元就是处理被独立施加并随机化到的那个层级。在该层级之下的测量属于技术重复technical replicates——它们提高单个单元数值的精度但不会为检验处理效应增加自由度。经典工作示例务必内化场景真正的 n原因每处理 1 个培养皿拍摄 50 个细胞每处理 n 1处理施加在培养皿层面50 个细胞只是描述这一个皿不是 50 次独立检验每组 3 只小鼠每只取 100 个细胞n 3小鼠处理施加给小鼠应在鼠内取平均或用小鼠作随机效应的混合模型一缸鱼给予某饲料测量每一条鱼n 缸数饲料随机化到缸层面共享的水、温度与社会效应使缸内鱼相互关联同一受试者随时间重复测量受试者是重复单元时间点嵌套于受试者内如何避免伪重复三步法识别实验单元——处理水平被独立、随机分配到的最小物理实体在该层级重复——增加独立处理的单元数而不是增加每个单元上的测量数技术重复可以降低测量噪声分析时尊重嵌套——将数据平均到单元层级或拟合带随机效应的混合模型细胞嵌套在小鼠内、鱼嵌套在缸内、时间嵌套在受试者内。这样对固定效应处理项的检验才能使用正确的、更大的误差与正确的自由度。技术重复仍然值得采集——它们能锐化每个单元的估计——但必须如实报告与分析它们绝不能当作独立的生物学重复。对于嵌套/聚类设计的样本量使用 statistical-power 技能进行模拟。为什么这是致命的文档明确强调伪重复无法在数据收集后修复。这与本技能的总纲一脉相承——SKILL.md 将伪重复列为毁掉研究的错误之首指出3 只小鼠各取 100 个细胞对施加于小鼠的处理而言 n 3 而非 300。这一点与 Hurlbert (1984) 的经典文献一致伪重复使已发表实验中的相当大一部分失效。正确做法是在正确的层级随机化与重复并用尊重嵌套的分析混合模型。从设计到可复现方案仓库脚本实操选定了设计类型后你需要把它转化为实际的随机化安排。experimental-design 技能提供两个可复现的脚本所有功能都带种子seed同一种子可精确重建同一方案——这是试验注册与良好实验室规范的要求。随机化/分配方案——randomization.py安装依赖Python ≥ 3.10uv pip install numpy1.26 pandas2.0 pyDOE3核心调用示例摘自 SKILL.mdfrom randomization import ( simple_randomization, block_randomization, stratified_block_randomization, cluster_randomization, assign_factorial_runs, arm_balance, ) # 置换区组整个入组期间保持各 arm 平衡n ~100 或顺序入组时使用 # 简单随机在小样本下可能失衡 sched block_randomization(n60, arms[treatment, control], seed42) # 在每一层内随机化平衡预后变量 sched stratified_block_randomization({siteA: 30, siteB: 30}, arms[drug, placebo], ratio(2, 1), seed42) # 随机化整个集群而非个体集群才是单元 sched cluster_randomization([clinic1, clinic2, clinic3, clinic4], seed42) arm_balance(sched) # 检查每 arm 的计数 sched.to_csv(allocation_schedule.csv, indexFalse)如何选择简单随机适用于大 n但小 n 下可能失衡区组随机保证全程平衡分层区组额外平衡已知预后因素集群随机在干预施加于群体层面时是强制要求。对应assign_factorial_runs用于将设计矩阵的执行顺序随机化防止因子与时间/漂移混杂机器预热、试剂老化。DOE 矩阵——doe_designs.pyfrom doe_designs import ( full_factorial, two_level_factorial, fractional_factorial, plackett_burman, central_composite, box_behnken, latin_hypercube, ) # 因素用真实世界 (低, 高) 范围 - 设计以真实单位返回 factors {temp_C: (20, 60), conc_mM: (1, 10), pH: (6, 8)} # 完整 2^3全部主效应 全部交互8 次运行运行顺序随机化 design two_level_factorial(factors, seed42) # 廉价筛选 7 个因素仅主效应 many {ffactor_{i}: (0, 1) for i in range(7)} design plackett_burman(many, seed42) # 带曲率的双因素优化响应面 design central_composite({temp_C: (20, 60), conc_mM: (1, 10)}, seed42) design.to_csv(experimental_runs.csv, indexFalse)这些设计类型析因、分数析因、Plackett-Burman 筛选、响应面、拉丁超立方的具体选择与别名结构分析参见仓库的 factorial_and_doe.md。把设计映射到分析一条验证链从本文的设计结构到最终分析仓库中有一条完整的证据链可供验证设计生成randomization.py第 41-147 行与 doe_designs.py 的所有生成函数都接受seed参数并返回 pandas DataFrame设计承诺的验证test_scripts.py 验证了区块严格平衡、比例生效2:1 产生两倍治疗单元、种子可复现、双水平设计解码为因素自身低/高值等统计性质分析匹配SKILL.md 的工作流明确指出——区组、分层、集群与嵌套必须出现在分析模型中随后移交给 statistical-analysis 与 statsmodels 技能。结语设计先行分析其次回顾整个设计类型体系一条主线贯穿始终随机化单元 重复单元 分析层级。完全随机设计假设单元同质区组设计与拉丁方通过局部控制剔除已知干扰变异重复测量与交叉设计以受试者为自身对照换取功效裂区设计承认多级误差结构集群设计在群体层面随机化。而伪重复——把技术重复当作生物学重复——是所有结构错误的根源它无法事后修复只能在设计阶段避免。在 experimental-design 技能中设计类型参考文档 design_types.md 与随机化与区组、析因与 DOE、序列与自适应设计 三份文档共同构成完整的设计决策体系。设计选定后样本量与功效计算交给 statistical-power数据分析交给 statistical-analysis。遵循陈述问题与单元 → 列出干扰因素 → 选择设计 → 在正确层级决定重复 → 用脚本生成布局 → 随机化运行顺序 → 文档化设计与种子 → 让分析匹配设计这一工作流你就能在数据收集之前为可解释的结果奠定结构基础。【免费下载链接】scientific-agent-skillsTurn any AI agent into an AI Scientist. The #1 Agent Skills library for science, used by 190,000 scientists worldwide. 165 ready-to-use validated skills plus 100 scientific databases covering biology, chemistry, medicine, and drug discovery. Compatible with Cursor, Claude Code, Codex, Pi, Antigravity, and the open Agent Skills standard.项目地址: https://gitcode.com/GitHub_Trending/cl/scientific-agent-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →