【Python实战因果推断】30_双重差分1

目录

Panel Data


在讨论了干预效果异质性之后,是时候转换一下思路,回到平均干预效果上来了。在接下来的几章中,您将学习如何利用面板数据进行因果推断。

面板数据是一种跨时间重复观测的数据结构。在多个时间段观察同一单位,可以了解同一单位在干预前后的情况。这就使得面板数据成为在无法进行随机化时确定因果效应的一种有前途的替代方法。当你有观察性(非随机)数据,并且可能存在未观察到的混杂因素时,面板数据方法是正确识别干预效果的最佳方法。

在本章中,你将了解为什么面板数据对因果推断如此重要。然后,您将学习最著名的面板数据因果推理估计器:双重差分及其多种变体。为了保持趣味性,所有这些都将在计算离线营销活动效果的背景下进行。

Panel Data

为了激发对面板数据的使用,我将主要谈谈因果推理在市场营销中的应用。市场营销之所以特别有趣,是因为它在进行随机实验方面存在众所周知的困难。在市场营销中,你往往无法控制谁会接受干预,也就是说,谁会看到你的广告。当一个新用户访问您的网站或下载您的应用程序时,您无法很好地知道该用户是因为看到了您的广告活动还是因为其他原因。即使您知道客户点击了您的某个营销链接,也很难判断他们是否会购买您的产品。例如,如果客户点击了您赞助的谷歌链接,如果他们真的在寻找您的产品,他们也可能会向下滚动一下,然后点击未付费的链接。


线下营销的问题更大。你怎么知道在一个城市投放广告牌是否能带来超过成本的价值?因此,市场营销中常见的做法是进行地理实验:您可以在某些地理区域部署营销活动,而不在其他区域部署,然后进行比较。在这种设计中,面板数据方法尤其有趣:您可以在多个时间段内收集整个地域(单位)的数据。就像我说过的,面板数据是指在多个时间段 t 内有多个单位 i。在一些市场网站中,单位可能是人,t 可能是天或月。但单位并不一定是单个客户。例如,在线下营销活动中,i 可以是城市,您可以在这些城市放置产品广告牌。

下面的数据框 mkt_data 是一个面板格式的营销数据。每一行都是(日期、城市)的组合:

 import pandas as pdimport numpy as npmkt_data = (pd.read_csv("./data/short_offline_mkt_south.csv").astype({"date":"datetime64[ns]"}))mkt_data.head()

该数据框按日期和城市排序。您关心的结果变量是下载次数。由于 t 将用来表示时间,为了避免混淆,从现在起,我将用 D 来表示干预。另外,在面板数据文献中,处理通常被称为干预。我将交替使用这两个术语。在本例中,营销团队在 Di = 1 的城市发起了线下活动。至于时间维度,让我们确定 T 将是期间数,T_{pre} 是干预前的期间数。你可以把时间向量看作t=\left\{1,2,\ldots,T_{pre},T_{pre}+1,\ldots,T\right\}. 干预后的时间段 T_{pre}, ... . , T 被方便地称为干预后。为了简化符号,我通常使用 "后 "虚拟变量,当 t > T_{pre} 时为 1,否则为 0。

干预只发生在干预后时期(t > T_{pre})的治疗单位(D = 1)。干预和干预后的组合将用 W=D^{\star} \mathbb{1}\left(t>T_{pre}\right)W=D^{\star} Post 表示。下面是营销数据中的一个示例:

 (mkt_data.assign(w = lambda d: d["treated"]*d["post"]).groupby(["w"]).agg({"date":[min, max]}))

如您所见,干预前的时间段为 2021-05-01 至 2021-05-15,干预后的时间段为 2021-05-15 至 2021-06-01。

这个数据集还有一个 τ 变量来表示干预效果。由于该数据是模拟的,因此我很清楚该效应是什么。我把它包含在这个数据集中,只是为了让你检查一下,你将要学习的方法是否能很好地识别因果效应。但不要习惯它。在现实生活中,你不会有这样的奢侈。


现在,您对数据有了更好的了解,也学会了一些新的技术符号,您可以更准确地重述您的目标。您想了解线下营销活动在干预发生后对受干预城市的影响:

