今天不洗衣服,明天会更便宜

原文:towardsdatascience.com/dont-do-laundry-today-it-will-be-cheaper-tomorrow-84a6baa4e626

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/fb7999e01f60c958f9f8a54c3d911f30.png

图片由 Arthur LambillotteUnsplash 提供

有时候,我们不得不进行实验。无论是公司改进产品还是公职人员追求政策目标,他们都会面临类似的问题:

  • 新的定价计划能否提高我们电信公司的客户保留率?

  • 新的入职流程能否提高应用的用户转化率?

  • 提醒系统能否降低医院的失约率?

  • 如果可以,提高的幅度有多大?

这些问题很棘手。不解决它们的成本可能很严重,但错误的解决方案可能成本更高。为了降低风险,许多人转向实验:在将新的提醒系统推广到整个地区的医疗保健网络之前,我们可以在一家医院进行测试;在将新的入职系统部署到平台上的所有用户之前,我们可能只向一些用户展示;在改变整个国家的光纤费率之前,我们可以在一个城市进行测试。这些都是预期解决方案的小规模版本,即实验,但我们如何知道它们有效呢?这就是因果分析发挥作用的地方。

在这篇文章中,我提出了一种因果框架来分析 2013 年在伦敦发生的一个实验:低碳伦敦项目 [1]。实验的其他目标之一是研究家庭对宣布的电价变化的反应。原始数据显示,那些被警告价格变化的家庭的电力消耗有所下降。但为什么呢?这个倡议实际上导致了消费量的降低,还是更有效地使用了电网,或者有其他外部因素在起作用?如果该计划确实发挥了作用,那么效果有多大?项目成本高达 23 亿英镑,这促使对结果进行适当的评估。

低碳伦敦项目

在 2011 年 1 月至 2014 年 12 月期间,英国电力网络公司开展了低碳伦敦项目(LCL)。该项目的总体目标是通过各种举措探索智能电力网络在支持向低碳经济转型中的作用。其中一项举措是新的动态分时(DToU)电价,该电价在 2013 年全年进行了测试。该电价包括一个三级的电价机制,并推广到伦敦的 1100 户家庭。大多数时候,这些家庭会受制于每千瓦时 11.76 便士(p/kWh)的“正常”电价。然而,某些日子,他们会在智能电表或通过短信收到价格变动通知:在第二天的一些 30 分钟时段内,他们的电价会上涨到每千瓦时 67.20 便士或下降到每千瓦时 3.99 便士。我们称这些家庭为我们的处理组。与此同时,大约 4500 户其他家庭则受到每千瓦时 14.228 便士的标准固定电价。

在项目结束时,英国电力网络公司发布了一些它收集的数据[2],使研究人员能够对其进行的评估。动态电价的想法是通过更好地控制需求来更有效地利用网络。这奏效了吗?让我们来探索这些数据。

消耗数据

LCL 数据包括从 2011 年 11 月至 2014 年 2 月期间 5566 户匿名家庭的半小时智能电表读数。这总共达到了 1,679,324,744 个观测值。虽然这是一个令人印象深刻的数据量,但对于我们的分析目的来说,粒度可能过于精细。它占据了大量的内存空间,并且是不必要的嘈杂。因此,我们将它汇总为每个家庭的每日总消耗量。

下面的图表显示了整个样本和期间按电价组划分的每户家庭的平均每日消耗量。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/dfde5f9c52e135c16269c666585e6ee0.png

平均每日消耗量随时间变化。图片由作者提供。

最终,我们的目标是确定红线(处理组)是否由于 2013 年 1 月至 12 月之间存在 DToU 电价而与蓝线走上了不同的路径。如果是这样,我们想知道它节省或花费了多少能源和金钱。

引人注目的是,红线(处理组)似乎在 2013 年 1 月 1 日之前和之后都持续低于蓝线。为了进一步分析这一点,我们可以比较两组的平均每日消耗量的差异。在下面的图表中,我们绘制了这些差异:

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/f2ce6151a4daf1903ae27294334f574f.png

平均每日消耗量随时间的变化差异。图片由作者提供。

从这张图表中可以得出两个主要结论。第一个结论是,2013 年确实存在对照组和实验组之间的差异。实验组家庭平均每天消耗的电量比对照组少 0.84 千瓦时。然而,第二个结论是,2012 年也存在差异——即在 DToU 电价方案推出之前。2012 年,实验组(尽管尚未接受处理)的家庭平均每天消耗的电量少 0.62 千瓦时。这似乎表明,在电价方案推出之前,两组家庭就已经存在差异。因此,我们不能说电价方案的推出导致了每天消耗电量减少 0.84 千瓦时。一个简单的结论可能是减少的电量是 0.22 千瓦时(0.84 - 0.62),但这过于简单化。这个差异是否与零有统计学上的差异?我们能将这个差异归因于该计划本身,还是存在其他混淆因素影响了估计?为了回答这些问题,我们需要进行因果分析。

注意到 2012 年初差异的波动性。原因是样本直到 2012 年中期到后期才完整,如下面的图表所示。如果我们现在就包括这些数据进行分析,我们估计的敏感性将会受到影响,因为我们无法比较一些家庭 2012 年的消费与 2013 年的消费。为了解决这个问题,我们只会使用在 2012 年或之前加入计划并坚持到计划结束的家庭。这使我们只剩下 520 个家庭:实验组 77 个,对照组 443 个。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/c6f94864cf3932fa8e32a33688986b30.png

