作者:字节跳动数据科学团队,房星玥,陈蓉,周小羽
历经数月的开发与测试,CausalMatch 于近日正式发布了 v0.0.5 版本。在这个版本中,我们深入探索了复杂双边实验的实验效应估计方法,用户仅需简单调用两行 Python 代码,便能轻松完成双边分流实验的实验效应估计。期待此版本能为更多有 MRD(Multiple Randomization Designs)(链接:https://arxiv.org/abs/2112.13495)方法使用需求的用户提供有力支持,显著提升建模效能。安装指令如下:
pip install causalmatch==0.0.5
作为支持量化决策的科学工具,A/B 实验往往较为复杂,而影响多个角色的 A/B 实验格外复杂。以双边市场为例,双边市场中通常存在两组参与者,他们需要通过中间层(即平台)来开展交易。假设我们希望通过A/B 实验测试策略对双边市场的影响,单独对某一方进行分流做常规测试可能导致实验效应估计有偏(参考论文 Johari et al(2021) )(链接:https://arxiv.org/abs/2002.05670)。如果我们能预判供需关系是哪边失衡,就可以直接开单边实验来规避流量挤占问题;但实际操作中我们很难进行预判。
因此在部分业务场景下,我们尝试通过多边分流,即Bajari, Patrick, et al. (2021)论文中的Multiple Randomization Designs方法(链接:https://arxiv.org/abs/2112.13495)(下文中以MRD)判断到底是供给稀缺还是需求稀缺。我们将MRD估计方法沉淀在了CausalMatch中,为使用该方法来做分析的业务场景构建了一套流程性且规范化的分析框架。
以论文中的场景为例,定义供给方为卖家(seller)、消费方为买家(buyer)。首先各自对卖家和买家进行随机抽样,并分配到实验组和对照组。假设我们把买家和卖家看成pair对,那么可以把实验变量矩阵写成如下形式;
定义四种pair对参加实验的状态为
假设DGP(data generating process)如下:
其中yij为因变量,Tij为实验变量。我们可以调用包中的内嵌函数按照如上的DGP生成buyer和seller的pair对,以及pair对下的y变量。
# STEP 1: generate synthetic data of a two-sided experiment:
df_raw = gen_test_data_mrd(n_shops = 1000
, n_users = 10
, ate = 1 # ATE,tau_direct in the paper
, uflow = 0.5 # user side overflow effect
, sflow = 0.5 # seller side overflow effect
, fraction_bt = 0.5 # treatment group fraction
, fraction_st = 0.5 # control group fraction
, seed = 123456) # random seed number
df_raw.head()
初始化函数
# STEP 2: initialize a mrd object
mrd_obj = mrd(data = df_raw, # Pandas dataframe, should include feature columns and treatment column.
idb = 'user_id', # Buyer id column name.
ids = 'shop_id', # Seller id column name
tb = 'treatment_u', # Treatment status for idb. Only support dummy treatment, i.e 0-1 binary treatment.
ts = 'treatment_s', # Treatment status for ids. Only support dummy treatment, i.e 0-1 binary treatment.
y = 'y_overflow') # Dependent variable of pairwise result
模型拟合
# STEP 3: calculate average treatment effect of four type
mrd_obj.ate()
拟合结果如下:
结果可以看出,如果真实DGP和估计模型一致,估计结果无偏。
最后,具体使用指南请参考jupyter notebook(链接:https://github.com/bytedance/CausalMatch/blob/main/notebooks/Two-sided%20Randomization%20Test.ipynb)。
CausalMatch v0.0.5 版本的迭代,凝聚了开发人员过去半年的心血与成果,在此,我们向所有参与此版本研发的贡献者们致以诚挚的感谢。CausalMatch 开源社区热忱期待更多开发者与用户的加入,一同交流、探讨数据科学领域的相关话题。若在使用过程中遇到任何问题,欢迎随时在 GitHub issue 中向我们反馈。
我们的团队始终密切关注社区技术发展动态,积极拥抱开源理念与行业标准。我们诚挚欢迎更多志同道合的同学加入,携手开展技术交流与学习。如果您有意加入我们的团队,深入参与相关工作,可点击链接(https://job.toutiao.com/s/ih8wxpwx)查看详细职位信息 ,期待你的加入!
相关链接
项目地址:
https://github.com/bytedance/CausalMatch
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...