因果分析

article/2025/5/10 18:40:25

Causality Problems(相关不一定是因果):

  • 伪关系:Y和X只是恰巧同时发生,实际上没有明显的逻辑上的关联,如巧克力销量和诺奖得主数量
  • 遗漏变量偏差:存在既影响X也影响Y的混淆变量,如年龄混淆了年收入和罹患癌症几率之间的关系
  • 幸存者偏差:部分样本没有被收集到
  • 反向因果
  • 联立性偏差

因果分析的核心:

  • identification:将因果关系从关联中分割
  • estimation:计算因果关系的大小
  • inference:基于统计的推断(有多大的信心结果是正确的Hypothesis testing,结果会存在多大的波动Confidence interval)
  • 流派:
    • Potential Outcome Model:个体i的因果效应\tau _{i}=Y_{i}(1)-Y_{i}(0),因为真实世界不存在平行宇宙,Y_{i}(1)(个体受到效用后的结果)或Y_{i}(0)(个体未收到效用后的结果)只有一个可以被观测到,所以需要构造合适的对照组来模拟这种情况,即counterfactual
    • Graph Causal Model:

因果分析的工具:

  • A/B testing:
  • Matching:
    • CEM
    • PSM
  • Fixed Effect
  • Difference-in-differences:
    • 是一种特殊的固定效应模型,模型简单,基本不需要算法拟合
    • 核心假设:Parallel Trend 
    • 指标差异拆分为trend和treatment带来的差异两部分,通过平行趋势检验,利用对照组政策前后的波动差异来量化trend,从而剥离出treatment带来的独立影响(类似于“AB差异-AA差异=真实策略差异”的思想)
  • Synthetic Control:
    • 对实验组在实验日期之后构造一个虚拟的对照组
    • 由于该方法对内生性控制方面的扩展不足, 比较适合外生事件的分析。内生事件的分析推荐用PSM
    • 不适用于微观数据分析,原因有:不存在十年以上的微观数据 (比如说追踪调查);该方法不适用于参照组无限大的情况 (比如说统计了上千家庭的微观截面数据 );即适合小样本量长时间跨度(matching+DID适合大样本量短时间跨度)
    • 适用于“试点项目“
  • Matrix Completion

例子:一项新活动上线,评估该活动对用户价值的影响:

  • 对比活动前后的用户价值:没有剥离前后两个时段的市场要素的差异;
  • 对比参与活动的用户与未参与活动的用户:参与活动的用户大概率本事是忠实用户(选择偏差);
  • AB实验:一组可以看到活动,一组看不到活动,对比两组用户:可以进一步筛选出可以看到活动的用户中参与了该活动的用户,此外如果参与该活动的渗透率低,可以考虑在看不到活动的组中做matching

 

Reference

因果分析的理论和应用


http://chatgpt.dhexx.cn/article/dJeKEOcq.shtml

相关文章

史上最全因果推断合集-14(因果分析在贝壳的探索实践)

因果推断的应用范围十分广泛,例如气候变暖、新药研发、物理研究、经济学等。AI领域,特别是互联网产业,如何科学的进行因果分析,是一个重要的议题。本次分享的主题是因果分析在贝壳的探索和实践。 今天的介绍会围绕下面三点展开&a…

史上最全因果推断知识合集-4(快手因果推断与实验设计)

导读:理解和识别用户行为指标的相互关系是实验分析的目标。在社区氛围下,影响用户行为的因素更为复杂,关系识别更为困难,如何使用各种学科的方法,对社区进行宏观或微观的建模分析,系统性的评估各种策略的长…

因果分析与相关

在现实场景中我们常被要求回答“如果”的问题,经济学家称之为反事实。如果我现在要的不是这个价格,而是另一个价格,会发生什么?如果我不吃低脂饮食,而是吃低糖饮食会怎么样?如果你在银行工作,提…

因果分析.科学实验评估

目录 1. A/B Test原理 2. 实验分组划分 3.实验指标设计 4. 实验效果评估 5.离线指标测算 6.实验结果分析 不是每个想法都是好的,大部分想法都是不好的。 在互联网背景下,快速试错已经成为产品持续迭代的必备能力。借鉴传统行业(医学等)成熟的实验…

因果关系分析方法

因果关系推断,可以说是数据分析领域最难的问题之一,争吵很多年也没有定论。经常同学们被问到:“到底这个问题的原因是什么!”都会觉得分析起来很挠头,今天我们系统讲解下。 1 常见方法1:拆解法 最常见的用…

因果分析来了!

我是小z,也可以叫我阿粥~ 本文的分享主题为观测数据因果推断,希望通过本文可以让大家对观测数据因果推断有一个整体的了解,明晰当前观测数据因果推断的困境和主要处理方法,以及在特定问题中的一套通用解法。 具体将围绕以下3部分展…