ATT=E\Big[Y_{it}(1)-Y_{it}(0)\Big|D=1,t>T_{pre}\Big]

这就是 ATT,因为您只想了解活动启动t>T_{pre} 后对 D = 1 的城市产生的影响。由于 Y_{it}(1) 是可观测的,因此您可以通过推算缺失的潜在结果 E[Y(0) | D=1,Post=1] 来实现这一目标。

图 显示了为什么用单位时间矩阵表示观察到的结果时,面板数据会变得特别有趣。该矩阵突出了这样一个事实,即只有在干预后的时间段内,才能观察到被干预单位的 \text{Y(1)},而对于所有其他单元,您可以观察到 \text{Y(0)}。尽管如此,这些单元仍可用于估计缺失的潜在结果E\Big[Y(0)\Big|D=1,t>T_{pre}\Big]。您可以通过使用干预后期间对照单元的结果来利用单元间的相关性,也可以通过使用干预前期间受治疗单元的结果来利用跨时间的相关性。

图 还说明了为什么在大多数面板数据应用中应该关注 ATT:对被处理单位的 \text{Y(0)} 进行推算要容易得多。如果您想要的是 ATC(对对照组的平均影响),则必须计算 \text{Y(1)}。但是,您只有一个单元格可以观察到该潜在结果。现在,您已经对面板数据有了简单的了解,是时候探索一些利用面板数据来识别和估计干预效果的机制了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/870536.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

构建实时银行应用程序:英国金融机构 Nationwide 为何选择 MongoDB Atlas

Nationwide Building Society 超过135年的互助合作 Nationwide Building Society(以下简称“Nationwide”) 是一家英国金融服务提供商,拥有超过 1500 万名会员,是全球最大的建房互助会。 Nationwide 的故事可以追溯到 1884 年&am…

web后端开发--请求响应

目录 前言 请求 简单参数 原始方法 Spring方式 Post请求乱码处理 实体参数 简单实体参数 复杂实体参数 ​编辑 数组集合参数 数组参数 ​编辑 集合参数 日期参数 ​编辑 Json参数 ​编辑 传递json数据 json数组 json对象(POJO) jso…

Dify中的知识库API列表

1.知识库API列表 通过文本/文件创建/更新/删除文档/查询文档嵌入状态,知识库创建/知识库查询/文档列表查询,分段增/删/改/查。 接口名字功能描述请求示例POST/datasets/{dataset_id}/document/create_by_text通过文本创建文档此接口基于已存在知识库&a…

tableau人口金字塔,漏斗图,箱线图绘制 - 13

人口金字塔,漏斗图,箱线图 1. 金字塔1.1 定义1.2 金字塔创建1.2.1 数据导入1.2.2 数据异常排查1.2.3 创建度量字段1.2.4 转换属性1.2.5 创建数据桶1.2.6 选择相关属性1.2.7 年龄排序1.2.8 创建计算字段1.2.9 选择相关字段1.2.10 设置轴排序1.2.11 设置颜…

liunx清理服务器内存和日志

1、查看服务器磁盘占用情况 # 查看磁盘占用大小 df -h 2、删除data文件夹下面的日志 3、查看每个服务下面的日志输出文件,过大就先停掉服务再删除out文件再重启服务 4、先进入想删除输入日志的服务文件夹下,查看服务进程,杀掉进程&#xff…

DW03D是一款用于锂离子/聚合物电池保护的高集成度解决方案。DW03D包含内部功率MOSFET、高精度电压检测电路和延迟电路

一般概述 DW03D产品是单节锂离子/锂聚合物可充电电池组保护的高集成度解决方案。DW03D包括了先进的功率MOSFET,高精度的电压检测电路和延时电路。 DW03D具有非常小的TSS08-8的封装,这使得该器件非常适合应用于空间限制得非常小的可充电电池组应用。…

【备战秋招】——算法题目训练和总结day3

【备战秋招】——算法题目训练和总结day3😎 前言🙌BC149简写单词题解思路分析代码分享: dd爱框框题解思路分析代码分享: 除2!题解思路分析代码分享: 总结撒花💞 😎博客昵称&#xff…

【Java数据结构】初识线性表之一:顺序表

