因果推断学习笔记二

本文深入探讨了因果推断中的潜在结果框架,强调了潜在结果在区分相关性和因果关系中的关键作用。讨论了核心问题,包括Ignorability和Consistency假设,以及如何通过这些假设将因果效应转化为可估计的统计量。此外,还介绍了CATE(条件平均因果效应)的估计,涉及到Conditional Ignorability和Positivity假设,并通过一个关于钠摄入与高血压影响的实例展示了从identification到estimation的过程。文章最后指出,考虑到异质性在因果模型中的重要性,以及如何通过更高级的分析方法提高模型准确性。

因果推断区别于传统的相关性研究很重要的一点是潜在结果框架, 也就是我们今天的topic所要涵盖的内容。今天的session我们将会cover以下几个话题:

  1. 什么是潜在结果

  2. 因果推断的核心问题

  3. 对于核心问题的讨论和答案

  4. 完整的实例

一、潜在结果

研究treatment对于结果的影响,我们想要同时知道同等条件下,不同treatment下的结果,从而能够得出结论,treatment的改变是否会导致结果的不同

例如
a) 吃药不吃药对于头痛个体(吃药前头痛)的影响

  1. 不吃药头痛, 吃药之后不头痛:有因果效应
  2. 不吃药不头痛,吃药后不头痛:没有因果效应

在这里插入图片描述

在这里插入图片描述

1.1 符号说明

我们先约定一下此次课程中所提到的符号,借助这些符号,把上面的因果效应的讨论抽象成数学公式。

随机变量XXX表示ddd维的协变量(covariate)

TTT表示干预(treatment)
YYY表示观测到的结果(observed outcome),我们今天讨论的是二元treatment,也就是T=0T=0T=0或者T=1T=1T=1

iii表示第iii个样本(sample/unit/individual)

Yi(T)Y_i(T)Yi(T)表示对于样本iii来说接受treatment T之后的潜在结果(potential outcome),比如Yi(1),Yi(0)Y_i(1), Y_i(0)Yi(1),Yi(0)

Yi(1)−Yi(0)Y_i(1)-Y_i(0)Yi(1)Yi(0)表示因果效应

在这里插入图片描述

1.2 因果推断的核心问题

对于潜在结果,{ Yi(1),Yi(0)}\{Y_i(1), Y_i(0)\}{ Yi(1),Yi(0)}中只会有一个被观测到,因果效应ground truth缺失。实际观测到的结果,只可能是潜在结果中唯一的一个,被称为factual outcome,另一个观测不到的被称为counterfactual。例如前面的例子中提到的对于一个头痛个体,treatment只能二选一,而不能同时给予两个treatment,

      i.   吃药,factual是吃药的结果

      ii.  不吃药,factual是不吃药带来的结果

再举个例子🌰:

滴滴向用户随机发送推荐短信(干预),用户要么收到短信,要么收不到,这时候用户的反应,只能是其中一种情形下的结果,而不可能是两个结果。对于此短信的反应的实际结果只能依赖于二选一的干预,而不能看到干预和不干预下的用户分别的反应。
在这里插入图片描述
在这里插入图片描述
基于潜在结果模型,我们感兴趣的是平均因果效应(Average treatment effect,简记为ATE)

ATE:E[Y(1)−Y(0)]=E[Y(1)]–E[Y(0)]ATE: E[Y(1)-Y(0)] = E[Y(1)] – E[Y(0)]ATE:E[Y(1)Y(0)]=E[Y(1)]

### 关于因果推荐系统的概述 因果推荐系统是一种结合因果推理和机器学习技术的新型推荐算法框架。它通过分析用户行为数据中的潜在因果关系,提升推荐系统的准确性、公平性和可解释性[^1]。传统的推荐系统主要依赖关联规则或协同过滤来预测用户的偏好,而这些方法可能忽略了隐藏的混杂因素(confounding factors),从而导致偏差估计。相比之下,因果推荐系统试图揭示用户行为背后的真正原因。 #### 因果推荐系统的核心概念 因果推荐系统的关键在于利用因果图(Causal Graphs)和反事实推理(Counterfactual Reasoning)。具体来说: - **因果图**:描述变量之间的因果关系网络,帮助识别哪些特征直接影响用户的行为。 - **反事实推理**:模拟如果某个条件发生变化,则结果会如何改变的情景。这种能力使得推荐系统可以评估不同干预措施的效果。 这种方法不仅提高了推荐质量,还增强了对决策过程的理解[^2]。 ```python import numpy as np from sklearn.linear_model import LinearRegression def estimate_causal_effect(X, T, Y): """ 使用线性回归简单估算处理效应 (T) 对目标变量 (Y) 的影响, 假设 X 是协变量矩阵。 参数: X: 协变量矩阵 T: 处理变量向量 Y: 结果变量向量 返回: estimated_effect: 估计的平均处理效应 """ model = LinearRegression() combined_X = np.column_stack((X, T)) model.fit(combined_X, Y) coefficients = model.coef_ estimated_effect = coefficients[-1] return estimated_effect ``` 上述代码片段展示了一个简单的因果效应估计示例,其中 `T` 表示某种干预措施(如是否观看某部电影),`Y` 则表示观察到的结果(如评分)。此函数可用于初步探索因果关系。 --- ### 推荐的相关资源 对于希望深入研究因果推荐系统的读者,以下是几类重要资源: 1. **学术论文** - “Causality-based Recommendation Systems” 提供了全面综述,讨论了如何将因果推断融入推荐引擎的设计中。 - 另一篇名为“Deep Causal Inference for Personalized Recommendations”的文章探讨了深度学习与因果建模相结合的方法及其应用案例。 2. **在线课程与教程** - Coursera 上开设的一门叫作《Machine Learning and Causal Inference》的课程专门讲解两者交叉领域的内容。 - 黄海广教授在中国大学MOOC平台发布的《机器学习》系列也涉及部分基础知识。 3. **实践指南和技术博客** - Medium 和 Towards Data Science 中有许多开发者分享的经验贴,比如介绍如何用 Python 实现基本因果模型的文章。 - Kaggle 社区也有不少公开竞赛项目围绕这一主题展开实验设计。 4. **工具库支持** - DoWhy 库是由微软开发的一个开源软件包,专为构建因果假设测试提供便利接口。 - EconML 同样值得尝试,尤其适用于经济学背景下的复杂场景分析。 --- ###
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值