# causal-inference **Repository Path**: bigear2021/causal-inference ## Basic Information - **Project Name**: causal-inference - **Description**: 因果推断与AB实验 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2021-10-12 - **Last Updated**: 2025-06-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 因果分析与AB实验 ## 一.分析目标 1. 评估短期影响:短时间内指标是否提升/降低。 2. 评估长期影响:利用短期指标,预测长期指标,形成综合分指标模型(逻辑回归)。 3. ROI最大化(用户异质性):是否存在部分人群既不影响体验,又能提升收入,且不需要投入大量成本。 ## 二.潜在因果框架 * Unit:基本分析对象,可以是一个公司,一个患者,一个个人等等,习惯称呼为其样本。 * Treatment:对分析对象Unit可执行的策略,例如某个患者可以采用的治疗方案A和B,A和B都是策略。 * Outcome:顾名思义,试验结果,但是在潜在因果框架下,需要细分一下不同的结果。 * Potential outcome:潜在结果,对于任何一个样本,任何一个策略都存在一个潜在结果。 * Observed outcome:观测结果,即可观测到的结果,也称为真实结果,是潜在结果的一种实际表现。 * Counterfactual outcome:反事实结果,对于一个样本来说,除了它真正被实施的策略以外,所有其他策略的潜在结果都是反事情结果;反事实结果也是潜在结果的一种,可以简单理解为潜在结果=可观测结果+反事实结果。 * 策略前特征pre-treatment variables:不受策略所影响的特征成为策略前特征,这个比较好理解,比如人的年龄,性别等等;也称为环境变量. * 策略后特征post-treatment variables:与策略前特征相对应,策略后特征就是受策略影响的特征变量,举个例子就是患者服药之后的身体理化特征。 * 策略效果Treatment Effect :
序号 层次 名称 说明
1 整体层次 平均策略效果(Average Treatment Effect,ATE) ATE=E[Y(W=1)-Y(W=0)]。
其中,Y(W=1)和Y(W=0)和分别代表整个群体的策略潜在结果和对照潜在结果。注意:这里不是我们AB实验中实验组与对照组的差值,而是整体群体,每一个个体都有两种潜在结果,进行相减求期望。
2 某策略组层次 策略组的平均策略效果(Average Treatment effect on the Treated group,ATT) ATT=E[Y(W=1)|W=1]-E[Y(W=0)|W=1]。
其中,Y(W=1)|W=1] 和Y(W=0)|W=1分别代表在策略组样本上的Y(*)|W=1的策略潜在结果和对照潜在结果。这里Y(W=1)|W=1]是可观测结果。
3 某子群层次 条件平均效果(Conditional Average Treatment Effect,CATE) CATE=E[Y(W=1)|X=x]-E[Y(W=0)|X=x]。
其代表在特定条件下X=x的集合的策略效果,有时也称为分层实验效果。
4 个体层次 个体策略效果(Individual Treatment Effect,ITE) ITEi=Yi(W=1)-Yi(W=0)。
当结果Y没有上标的时候,就代表潜在结果,个体水平也可以看成是子群层次的特例,毕竟个体水平也是整体的一个子集。
* 三个假设: * 假设1:Stable Unit Treatment Value Assumption (SUTVA) ,样本-策略值稳定性假设,其包含两层含义: 1. 任意个体的潜在结果不受其他个体接受的策略所影响,即个体之间是独立的; 2. 对于每个样本,某个策略没有不同形式或版本来导致不同的潜在结果。 * 假设2:Ignorability,可忽略性,给定环境变量后,策略分配与策略会产生的潜在结果是独立的,不能根据策略产生潜在结果的好坏来选择策略,策略的分配也不会影响到潜在的结果分布。 * 举个反例:比如推荐系统,经过预测点击率来选择素材曝光就不满足这个假设。这个假设也被称为无混杂假设,对于同样背景的样本,策略分配是完全随机的。 * 假设3:Positivity,正向假设,对于任何一个个体,任何策略都可能被分配到。 ## 三.常用方法
序号 名称 基础假设 计算流程 适用条件 优点 缺点
1 随机饱和度实验(Randomized Saturation Design) 以簇为实验对象,每一簇实验对象分布均匀,簇与簇之间相互独立,不同的簇适宜不同的处理比例(饱和度)。假设实验饱和度和处理效应是线性关系,通过线性模型可以量化实验效果。 1.确定场景中独立同分布簇的存在形式,例如地区/时间片等;2.确定实验需要以及可支持的饱和度集合,并随机给簇分配饱和度;3.按簇被分配的饱和度随机给簇中的实验对象分配处理。 网络效应:分流对象之间相互干扰。 能够测量溢出效应的大小,实验饱和度对于处理效应和溢出效应的影响。 有些情况难以找出相互独立且分布均匀的簇,难以满足线性假设。
2 Switchback实验 基于一些不受网络效应干扰的特征对样本进行切分,然后把切分的结果按照某种方式分配给实验组和对照组。实验组和对照组会在某一个特征上来回切换,以达到在没有策略时,实验组/对照组的表现在统计上无差异(A/A实验通过)。 1.寻找跨片率足够低的划分方式(统计/谱聚类);2.在不同的时空切片切换实验。 网络效应:产品策略会对匹配效率产生影响。 排除网络效应干扰。 如果历史上用户间的联系和未来(实验期)用户间的联系相关性非常低,则不能使用。
3 双边实验 B端(供给端)和C端(消费端)存在相互作用 2*2列联表 比较简单的组间溢出场景 同时检测两端的效果。检测组间溢出和干扰。帮助归因。 只能描述比较简单的组间溢出场景,不能解决个体和个体之间存在干扰。无法在用户间进行分流。
4 多基线实验 单案实验:每个实验对象既是控制组也是实验组,只翻转1次实验组和对照组。 1.通过模拟和背景研究,估算实验所需对象数量以及重复测度次数和可以用于接受处理的时间窗口;2.随机确定每个实验对象接受处理的时间;3.通过假设检验确定显著性。 既不能分流,也不能轮转 需要样本量小 实验效能容易受影响
5 CUPED(Controlled-experiment Using Pre-Experiment Data) 实验前核心指标的方差是已知的,且和实验本身无关,因此合理的移除指标本身的方差不会影响估计效果。通过实验前数据对实验核心指标进行修正,在保证无偏的情况下,得到方差更低, 更敏感的新指标,再对新指标进行统计检验(p值) stratifiaction:适用与离散指标。即分组算指标。如果已知实验核心指标的方差很大,那么可以把样本分成K组,然后分组估计指标。这样分组估计的指标只保留了组内方差,从而剔除了组间方差。covariate:适用于连续变量。需要寻找和实验核心指标(Y)存在高相关性的另一连续特征(X),然后用该特征调整实验后的核心指标。X和Y相关性越高方差下降幅度越大。因此往往可以直接选择实验前的核心指标作为特征。 实验效果不显著,样本量与实验时间又不能增加。 降低指标方差与需要样本量,提高灵敏度。 实验中的用户在实验前不一定都能找到对应数据。
6 倾向评分匹配(propensity score matching,PSM) 匹配:假如某个体在处理组,为了找到对照,找至少一个其他各方面与该个体尽量相似但出于控制组的个体,这样两者就有可比性。倾向得分:一个个体进入处理组的概率,为什么要引入这个概念?因为如果针对多个可观察特征X进行对比匹配非常困难,所以,可将多维协变量X用一个一维变量——倾向得分P(x)来代替,这样,研究者就只需要对单一的倾向得分变量进行匹配,从而大大减少了匹配的困难。 1.选择合适的协变量集(特征选择);2.确定选择性的存在;3.计算倾向值(LR求概率);4.进行匹配:最邻近匹配/半径匹配/核匹配;5.平衡性检验 样本量尽量大,处理组与控制组的倾向得分有较大共同取值范围。 消除组别之间的干扰因素,降低方差,提高灵敏度。 只能缓解由可观测变量带来的内生性问题,无法处理最为关键的由不可观测变量带来的内生性问题。PSM 会系统排除缺乏对照组的样本,进而使得样本代表性变差,影响结果的外部有效性。
7 随机区组设计 实验前对象就存在差异(高频/低频用户),可以分层实验。 先将实验单元根据这些影响分成若干同质的区组,然后分别在这些区组进行相同比例的随机分流,再将分流后的多个实验组/对照组组合进行方差分析。 实验对象在某个因素上的结构差异可能会影响结果,且这种因素可以控制。 提高实验灵敏度:减小方差,节约样本量。 区组与区组之间可能不是完全独立的,比如用户活跃度和用户生命周期强相关。
8 依从者平均因果作用(complier average causal effect,CACE) 独立性;分组本身对用户没影响,只有确实被处理渗透的用户才受到影响,这类人接受处理与否完全由于是否接受鼓励而定。按实验组渗透等比的放大了组间收益。用户分为4类, compiler, never-taker, always-taker, defier;compiler是给药就吃不给就不吃,never-taker是打死也不吃,always-taker是没事就吃药,defier是不给我药我偏要吃 CACE=E(Y(1)|compiler)-E(Y(0)|compiler)=[E(Y|Z=1)-E(Y|Z=0)]/[E(W|Z=1)-E(W|Z=0)]。可以理解为一种特殊的工具变量回归。 新功能真正触达/使用的用户占比很小,如何计算收益。 提高实验灵敏度。 只能识别某个子总体的平均因果作用;而通常情况下,我们并不知道某个个体具体属于哪个子总体。外推到整体需要结合边际处理效应 (MTE)。
9 uplift 用户分4类:说服型Persuadables:不发送优惠券则不买,发送优惠券则购买; 确认型Sure things:不论是否发送优惠券均会购买; 沉睡型Lost causes:不论是否发送优惠券均不会购买; 勿扰型Sleeping Dogs:不发送优惠券会购买,发送优惠券反而不买。Uplift模型要解决的问题就是通过建模预测的方法精准的去对这四类用户进行分群。我们获取到的训练训练数据是不完整的,对于单个用户来说,不可能同时观测到在有干预(发券)和没有干预(不发券)两种情况下的表现,这也是因果推断中的反事实的问题。 首先,我们选取部分用户(小流量实验,样本量足够建模)随机分为实验组和对照组,对照组不发优惠券,实验组发放优惠券,用户最终是否购买为一个0-1变量; 然后,对整体实验数据用户购买行为进行建模; 最后,再用小流量实验训练得到模型对我们需要预测的全量用户进行条件平均处理效应估计,预测其发放优惠券所带来的增益值。评估:得分十分位柱状图,qini曲线,累积增益曲线。 用户(特征)与干预策略是相互独立的。 精准定位策略敏感人群,合理测算收益空间。One Model版本和Two Model版本相比最大的优点是训练样本的共享可以使模型学习的更加充分,同时通过模型的学习也可以有效的避免双模型打分误差累积的问题,另外一个优点是从模型的层面可以支持multiple treatment的建模,具有比较强的实用性。同时和Two Model版本类似,它的缺点依然是其在本质上还是在对response建模,因此对uplift的建模还是比较间接,有一定提升的空间。 强依赖于AB实验,数据要求很高,实验组和对照组的样本特征分布要一致。
10 中介模型 考虑自变量X对因变量Y的影响,如果X通过影响变量M来影响Y,则称M为中介变量。 数据标准化处理;模型1:自变量X和因变量(Y)的回归分析; 模型2:自变量X,中介变量(M)和因变量(Y)的回归分析; 模型3:自变量X和中介变量(M)的回归分析;中介效应检验:sobel检验。也可以使用结构方程。 自变量和因变量之间的关系不能够直接展示,XY的关系不明确。寻找一个可以被控制的中介。 可以分析自变量对因变量影响的过程和作用机制。 中介效应往往与调节效应共生。
11 交叉实验 重复对不同实验单元组实施实验,每一个实验单元都会在不同阶段命中不同的策略,每个实验单元都作为自己的对照组进行评估。 均匀交叉实验(拉丁方/数独):每个实验策略在每个周期及每个序列里仅出现1次,2组2序列2周期,4组4序列4周期;强平衡实验:还要求策略在其本身之前出现的次数与在其他策略之前出现的次数一致,4组4序列5周期;强均衡实验:每种策略在序列/周期中出现的次数相等,且其他策略(包含其本身)前出现的次数也相等,2组4序列4周期。 无法切片的全量可逆策略效果评估。 同一时间评估多种策略,节省时间成本;需要样本量小,灵敏度高;避免实验单元之间个体差异导致统计精度低。 需要判断策略周期,减少延滞效应影响,策略属性需要可逆,实验单元样本状态要保持稳定。
12 Interleaving 第一阶段利用被称为Interleaving的测试方法进行候选算法的快速筛选,从大量初始想法中筛选出少量“优秀的”Ranking算法。 第二阶段是对缩小的算法集合进行传统的AB Test,以测量它们对用户行为的长期影响。 只有一组订阅用户,这些订阅用户会接受到通过混合算法A和B的排名生成的交替排名。用户同时可以在一行里同时看到算法A和B的推荐结果(用户无法区分一个item是由算法A推荐的还是算法B推荐的)。进而可以通过计算观看时长等指标来衡量到底是算法A好还是算法B好。必须要考虑位置偏差的存在,避免来自算法A的视频总排在第一位。因此需要以相等的概率让算法A和算法B交替领先。 流量有限的条件下对海量策略进行粗筛。 提升测试效率;消除了AB组测试者自身属性分布不均的问题; 通过给予每个人相同的权重,降低了重度消费者对结果的过多影响。 工程实现的框架较传统AB Test复杂;Interleaving毕竟只是对用户对算法推荐结果偏好程度的相对测量,不能得出一个算法完整的表现
13 双重差分(Differences-in-Differences,DID) 反事实理论。假设1:策略仅对实验组的待解释变量产生影响,对对照组的解释变量不产生影响。假设2:平行趋势假定:实验组和对照组的待解释变量在干预前有相同的发展趋势。 (实验后-实验前)-(对照后-对照前) 实验组和对照组的待解释变量在干预前有相同的发展趋势。 (1)可以很大程度上避免内生性问题的困扰:政策相对于微观经济主体而言一般是外生的,因而不存在逆向因果问题。此外,使用固定效应估计一定程度上也缓解了遗漏变量偏误问题。(2)传统方法下评估政策效应,主要是通过设置一个政策发生与否的虚拟变量然后进行回归,相较而言,双重差分法的模型设置更加科学,能更加准确地估计出政策效应。(3)双重差分法的原理和模型设置很简单,容易理解和运用,并不像空间计量等方法一样让人望而生畏。 1.基于独立同分布假设(independent and identically distributed,IID),尽管实验设计中具有时间相关成分,但当实验使用时间序列时,静态模型会有置信区间过窄,估值过于乐观的情况。2.实验效果会随时间改变,例如静态模型并未考虑增长及衰减。
14 合成控制(Synthetic Control) 反事实理理论。对潜在的对照组进行线性组合,构建一个虚拟的对照组。 求解控制组权重:矩阵分解,基于距离函数最小化的的最优化;计算处理前后结果;安慰剂检验。 双重差分无法找到恰当的对照组 作为一种非参数的方法,是对传统的双重差分法DID的拓展; 通过数据驱动确定权重,减少了主观选择的误差,避免了政策内生性问题; 通过对多个控制对象加权来模拟目标对象政策实施前的情况,不仅可以清晰地反映每个控制对象对“反事实”事件的贡献,同时也避免了过分外推; 可以对每一个研究个体提供与之对应的合成控制对象,避免平均化的评价,不至于因各国政策实施时间不同而影响政策评估结果,避免了主观选择造成的偏差; 研究者们可在不知道实施效果的情况下设计实验。 因为使用加权的方法合成虚拟对照组,很大程度上,不能合成“极值”的虚拟对照组。当控制变量很多时,无法进行变量选择。
15 中断时间序列(Interrupted Time Series,ITS) 中断前后都是线性关系,序列不存在自相关。 单组/多组干预回归 无法找到对比组,只能和自身比较。 可以从两方面评价干预效果:一个是干预点前后升降幅度;进一步,还可评价项目实施后的“长期趋势”的变化,即评价因变量的变化趋势。 1.在现实生活中比较少见。2.项目的准入标准和统计口径不可以发生变化。3.无法排除历史事件(History)的影响。4.项目的推行不是一次性的,而是渐进推广的,导致项目实施的具体时间不清楚。
16 Causal Impact 状态空间模型:贝叶斯结构化时间序列。1.实验效果可以通过对比自身时间序列以及自身不受干扰影响的一组控制时间序列进行解释。2.实验干预期间,构建的反事实对照组与实验组时间序列的关系假设稳定。 1.控制的时间序列选择:通过dtw算法选择与实验组最相似的时间序列。2.通过观察拟合后的结果,判断策略是否与显著效果 一是在模型拟合过程中(original),AA差异的置信区间要始终包含0,相当于模型的拟合误差在我们的接受范围之内,反之则说明模型的拟合误差过大,模型不可信; 使寻找高度同步的对比组从一个强假设变成一个弱假设,类似于序列版的合成控制。 有的策略存在新奇效应,不能得到长期收益,所以需关注累积收益进行决策。
17 断点回归(Regression Discontinuity Design,RDD) 存在一个连续变量, 该变量能决定个体在某一临界点两侧接受政策干预的概率, 由于X在该临界点两侧是连续的, 因此个体针对X的取值落入该临界点任意一侧是随机发生的, 即不存在人为操控使得个体落入某一侧的概率更大, 则在临界值附近构成了一个准自然实验。 精确断点回归设计 (sharp regression discontinuity design,SRD)/模糊断点回归设计 (fuzzy regression discontinuity,FRD) ,有效性检验,稳健性检验。 人群是否接受干预(Treatment)是依据某一数值变量(rating variable)是否高于或低于某一确定的阈值(threshold)或者分割点(cut-point)。 最接近随机实验的检验方法,能够缓解参数估计的内生性问题。 外部有效性很弱。在实证分析的因果推论中,有外部有效性(external validity)和内部有效性(internal validity)两个概念。因为断点回归只能做到局部(断点附近)随机,它能准确推断出来的也就是这断点附近人群的政策效果。要把局部政策效果外推,将非常困难。
18 工具变量(Instrumented Variable,IV) 希望看到的结果是感兴趣的变量满足内生性,即不存在双向因果的问题,难点就在于证明反向因果不存在。此时需要找到一个感兴趣变量(也就是X,也称为内生变量)的外生变量,来代替内生变量。 两阶段最小二乘法 (2SLS)回归:第一阶段:用解释变量与工具变量进行OLS回归,得到拟合值(分离出内生变量的外生部分); 第二阶段:用被解释变量对第一阶段回归的拟合值进行OLS回归(使用外生部分进行回归)。 相关性:工具变量必须与内生变量相关;独立性假设:工具变量需要时随机分配的,或者 “和随机分配一样好”;排他性约束:工具变量只能通过内生变量这一渠道影响被解释变量。 解决了内生性问题。 会将任何可能存在的偏差放大,只能处理简单问题。
19 逆向概率加权(Inverse probability treatment weighting,IPTW) 样本越倾向选择这个策略,那么说明这个策略对该样本可能获得更好的策略效果,所以取倒数得到的权重来平衡这个策略效果。 把需要比较的变量拿出来做结果变量,其他的变量做协变量,组logistic回归方程,生成预测值。通过预测值计算出拟概率权重。处理组观察单位的权数Wt=1/PS,对照组观察单位的权数Wc=1/(1-PS)。PS为观察单位的倾向评分值。均衡性检验. 观察的数据中,策略分配与样本的其他变量是相关的。 IPTW是减少多组观察性数据间混杂偏倚的有效方法, 在处理多组间变量混杂偏倚中起到了重要作用。加权法利用全部样本进行分析,在一定程度上弥补了因匹配导致样本流失的问题。 权重主要围绕倾向的分为核心,倾向得分一旦预测不准,会导致上面的估计方法出现很大的偏差。
## 四.方案选型 ![avatar](https://gitee.com/bigear2021/causal-inference/raw/master/causal-inference.png) ## 五.参考资料 * 《数据科学工程实践:用户行为分析与建模、A/B实验、SQLFlow》[源码](https://github.com/xieliaing/Data_Science_Industrial_Practice) * 《关键迭代:可信赖的线上对照实验》[配套网站](https://experimentguide.com) * [收集的PPT](https://www.aliyundrive.com/s/R8pUJG3rQBy) * [实验效果不显著?不妨试试CUPED来缩减指标的方差](https://jeffshow.com/use-cuped-to-variance-reduction-in-abtest.html) * [AB实验的高端玩法系列2 - 更敏感的AB实验, CUPED!](https://www.cnblogs.com/gogoSandy/p/11749262.html) * [CUPED - Controlled-experiment Using Pre-Experiment Data](https://github.com/stiwari2/CUPED) * [倾向得分匹配(PSM)的原理与步骤](https://zhuanlan.zhihu.com/p/237723948) * [psm倾向得分匹配法举例_倾向得分匹配法的详细解读](https://blog.csdn.net/weixin_42470438/article/details/112244252#:~:text=%E5%80%BE%E5%90%91%E5%BE%97%E5%88%86%E5%8C%B9%E9%85%8D%E6%B3%95%20%EF%BC%88Propensity%20Score%20Matching%29%E4%B8%80%E8%88%AC%E7%AE%80%E7%A7%B0%E4%B8%BA%E2%80%9C%20PSM,%E2%80%9D%EF%BC%8C%E6%98%AF%E5%BD%93%E5%89%8D%E7%BB%8F%E6%B5%8E%E5%AD%A6%E7%95%8C%E7%94%A8%E6%9D%A5%E5%A4%84%E7%90%86%E8%87%AA%E9%80%89%E6%8B%A9%E5%81%8F%E8%AF%AF%E7%9A%84%E4%B8%80%E5%A4%A7%E7%83%AD%E9%97%A8%E5%88%A9%E5%99%A8%EF%BC%8C%E5%AE%83%E7%BB%8F%E5%B8%B8%E5%92%8C%E4%B9%8B%E5%89%8D%E6%88%91%E4%BB%AC%E4%BB%8B%E7%BB%8D%E8%BF%87%E7%9A%84%20%E5%8F%8C%E9%87%8D%E5%B7%AE%E5%88%86%E6%B3%95%20%EF%BC%88DID%EF%BC%89%E8%BF%9B%E8%A1%8C%E7%BB%84%E5%90%88%E4%BD%BF%E7%94%A8%EF%BC%88PSM-DID%29%2C%E8%BF%99%E7%A7%8D%E6%96%B9%E6%B3%95%E6%9C%80%E6%97%A9%E7%94%B1Paul%20Rosenbaum%E5%92%8CDonald%20Rubin%E5%9C%A81983%E5%B9%B4%E6%8F%90%E5%87%BA%E3%80%82) * [PSM-倾向得分匹配分析的误区](https://zhuanlan.zhihu.com/p/148549112) * [倾向得分匹配法(PSM)](https://www.jianshu.com/p/5d777f89ddad) * [倾向的分匹配法(PSM)与普通回归有什么区别](https://www.zhihu.com/question/279186662) * [Propensity Score Matching](https://github.com/konosp/propensity-score-matching) * [Propensity-Score-Matching](https://github.com/shaoshanglqy/Propensity-Score-Matching) * [工具变量回归时怎样理解局部平均(LATE)](https://www.zhihu.com/question/32199571) * [该把优惠券发送给哪些用户?一文读懂Uplift模型](http://www.woshipm.com/marketing/5117249.html) * [智能营销增益模型(Uplift Modeling)的原理与实践](https://blog.csdn.net/jinping_shi/article/details/105583375) * [Uplift-Model 在贝壳业务场景中的实践](https://www.infoq.cn/article/faWuPA6cS3YS8IUaiqSl) * [阿里文娱智能营销增益模型 ( Uplift Model ) 技术实践](https://cloud.tencent.com/developer/article/1620903) * [Uplift 经典模型介绍](https://www.mdnice.com/writing/1fb9fb09ceb64001b324b465b01c977f) * [用机器学习来提升你的用户增长:第八步,Uplift模型](https://blog.csdn.net/u011984148/article/details/105721582) * [智能营销与因果推断-uplift模型](https://zhuanlan.zhihu.com/p/370708460) * [Uplift Modeling & QINI Curve with Python](https://www.kaggle.com/davinwijaya/uplift-modeling-qini-curve-with-python) * [pylift](https://github.com/df-foundation/pylift) * [中介效应、调节效应是什么?](https://zhuanlan.zhihu.com/p/57106782) * [调节中介混合模型](https://zhuanlan.zhihu.com/p/181689604) * [Stata+R: 一文读懂中介效应分析](https://zhuanlan.zhihu.com/p/99435552) * [一文读懂中介效应检验](https://zhuanlan.zhihu.com/p/362807411) * [结构方程模型建模思路及Amos操作--中介变量效果确定](https://www.bilibili.com/read/cv1186431?spm_id_from=333.999.0.0) * [lavaan简明教程](https://www.cnblogs.com/squidGuang/p/9054301.html) * [Netflix推荐系统模型的快速线上评估方法——Interleaving](https://zhuanlan.zhihu.com/p/68509372) * [interleaved-python](https://github.com/bearloga/interleaved-python) * [双重差分法(DID)介绍](https://zhuanlan.zhihu.com/p/48952513) * [合成控制法 (SCM): 只有一个实验对象的政策评价](https://zhuanlan.zhihu.com/p/74152117) * [合成控制法|一种架空历史的思维方式](https://zhuanlan.zhihu.com/p/110304466) * [合成控制法(SCM)安慰剂检验怎么玩](https://zhuanlan.zhihu.com/p/133744885) * [Generalized Synthetic Control Method](https://github.com/xuyiqing/gsynth) * [SyntheticControlMethods](https://github.com/OscarEngelbrektson/SyntheticControlMethods) * [Sparse Synthetic Controls](https://github.com/microsoft/SparseSC) * [单组中断时间序列分析简介](https://www.sohu.com/a/322820695_120053858) * [中断时间序列分析ITSA是什么? 很流行的政策评估新范式](https://blog.51cto.com/u_15057855/2676443) * [反事实的社会实验类型](https://zhuanlan.zhihu.com/p/59542845) * [Interrupted Time Series](https://github.com/kdlinda/ITSxPolicyAnalysis) * [中断时间序列分析及其在公共卫生领域中的应用](http://chinaepi.icdc.cn/zhlxbx/ch/reader/create_pdf.aspx?file_no=20150923&year_id=2014&quarter_id=10&falg=1) * [Interrupted Time Series SPE GCS 2019](https://github.com/JReileyClark/SPE-GCS-2019) * [google开源工具-CausalImpact](https://github.com/google/CausalImpact),[python版本](https://github.com/WillianFuks/tfcausalimpact) * [断点回归(regression discontinuity design)学习笔记](https://blog.csdn.net/claire_chen_jia/article/details/108857734) * [断点回归方法综述](https://zhuanlan.zhihu.com/p/333747378) * [Stata: 断点回归 (RDD) 教程](https://zhuanlan.zhihu.com/p/100524478) * [Step-by-Step:使用R语言进行断点回归(RDD)分析](https://www.jianshu.com/p/6ee94bcf2c29) * [Regression Discontinuity Design](https://github.com/rdpackages) * [论文深耕 | 计量入门干货——工具变量](https://zhuanlan.zhihu.com/p/345657213) * [IV在哪里?奇思妙想的工具变量](https://www.lianxh.cn/news/946348365bb2d.html) * [工具变量法(IV)的Stata操作](https://zhuanlan.zhihu.com/p/361542234) * [因果推理初探(5)——干预工具(上)](https://zhuanlan.zhihu.com/p/113240164) * [4种倾向性分析方法](https://zhuanlan.zhihu.com/p/43774955) * [基于个体的标准化法——倾向评分加权](http://chinaepi.icdc.cn/zhlxbx/ch/reader/create_pdf.aspx?file_no=20100225&flag=1&journal_id=zhlxbx&year_id=2010) * [Ways to close backdoors in DAGs](https://github.com/andrewheiss/closing-backdoors-dags) * [倾向性评分法(propensity score method,PSM)](https://cloud.tencent.com/developer/article/1759064) * [基于R语言逆概率加权(IPTW)并行生存曲线分析](https://blog.csdn.net/dege857/article/details/118542003?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link) * [因果推断综述解析|A Survey on Causal Inference(3)](https://zhuanlan.zhihu.com/p/364488325) * [因果推断](https://www.zhihu.com/column/c_1362873055493033984) * [Paper_CausalInference_abtest](https://github.com/DSXiangLi/Paper_CausalInference_abtest) * [Causal Inference for The Brave and True](https://matheusfacure.github.io/python-causality-handbook/landing-page.html) * [Using Causal Inference to Improve the Uber User Experience](https://zhuanlan.zhihu.com/p/367500455) * [大白话谈因果](https://www.zhihu.com/column/c_1408014345809227776) * [因果科学](https://www.zhihu.com/column/c_1362873055493033984) * [A Survey on Causal Inference](https://arxiv.org/abs/2002.02770) * [uber开源工具-Causal ML: A Python Package for Uplift Modeling and Causal Inference with ML](https://github.com/uber/causalml) * [微软开源工具-DoWhy:An end-to-end library for causal inference](https://github.com/microsoft/dowhy) * [awesome-causality-algorithms](https://github.com/rguo12/awesome-causality-algorithms) * 《应用统计因果推论》 * 《统计因果推理入门(翻译版) [Causal Inference in Statistics:A Primer]》