LCL 项目中按月份统计的家庭数量(2012–2013)。图片由作者提供

额外的家庭数据

在项目网站上,我们可以找到 2013 年每个半小时时段适用的电价时间。大约 86%的时间,实验组家庭受到正常电价的影响;9.5%的时间他们获得低电价,而其余时间则获得高电价。有趣的是,这意味着在整个一年中,他们的平均电价为每千瓦时 13.52 便士。直观上,我们会认为实验组家庭应该比对照组家庭消耗更多、更便宜的能源!他们没有这样做的事实表明,家庭对能源的需求不仅由价格决定。其他因素也可能发挥了作用。例如,家庭可能会将耗能大的活动推迟到他们知道电价更便宜的日子(如洗衣服)。这反过来可能导致更有效的能源使用,从而在消费高峰期间减少整体能源消耗。我们将在因果分析中测试这一点。

与 LCL 项目相关联的另一个有趣的数据集是家庭人口统计信息,由Acorn提供。Acorn 是一个地理人口细分工具,根据人口普查数据对英国家庭进行分类。结果分类按富裕程度从 A(最富裕)到 U(最贫困)对家庭进行排名。可以合理假设能源消耗模式会根据人口统计信息而变化,因此这个数据集对我们的分析可能非常有用。

在撰写本文时,家庭 Acorn 分类在 LCL 网站上不可用,但我能在Kaggle [3]上找到它。下面的图表显示了我们的样本中 Acorn 群体的分布,按电费组划分:

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/a432cf84b6b69b6241ed1fe4dd73d260.png

按 Acorn 群体分布的家庭。图片由作者提供。

如我们所见,分布相当相似,但并不完全相同。处理组(橙色)的家庭往往更富裕,其中较高比例的家庭位于 Acorn 分类的上层。另一方面,控制组家庭的分布按比例偏向于更贫困的群体,特别是 Q 段。这表明分组并非一定是随机的,因此在不考虑人口统计信息的情况下比较家庭是不合适的。

天气数据

我们将要用于分析的最终数据集是关于天气的。家庭在寒冷天气中倾向于使用更多能源来取暖。因此,诸如(表面)温度、云层覆盖等变量是某一天能源需求的一个大决定因素。为了我们的目的,我们将使用 2012 年和 2013 年伦敦的每日天气数据,这些数据由 Visual Crossing 天气数据服务[4]提供。

基线模型

在深入探讨更高级的建模之前,我们首先定义一个基线模型,作为未来结果的基准。我们的基线将是一个差异-差异(DiD)线性模型,以家庭的每日消费作为因变量。当我们不能假设处理组和对照组在统计上不相似时,这个模型是理想的。它只要求两组在处理之前(所谓的平行趋势假设)对因变量遵循相同的趋势。在我们的案例中,上面的第一张图表表明这个假设是成立的。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/c7ec600a5b5fcc0e68ed34410afbe605.png

DiD 模型。图片由作者提供。

在上述表达式中,对个体i在时间t的治疗对结果Y的影响由 _β_₃量化,它捕捉了在治疗发生时处于处理组的情况。换句话说,_β_₃量化了由于 DToU 关税的影响导致的电力消耗差异。另一方面,_β_₁和 _β_₂则解释了不同群体和时间之间的差异。同样,α是一个常数项,X是协变量的向量,而ϵ是随机噪声成分。

Python 的库 Statsmodels 使我们能够非常容易地估计 DiD 模型。我们不会深入代码的细节,但它可以在本笔记本中找到。下表显示了估计的 DiD 模型:

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/85f14b324d3ca9bcd037f5b3876479fe.png

差异-差异模型。图片由作者提供。

我们的治疗效果,_β_₃,是与treat_2013相关的系数。这个变量是year_2013treat的乘积,它们是虚拟变量。如果观察值对应于 2013 年,并且家庭处于处理组,则它们分别取值为 1。因此,只有当年份是 2013 年并且家庭处于处理组时,treat_2013才取值为 1。系数的值是-0.2958。这意味着,在 2013 年,动态关税下的家庭每天比固定关税下的家庭少消耗 0.2958 千瓦时,全年大约少消耗 108 千瓦时。用货币来衡量,如果接受治疗的户主当年有固定关税,他们平均会多花£15.36。

DoWhy + EconML 因果模型

DiD 模型是一个很好的基准,但它有一些局限性。最明显的是,它假设治疗和结果之间存在直接的线性关系。一个更灵活的方法是使用图模型。图模型允许我们根据我们对问题领域知识的理解,将变量之间的更复杂关系纳入其中。

在 Python 中,我们可以使用库DoWhy [5][6]通过图形估计因果效应。DoWhy 是一个强大且易于使用的工具,我强烈推荐它。使其变得出色的一个特性是它与EconML [7]的集成,另一个用于因果分析的库,它允许我们使用各种机器学习模型估计个性化的治疗效果。

构建因果图

DoWhy 的因果推断流程包括 4 个步骤:模型定义、识别、估计和反驳。然而,在我们启动流程之前,我们需要一个表示我们数据的有向图。虽然存在从数据集中推断图结构的方法,但根据我们对问题和数据的领域知识自行定义它要推荐得多。这正是我们在下面的代码片段中所做的:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值