【问题标题】:Causal Inference where the treatment assignment is randomised随机分配治疗分配的因果推理
【发布时间】:2022-05-06 01:47:43
【问题描述】:

我主要使用观察数据,其中治疗分配不是随机的。过去我用PSM、IPTW来平衡然后计算ATE。 我的问题是: 现在我正在研究一个治疗分配是随机的问题,这意味着不会产生混淆效应。但治疗组和对照组的规模不同。有一个桶不平衡。

现在我应该按原样分析数据并运行统计显着性和统计功效检验吗? 或者我应该使用协变量匹配来平衡治疗和控制之间的大小不平衡,然后运行显着性检验?

    标签: statistics ab-testing causality abtest causalml


    【解决方案1】:

    通常,您不需要相等的组大小来估计治疗效果。
    不相等的组不会使估计产生偏差,它只会影响其方差 - 即降低精度(回想一下统计功效由最小的组决定,因此不等组的样本效率较低,但并非绝对错误)。

    您可以通过简单的模拟(下面的代码)进一步说服自己。表明对于重复绘制,估计没有偏差(两个分布完美重叠),但具有相同的组可以提高精度(更小的标准误差)。

    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")
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-19
      • 1970-01-01
      • 1970-01-01
      • 2018-03-14
      • 2020-09-18
      • 2013-04-24
      • 2018-03-15
      • 1970-01-01
      相关资源
      最近更新 更多