教程 ·
样本量怎么估算?六个源码分支、入口阻断与算法风险
说明 ChatSRS 样本量分析器源码中的六个计算分支,以及标准 CLI 当前无法进入分析器的两层阻断;同时披露独立/配对 t 的固定设定、ANOVA 重复乘组数缺陷及 correlation 近似路径。
ChatSRS 的 SampleSizeAnalyzer 源码保留了六个计算分支,但标准 CLI 当前无法进入这些分支,不能生成可作为产品回执的样本量结果。即使入口修复,ANOVA 和 correlation 两条路径仍有已知算法风险。
下列参数和字段只是样本量结果的字段顺序模板,不是真实产品回执;当前没有可用的真实输出,入口修复后也必须逐项复核公式、设计、分配、单双侧、组数和最终取整。现阶段正式计算应改用经过核验的工具。
源码有六个计算分支,但没有可用 live 入口
源码中的六个计算分支依次是 t、paired_t、anova、regression、chi2、correlation;分支存在不等于用户当前可以运行。
test_type | 源码参数重点 | 分支实现说明 |
|---|---|---|
t | Cohen's d、alpha、power | 两个独立组 |
paired_t | Cohen's d、alpha、power | 配对或单样本 t 功效类 |
anova | Cohen's f、组数、alpha、power | 有已知总量重复乘组数缺陷 |
regression | f²、预测变量数、alpha、power | 迭代非中心 F 分布 |
chi2 | w、自由度、alpha、power | 按拟合优度功效类和类别数实现 |
correlation | r、alpha、power | 使用两独立样本近似,未核验 |
这组六个样本量分支当前不覆盖生存分析、SEM、中介、聚类或复杂抽样设计。多层、纵向、整群随机、重复事件、诊断准确性和非劣效设计也不能从这些名称自动推断。
标准 CLI 目前被两层阻断
标准 CLI 在不传 --columns 时会先被 argparse 的 required 检查阻断并退出,后面的可选化逻辑无法到达,因此无法执行。
即使人为传入 --columns,SampleSizeAnalyzer._match_columns() 仍会把匹配结果清空,随后基类抛出“所有列名均未匹配成功”,所以仍不能运行。
此外,源码使用的 df_chi2 没有对应的 --df-chi2 CLI 参数。六条路径的 live smoke 全部通过前,任何一条都不得称为可用功能或真实入口。
通用输入参数
效应量
效应量决定希望检测的差异或关联大小。它应优先来自:
- 与当前研究设计和人群相近的 Meta 分析;
- 经过质量评估的既有研究;
- 预实验或可辩护的最小重要效应;
- 只有在缺乏更好证据时,才把 Cohen 惯例用于敏感性比较。
如果入口修复后仍未提供效应量,分支代码会采用 Cohen 中等效应并发出 warning;用户必须核对效应量来源,不能把默认值改写成文献证据。
alpha 与 power
alpha 和 power 是分支代码的显式参数。它们不能脱离多重检验、方向性、主要结局和研究后果解释。
页面不替用户决定目标功效,也不把“达到某个惯例值”写成伦理、答辩或期刊已经接受。
设计参数
不同入口还可能用到:
n_groups:ANOVA 组数;n_predictors:回归预测变量数;df_chi2:卡方自由度。
参数名相同不代表公式适用于所有设计。正式使用前必须把入口与具体研究假设一一对应。
t 检验路径的固定设定
独立与配对 t 检验当前固定双侧;其中独立 t 固定 1:1 分配。
独立样本 t
独立样本 t 分支使用 TTestIndPower,把组间比例固定为 1,并计划输出每组样本量和总样本量。若实际计划不是等分配、不是双侧检验或存在不同方差与聚类,这个分支不匹配设计。
配对 t
配对 t 分支使用 TTestPower 并把结果作为总样本量显示。这里通常对应完成配对的对象数,不是两组独立人数相加;失访导致配对不完整时,需要另行设计补偿。
ANOVA 结果为什么暂时不能引用
当前 ANOVA 路径把 statsmodels 返回的总样本量误当每组样本量并再次乘组数;修复前不能引用该结果。
具体风险是:
FTestAnovaPower.solve_power返回的是目标设计的总样本量;- 当前代码把它命名并显示为“每组样本量”;
- 随后又乘以
n_groups得到“总样本量”; - 输出因此可能被重复放大。
页面保留这个源码分支只用于披露当前状态,不应展示固定示例数字,也不能通过手工解释把错误结果变成可用结果。需要 ANOVA 功效分析时,应改用经过核验的实现,并保存参数与公式证据。
correlation 结果为什么暂时不能引用
当前 correlation 使用 NormalIndPower 两独立样本近似并把返回值当总样本量,不是经核验的相关系数功效实现;修复前不能引用。
相关系数检验通常需要基于相关系数的抽样分布和明确的单双侧设定。当前路径没有证明与目标相关检验等价,也没有把两独立样本返回口径转换为经过验证的相关总 N。
因此,该入口的数值不能作为开题、注册方案或招募目标的依据。
regression 与 chi2 也要核对设计
回归
当前回归入口用效应量 f²、预测变量数、alpha 和 power 迭代求解非中心 F 分布。输出没有区分“检验整体 R²”与“检验新增变量带来的 R² 增量”等不同问题,也不处理聚类、权重或复杂抽样。
卡方
当前卡方入口使用 GofChisquarePower,并由自由度推导类别数。它更接近拟合优度功效类,不能未经核验当作任意列联表独立性检验的通用样本量公式。
“代码可以返回数字”不等于设计已经匹配。二者仍应由统计方案复核。
分支代码计划输出什么
如果入口与算法缺陷修复,格式化器计划生成一张参数与样本量表:
- 检验类型;
- 效应量及其名称;
- alpha;
- power;
- 对应的组数、预测变量数、自由度或分配比例;
- 当前计算的每组或总样本量。
随后还会给六类方法的 Cohen 小、中、大惯例参考表。参考表是经验值,不是研究效应量来源。当前标准入口无法取得这张表,不能把源码结构写成真实运行回执。
当前不输出功效曲线、事后功效、效应量区间、脱落补偿或 APA 成稿。它也不会自动读取论文、Meta 分析或预实验来替用户选效应量。
一个可复核的样本量流程
- 定义主要问题:主要结局、主要对比和分析单位。
- 确定入口是否匹配:不能只按方法名称相似选择。
- 确定效应量来源:保存文献、预实验或最小重要效应依据。
- 明确 alpha、power 和单双侧:记录多重检验策略。
- 明确组数与分配:独立组是否等分,配对如何定义。
- 核对实现状态:标准入口整体 blocked;ANOVA 与 correlation 另有算法缺陷。
- 用可信工具交叉验证:同一参数、同一公式、同一取整。
- 另行处理失访与设计效应:不能把固定百分比自动加上去。
- 保存计算回执:工具、版本、参数、公式和日期。
- 形成待审草稿:不承诺通过答辩或审稿。
如果尚未确定应使用哪类工具,可先按数据治理、方法与复现材料选择统计工具。
样本量结果字段顺序模板
研究设计:
- 主要结局与主要检验:[真实说明]
- 分析单位:[真实说明]
- 检验方向:[单侧/双侧,真实设定]
- 组数与分配:[真实设定]
功效参数:
- test_type:[真实入口]
- 效应量及来源:[真实值与证据]
- alpha:[真实值]
- power:[真实值]
- 其他参数:[组数/预测变量数/自由度]
实现核对:
- 工具、版本和函数:[真实记录]
- 当前入口是否可引用:[当前为否;修复后重新审查]
- 交叉验证结果:[真实回执]
- warning:[原样保留并解释]
待审草稿:
“本研究的目标样本量依据[真实研究问题]进行先验功效分析。
效应量[真实值]来自[真实来源],alpha 和目标 power 分别为[真实值]。
使用[经过核验的工具与版本]得到[真实结果];
设计效应、失访与最终招募目标按[真实方案]另行处理。”
六条路径当前都不能填入“经过核验的工具与结果”位置;ANOVA 和 correlation 即使入口修复,也必须先修正并验证算法。
常见问题
没有效应量时能直接用默认中等效应吗?
不应直接使用。这里描述的是源码默认行为,不代表当前入口能够运行;默认值本身也不代表领域证据或最小重要效应。
可以在最小样本量上自动增加脱落比例吗?
当前不会。脱落、无效问卷、整群设计效应和分析排除要按研究方案另行计算。
当前 ANOVA 数字看起来合理,可以先用吗?
不能。已知口径错误不因数字看起来常见而消失,修复并经回归验证前不得引用。
样本量计算完成就能说明研究一定通过吗?
不能。样本量只是设计证据之一,仍需研究问题、测量、抽样、伦理、分析方案和执行质量共同支持。