使用Java简单实现一个顺序表 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。 线性表大致包含如下的一些方法: public class MyArrayList { private int[] array; pri…

怎么将mkv视频格式转为mp4?这四种转换方法你肯定要试试!

怎么将mkv视频格式转为mp4?你是否曾被MKV格式的魅力深深吸引,仿佛踏入了一个充满奇幻色彩的多媒体秘境,那里,音频如溪流潺潺,视频似画卷铺展,字幕则如同夜空中最亮的星,三者交织成一场视听盛宴&…

【彻底禁用Windows系统的自动更新,让电脑使用更顺心!】

文章底部关注公众号:电脑维修小马 回复关键词即可获取软件及注册表:禁用更新 功能简介 自动更新是Windows系统的一项重要功能,旨在保持操作系统的安全性和最新状态。然而,对于许多用户来说,自动更新并不总是那么受欢迎…

渔人杯——RE

贪吃蛇的秘密 修改代码后,报了一个错 # uncompyle6 version 3.9.1 # Python bytecode version base 3.7.0 (3394) # Decompiled from: Python 3.11.8 (tags/v3.11.8:db85d51, Feb 6 2024, 22:03:32) [MSC v.1937 64 bit (AMD64)] # Embedded file name: snake1.py…

2023 N1CTF-n1canary

文章目录 参考n1canary模板类和模板函数make_unique和unique_ptrstd::unique_ptr示例: std::make_unique示例: 结合使用示例 operator->getrandom逆向源码思路exp 参考 https://nese.team/posts/n1ctf2023/ n1canary 模板类和模板函数 template &…

TCP协议的三次握手和四次挥手(面试)

三次握手 首先可以简单的回答: 1、第一次握手:客户端给服务器发送一个 SYN 报文。 2、第二次握手:服务器收到 SYN 报文之后,会应答一个 SYNACK 报文。 3、第三次握手:客户端收到 SYNACK 报文之后&#xf…

内存巨头SK海力士正深化与TSMC/NVIDIA合作关系,开发下一代HBM

据BusinessKorea报道,内存巨头SK海力士正深化与台积电(TSMC)及英伟达(NVIDIA)的合作关系,并计划在9月的台湾半导体展(Semicon Taiwan)上宣布更紧密的伙伴关系。 SK海力士与台积电的合作历史已久。2022年,台积电在其北美技术研讨会上宣布成立O…

脉脉高聘:面对薪资福利减少,超40%职场人自动缩短工时

近日,脉脉高聘人才智库发布《2024职场生存洞察》(下称《洞察》)。 数据显示,2024上半年,新经济行业求职压力居高不下,人才供需比达到1.97,相当于2个人竞争1个岗位。求职压力也让职场人心态趋于…

windows下安装和使用nacos

概述 Nacos致力于帮助您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发 现、服务配置、服务元数据及流且管理 Nacos官方文档:https://nacos.io/zh-cn/docs/quick-start.html Nacos下载地址:https://n…

小程序问题

1.获取节点 wx.createSelectorQuery() wx.createSelectorQuery().in(this) //组件中加in(this),不然获取不到 2.使用实例 wx.createSelectorQuery().in(this).select(#share).fields({node: true,size: true}).exec(async (res) > {const canvas res[0].node;…

通过window.postMessage,跨域传递数据

第一个项目的代码,项目地址 http://localhost:5173/ 第二个项目的代码,项目地址 http://localhost:5174/ 点击按钮会打开第二个项目的页面 第二个项目的页面

Rust代码优化的九大技巧

一.使用 Cargo 内置的性能分析工具 描述:Cargo 是 Rust 的包管理器,带有内置工具来分析代码性能,以识别性能瓶颈。 解释: 发布模式:在发布模式下编译启用优化,可以显著提高性能。 cargo build --release基…

StarRocks下载使用说明和基础操作

简介 StarRocks 是一款高性能分析型数据仓库,使用向量化、MPP 架构、CBO、智能物化视图、可实时更新的列式存储引擎等技术实现多维、实时、高并发的数据分析。StarRocks 既支持从各类实时和离线的数据源高效导入数据,也支持直接分析数据湖上各种格式的数…