You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用tt_ind_solve_power计算含4变体的实验效应量及设置nobs1?

多组实验(4变体+1对照)的效应量计算方案

首先明确:tt_ind_solve_power是专门为两组独立t检验设计的功效分析工具,无法直接用于多组(5组)的整体效应量计算。你的需求可以分两种场景处理:

场景1:分别计算每个变体与对照组的效应量

如果目标是得到每个变体相对对照组的效应量,可以对每一组变体-对照组的配对,单独调用tt_ind_solve_power。

nobs1参数设置规则

  • nobs1设为其中一组的样本量,ratio设为另一组样本量与nobs1的比值(即ratio = nobs2 / nobs1)
  • 两种设置方式等价:
    1. 把对照组样本量设为nobs1,ratio设为变体样本量/对照组样本量
    2. 把变体样本量设为nobs1,ratio设为对照组样本量/变体样本量

代码示例

from statsmodels.stats.power import tt_ind_solve_power

# 对照组样本量
control_n = 1002
# 各变体样本量
variant_ns = [990, 1001, 1100, 999]
alpha = 0.05
power = 0.8

# 逐个计算每个变体与对照组的效应量
for idx, var_n in enumerate(variant_ns, 1):
    effect_size = tt_ind_solve_power(
        nobs1=control_n,
        alpha=alpha,
        power=power,
        ratio=var_n / control_n,
        alternative='two-sided'
    )
    print(f"Variant {idx} vs Control 的效应量: {effect_size:.4f}")

结果说明

这里得到的是每个变体单独与对照组对比的效应量,不是整个多组实验的整体效应量。


场景2:计算多组实验的整体效应量

如果需要衡量所有5组(4变体+1对照)之间的整体差异程度,应该用方差分析(ANOVA)对应的功效分析工具FTestAnovaPower。

代码示例

from statsmodels.stats.power import FTestAnovaPower

# 总样本量
total_n = control_n + sum(variant_ns)
# 组数
k = 5

# 计算多组整体效应量(ANOVA的f值)
anova_power = FTestAnovaPower()
effect_size_f = anova_power.solve_power(
    nobs=total_n / k,  # 输入每组的平均样本量
    alpha=alpha,
    power=power,
    k_groups=k
)

print(f"多组实验的整体效应量f值: {effect_size_f:.4f}")

结果说明

这里得到的effect_size_f是ANOVA的效应量指标,衡量所有组之间的整体差异幅度,和单组对比的效应量不是同一个概念。


内容的提问来源于stack exchange,提问作者titutubs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 10:45:31