通常,您不需要相等的组大小来估计治疗效果。
不相等的组不会使估计产生偏差,它只会影响其方差 - 即降低精度(回想一下统计功效由最小的组决定,因此不等组的样本效率较低,但并非绝对错误)。
您可以通过简单的模拟(下面的代码)进一步说服自己。表明对于重复绘制,估计没有偏差(两个分布完美重叠),但具有相同的组可以提高精度(更小的标准误差)。
import statsmodels.api as sm
import numpy as np
import pandas as pd
import seaborn as sns
n_trials = 100
balanced = {
True: (100, 100),
False: (190, 10),
}
effect = 2.0
res = []
for i in range(n_trials):
np.random.seed(i)
noise = np.random.normal(size=sum(balanced))
for is_balanced, ratio in balanced.items():
t = np.array([0]*ratio[0] + [1]*ratio[1])
y = effect * t + noise
m = sm.OLS(y, t).fit()
res.append((is_balanced, m.params[0], m.bse[0]))
res = pd.DataFrame(res, columns=["is_balanced", "beta", "se"])
g = sns.jointplot(
x="se", y="beta",
hue="is_balanced",
data=res
)
# Annotate the true effect:
g.fig.axes[0].axhline(y=effect, color='grey', linestyle='--')
g.fig.axes[0].text(y=effect, x=res["se"].max(), s="True effect")