因果分析:原理、方法论、应用

什么是因果分析? 因果分析(Causal Analysis)是分析彼此之间的因果关系。 因果推断(Causal Inference)是基于原因推结果,是因果分析的一部分。 因果分析是数据分析、数据科学中重要的方法,广泛应用于A/B实验,异常分析&#xff0…

C语言有负号的除法以及求余运算规则

举例说明 abc…d 1753…2 被除数除数商…余数 有负号的运算规则 求: -17除以5的商和余数17除以-5的商和余数-17除以-5的商和余数 答: abc…d 用a代表被除数,用b代表除数,用c代表商,用d代表余数. c的数值是|a|/|b|,c是正号还是负号由a和b的负号数量决定;d的正负号和a相同…

C语言取余问题

如果 % 左边的操作数是正数&#xff0c;则取余的结果为正数或零&#xff1b;如果 % 左边的操作数是负数&#xff0c;则取余的结果为负数或零。 例如代码运行如下&#xff1a; 主代码&#xff1a; #include<iostream> using namespace std; int main() {cout<<(13…

c语言怎么对大数求余,C语言:大数取余

大数取余数(数组) 今天做学校的oj时遇到一题&#xff0c;问题可见一下截图&#xff1a; 查遍各大论坛&#xff0c;都没有遇到合适的方法&#xff0c;普通方法不可用&#xff0c;要采用数组的形式。 被除数超过long long类型&#xff0c;不能采用常规思路&#xff0c;否则会出现…

C语言--求余问题

C在线工具 | 菜鸟工具 在c语言中&#xff0c;如果 a为一个四位数 那么a%1000/100是啥&#xff1f; 假设a的值为1345&#xff0c;那么当计算a%1000时&#xff0c;值为345 #include <stdio.h>int main() {int a 1345;int b a%1000;printf("%d",b); } 而345/…

软件开发流程图

文件下载https://download.csdn.net/download/weixin_43250197/12243113

嵌入式软件开发的特点和流程

嵌入式软件就是嵌入在硬件中的操作系统和开发工具软件&#xff0c;被广泛应用于工业控制、消费电子、医疗、通信等领域&#xff0c;我们常见的手机、电脑、数码相机等都运用到了嵌入式软件技术。为了确保嵌入式系统的运行&#xff0c;嵌入式软件迅速崛起&#xff0c;在整个软件…

一套完整的软件开发流程是怎样的?

​做什么事都需要一个流程&#xff0c;软件开发也不例外。 那么&#xff0c;一个软件从无到有到底是怎么开发的&#xff1f;一个软件产品的结果为什么是这样&#xff1f;为什么开发的速度不能再快一点。为什么程序员大多秃顶&#xff1f;他们有那么忙吗&#xff1f;完整的软件…

汽车软件V流程开发

1.系统需求分析 调研并输出系统需求文档 2.系统架构设计 通常和第一步并行&#xff0c;并在系统需求文档中体现。第1和第2步都是系统层级的&#xff0c;下面应该分软件和硬件两个分支&#xff0c;这里我们只关注软件这个分支。 3.软件需求分析 输出软件需求文档&#xff0…

详解自动驾驶安全软件开发流程

1 引言 自动驾驶汽车开发越来越重视性能、质量和性价比&#xff0c;自动驾驶口碑成为新技术应用取得市场成功的关键&#xff0c;而口碑的建立依赖于相关软件开发流程、周期、时间和质量。一家汽车企业只有拥有或者其软件开发供应商具有成熟的软件开发团队、软件开发流程、可复用…

软件开发流程:需求评审流程

1 常规需求 图1 常规需求评审流程 2 非常规需求 图2 非常规需求评审流程 3 紧急需求 图3 紧急需求评审流程

软件开发流程知识概括

软件开发流程知识概括 软件开发流程简述开发流程详解软件开发流程涉及的图软件开发总结 软件开发流程简述 研发流程简述&#xff1a; 研发流程详解&#xff1a; 需求提出&#xff1a; ①这个环节主要是产品爸爸给我们提需求&#xff0c;每个需求都是他们从用户&#xff0c…

软件开发的一般流程是什么?

软件开发流程分为: 需求确认——概要设计——详细设计——编码——单元测试——集成测试——系统测试——维护 软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程。软件一般是用某种程序设计语言来实现的。通常采用软件开发工具可以进行开发。软件分为系统软…

python----列表操作

1. append(添加&#xff0c;添加的类型不变) a [1, 2] b [3, 4] c a.append(b) print(a--->, a) print(b--->, b) print(c--->, c)2. extend(末尾添加&#xff0c;会合并成一个列表) a [1, 2] b [3, 4] c a.extend(b) print(a--->, a) print(b--->, b) …