加入收藏 | 设为首页 | 会员中心 | 我要投稿 许昌站长网 (https://www.0374zz.cn/)- 专属主机、负载均衡、智能边缘云、云防火墙、数据加密!
当前位置: 首页 > 大数据 > 正文

使用机器学习评估异质治疗效果

发布时间:2022-08-26 12:44:41 所属栏目:大数据 来源:互联网
导读:引言 在许多情况下,我们不仅对估计因果效应感兴趣,而且对不同用户的这种效应是否不同也感兴趣。我们可能有兴趣了解一种药物是否对不同年龄的人有不同的副作用。或者,我们可能有兴趣了解广告活动是否在某些地理区域特别有效。 这一知识至关重要,因为它使
  引言
  在许多情况下,我们不仅对估计因果效应感兴趣,而且对不同用户的这种效应是否不同也感兴趣。我们可能有兴趣了解一种药物是否对不同年龄的人有不同的副作用。或者,我们可能有兴趣了解广告活动是否在某些地理区域特别有效。
 
 
 
  这一知识至关重要,因为它使我们能够实施针对性治疗。如果一种药物对儿童有严重的副作用,我们可能希望限制其使用人群仅向成年人销售。或者,如果一个广告活动只在英语国家有效,那么它就不值得在其他地方展示。
 
  在本文中,我们将探计利用机器学习算法揭示治疗效果异质性的一些方法。
 
  案例分析
  假设我们是一家公司,有兴趣了解新的保险功能能够在多大程度上增加用户收入。特别是,我们知道不同年龄段的用户有不同的消费态度,我们怀疑保险功能的影响也可能因用户年龄而异。
 
  这些信息可能非常重要,例如对于像广告定位或折扣设计这样的应用尤其如此。如果我们发现保险功能增加了特定用户群的收入,我们可能希望针对该用户群的广告或为他们提供个性化折扣。
 
  为了了解保险功能对收入的影响,进行了AB测试。在该测试中,我们随机向测试样本中10%的用户提供保险功能的访问权限。这项功能很昂贵,我们负担不起将其免费提供给更多用户。因此,我们希望能够达到10%的治疗概率就足够了。
 
  我们选择使用src.dgp库提供的数据生成过程dgp_premium()函数来生成试验中所需要的模拟数据。此外,我们还要从src.utils库导入一些必要的绘图函数和库。
 
  复制
  from src.utils import *
  from src.dgp import dgp_premiumdgp = dgp_premium()
  df = dgp.generate_data(seed=5)
  df.head()
  1.
  2.
  3.
  4.
 
 
  数据快照
 
  实验中,我们采集了300名用户的数据,我们观察他们产生的收入,以及他们是否获得了医疗保险功能。此外,我们还记录了这些用户的年龄。
 
  为了了解随机化是否有效,我们使用美国Uber公司的causalml软件包中的create_table_one函数生成了一个协变量平衡表,其中包含实验组和对照组的可观察特征的平均值。顾名思义,这应该始终是您在因果推理分析中呈现的第一个表。
 
  复制
  from causalml.match import create_table_one
  create_table_one(df, 'premium', ['age', 'revenue'])
  1.
  2.
 
 
  平衡表
 
  由上表可见,大多数用户都出现在对照组中,只有31个用户位于实验组中。不同组的平均年龄具有可比性(标准化平均差,SMD<0.1),而且看起来保险功能平均为每个用户增加了2.59美元的收入。
 
  那么,保险功能的效果是否因用户年龄而异?
 
  一种简单的方法是,在保险功能和年龄的充分交互作用下对收入进行回归分析。
 
  复制
  linear_model = smf.ols('revenue ~ premium * age', data=df).fit()
  linear_model.summary().tables[1]
  1.
  2.
 
 
  线性回归结果
 
  从上述分析结果看出,交互作用系数接近零且不显著。似乎保险费方面不存在年龄差异效应。但事实上,这是真的吗?因为交互作用系数仅捕捉线性关系。如果这种关系是非线性的呢?
 
  我们可以通过直接绘制原始数据进行检查。我们按年龄划分收入,将数据分为保险用户和非保险用户。
 
  复制
  sns.scatterplot(data=df, x='age', y='revenue', hue='premium', s=40);

(编辑:许昌站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读