因果推断--双重差分法(DID)的原理和实际应用(一)

2023-10-07 17:59

本文主要是介绍因果推断--双重差分法(DID)的原理和实际应用(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、应用场景

二、DID知识介绍

2.1 理论知识介绍

2.2 DID图形化解释

三、应用案例:

3.1 构造对照组

3.2 平行趋势检验

3.3 因果效应评估

四、优缺点总结


一、应用场景

在精细化运营场景中,常常会面临如下问题,不方便或者不允许进行常规的实验设计(AB实验)来考察策略的效果,只能采用全量上线的方式进行,但仍需分析策略的效果,以进行优化和推广。在如下场景中:上线了某付费产品活动,用户可付费开通xx卡,该卡可绑定一名亲友,亲友和自己都能使用该卡进行支付。这种场景很难通过实验的方式进行变量控制,我们不能简单的对某一类用户进行限制,限制其不可进行购买或被绑定,这样对用户体验的伤害很大,也会让用户感到奇怪甚至被歧视。对于这种无法进行实验设计但又必须知道策略是否给业务带来收益的场景,因果推断中的双重差分法就可解决以上问题。

二、DID知识介绍

2.1 理论知识介绍

双重差分法(Differences-in-Differences,DID)主要应用于评价某一事件或政策的影响程度。该方法基于反事实理论框架评估策略发生和不发生两种情况下待解释变量的变化。反事实理论框架是指通过分析策略干预后,实验组待解释变量的变化和假设实验组未被策略干预下,待解释变量变化之间的差异,从而评价策略的影响。策略干预后,实验组待解释变量的变化,我们是可以观测到的,但同一时期内,若实验组未被策略干预,待解释变量呈什么样的数据变化,我们是无法观测到的。于是,我们需要引入对照组,这个对照组的待解释变量随时间的变化趋势等同于实验组待解释变量随时间的变化趋势,才可以用双重差分法进行分析,也就是要满足如下两个假设:

1、个体处理稳定性假设: 实验中每个实验参与单元的行为是相互独立的,独立是指一个用户的行为不受其他用户影响。

2、平行趋势假设:在没有策略干预的情况下,对照组和实验组待解释变量之间的差异不随时间变化。

2.2 DID图形化解释

如下图所示:策略干预前实验组和对照组待解释变量的差异是a_{1},当对实验组施加干预后,实验组和对照组待解释变量的差异变成了a_{1}+a_{3},那么a_{3}即为策略干预效果。

三、应用案例:

在上述应用场景中,该付费产品上线了一段时间后,我们需要评估该活动带来的单量及收益提升情况,辅助进行活动推广和优化。假设在2022年10月的开卡用户共20w,这些用户就是实验组用户,是需要进行评估的对象。根据双重差分法,我们需要构造一个相似的用户群体,让其历史的下单和开卡用户的历史下单满足平行趋势,且这个相似用户群体,历史未曾开通过该卡。如下是DID进行因果效应评估的关键步骤:

3.1 构造对照组

在10月的用户中,按照开卡用户历史下单频次分布进行分层抽样,同样抽取20w未曾开通过该卡的用户作为对照组。

3.2 平行趋势检验

验证实验组(开卡用户)和对照组(抽样用户)的历史单量是否满足平行趋势,我们分别取这些用户在2022年4月至2022年10月的单量进行检验。如果满足平行趋势,我们需考察其在2022年10月以后的单量差异。下图是实验组、对照组用户在2022年10月前后的人均单量趋势:

 从图中可以看出,在2022年10月及以前,构造的虚拟对照组用户的人均单量基本和实验组-开卡用户保持一致,因此满足平行趋势假设,可用双重差分法对策略效果进行评估。

3.3 因果效应评估

从图中可以看出,在2022年10月开卡以后,实验组用户的人均单量较对照组有明显的提升,人均单量提升在0.96-3.11,由此可计算开卡后,实验组用户在每个月的单量提升以及收入的提升情况。

2022年10月之前实验组与对照组人单量差异均值为0.13,10月之后实验组较对照组人均单量提升差异需减去开通之前人均单量差异的均值0.13,下表为开卡后按照DID模型测算的实际人均单量、总单量以及收入的提升情况: 

 由上表可以看出,实验组开卡用户在11月实际人均单量提升为2.98,总量提升为59.6w,收入提升为893.3w,在后续每个月中,实际人均单量差异逐渐缩小到0.83,总单量较对照组提升缩小至16.6w,收入提升为248.5w。

四、优缺点总结

优点:

通过以上案例可以看到,在没有AB实验数据的情况下,如果我们有实验前后的时间序列数据,并能构造一个和实验组待解释变量满足平行趋势的对照组的话,我们就可以用DID进行因果效应评估。使用DID时不需要考虑实验组和对照组之间的差异,在构造虚拟的对照组时,不需要和实验组完全一样,这个操作相对来说较为简单,因果效应的测算过程也较简单

局限性:

首先需要有实验前后的时间序列数据,其次是平行趋势假设,这个是一个很强的假设,我们需要构造一个和实验组用户在待解释指标上满足平行趋势假设的虚拟对照组才能进行接下来的效果评估,而这有时候并不好构造。

这篇关于因果推断--双重差分法(DID)的原理和实际应用(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/159470

相关文章

PostgreSQL的扩展dict_int应用案例解析

《PostgreSQL的扩展dict_int应用案例解析》dict_int扩展为PostgreSQL提供了专业的整数文本处理能力,特别适合需要精确处理数字内容的搜索场景,本文给大家介绍PostgreS... 目录PostgreSQL的扩展dict_int一、扩展概述二、核心功能三、安装与启用四、字典配置方法

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提

Java MQTT实战应用

《JavaMQTT实战应用》本文详解MQTT协议,涵盖其发布/订阅机制、低功耗高效特性、三种服务质量等级(QoS0/1/2),以及客户端、代理、主题的核心概念,最后提供Linux部署教程、Sprin... 目录一、MQTT协议二、MQTT优点三、三种服务质量等级四、客户端、代理、主题1. 客户端(Clien

MySQL中的表连接原理分析

《MySQL中的表连接原理分析》:本文主要介绍MySQL中的表连接原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、表连接原理【1】驱动表和被驱动表【2】内连接【3】外连接【4编程】嵌套循环连接【5】join buffer4、总结1、背景

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

Java Stream的distinct去重原理分析

《JavaStream的distinct去重原理分析》Javastream中的distinct方法用于去除流中的重复元素,它返回一个包含过滤后唯一元素的新流,该方法会根据元素的hashcode和eq... 目录一、distinct 的基础用法与核心特性二、distinct 的底层实现原理1. 顺序流中的去重

Spring @Scheduled注解及工作原理

《Spring@Scheduled注解及工作原理》Spring的@Scheduled注解用于标记定时任务,无需额外库,需配置@EnableScheduling,设置fixedRate、fixedDe... 目录1.@Scheduled注解定义2.配置 @Scheduled2.1 开启定时任务支持2.2 创建

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比

《CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比》CSS中的position属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布... css 中的 position 属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布局和层叠关