本部分是学习课程:《因果推断入门》个人学习笔记。(感兴趣的小伙伴可以过去围观课程,讲的挺容易理解的)
(主要最近对这个方面感兴趣,并且看到这个有大佬Judea Pearl背书,以下是Twitter截图)

以下所有内容仅供学习交流使用。

文章目录

  • 课程简介
    • 前言
    • 因果性和相关性
  • Simpson's paradox(辛普森悖论)上
  • Simpson's paradox(辛普森悖论)下
  • 概率统计基本工具(上)
  • 概率统计基本工具(下)
  • 图模型
  • Structural Causal Model(SCM 结构因果模型)
  • Intransitive case
  • 链状结构(Chain Structure)
  • 叉状结构(Fork Structure)
  • 对撞结构(Collider Structure)
  • D-分隔(D-seperation )
  • 模型检验和等价类
  • 乘积分解法则
  • 混淆变量
  • 观测数据和试验数据(上)
  • 观测数据和试验数据(下)
  • 干预
  • do算子
  • 调整公式(adjustment formula)
  • 其他相关link(后续补充):
  • References:

本部分主要完成第一季到21集(发布博客前只更新到此,后续看情况补充)的学习。后面接着想去阅读一些paper跑跑实验。

课程简介

前言

  1. 因果推断不是一个方法/工具本身,而是一种统计框架。(可以和各种各样的模型衔接)
  2. 本学科发展比较晚(大约30年前才慢慢形成描述因果推断的语言)。
  3. Judea Pearl,Dornald Rubin,James Robins,主要由以上三人提出因果推断框架。
  4. (机器学习的发展)模式识别(现阶段很多任务能够完成) -> 逻辑推断。
  5. 开始应用于科学问题:如
    a. 评价药物效果。
    b. 全球变暖。
    被动观察数据(没有干预的观察数据)寻找多个因素的关系,这是传统的统计框架难以解决。
  6. 本课程仅仅入门,教材:Causal Inference in Statistics, by Judea Pearl

因果性和相关性

案例:巧克力和诺贝尔奖获奖人数。

相关性做预测没有问题,但是做决策往往会有问题。


Simpson’s paradox(辛普森悖论)上

案例1:(学校录取率和性别关系)

看似结果有性别歧视倾向。

按照系分开->结果却不一样了。
案例2:(锻炼量和胆固醇量)

年龄(同时影响)-> 锻炼和胆固醇
锻炼->胆固醇
如果隐藏年龄,会得出一些难以理解的结论:锻炼越多,胆固醇越大。
有可能是因为由于年龄增大,胆固醇增多,所以需要大量锻炼。

现在问题在于:如何构造探究锻炼和胆固醇含量的关系,在排除掉年龄因素干扰的情况下?

案例3. 药的疗效

得到结论:无论是男女,药的恢复有帮助。
如果做出一下整合:

结果相反。
矛盾的现象解释思路:
使用条件概率表达上面数据,计算吃药/不吃药条件下恢复的概率。

结论还与数据中吃药的人群性别有关(是男是女)
反转条件:
a.吃药的人去为女性。
b.女性比男性更难恢复。
可以理解为:
性别->吃药和恢复。
吃药->恢复。
结论:需要看性别的分类数据,才能完整得到吃药和恢复的关系。否则会混淆两者之间关系。


Simpson’s paradox(辛普森悖论)下

传统框架下,以上案例比较复杂。
案例4:吃药和恢复2


有时候分类数据还是会影响结果,主要是关系图变了。


概率统计基本工具(上)

  1. 离散和连续随机变量
  2. 事件和概率
  3. 条件概率
  4. 事件独立性,Conditional Independence(在某一条件下事件独立)
    P(A|B,C)=P(A|C),但B,A不一定独立。
  5. 常用计算
    a. Law of total probability
    条件:A与B相交非空
    P(A∪B)=P(A)+P(B)P(A\cup B)=P(A) +P(B)P(A∪B)=P(A)+P(B)
    =>
    P(B)=∑i=0nP(B∩Ai)P(B) =\sum_{i = 0}^{n} P(B\cap A_i)P(B)=∑i=0n​P(B∩Ai​)
    b. 贝叶斯法则(略)
  6. 期望,(样本期望,无偏估计)估计真实期望,条件期望。
  7. 方差,(样本期望,无偏估计)估计真实方差。
  8. 协方差。样本协方差。相关系数,(样本估计)真实相关系数。

概率统计基本工具(下)

  1. 线性回归,回归方程, 满足
    f(x)=E(Y∣X=x]f(x) = E(Y|X=x]f(x)=E(Y∣X=x]最优。
  2. 线性回归分析和多元线性回归
  3. 逻辑回归

图模型

图的定义(参考数据结构相关内容)
完全图(complete graph)
路径,有向图,父节点和子节点,环,无环图(DAG)


Structural Causal Model(SCM 结构因果模型)

  1. 简化的因果模型研究变量x与y的关系(x直接导致y的原因)。
    Y=f(x)Y = f(x)Y=f(x)
    注意该函数 f 不可逆。
    有事x不仅仅是Y的唯一原因:
    Y=f(x,z,....)Y = f(x,z,....)Y=f(x,z,....)
    还有可能x为间接原因(通过复合函数表示)
    Y=f(g(x))Y = f(g(x))Y=f(g(x))
  2. 因果模型与图的对应关系:
    1)
    2)

    3)

    Exogenous variables u(外生变量)-> Root nodes
    Endogenous variable v(内生变量)-> descendent nodes of root nodes
    Edges -> function f

Intransitive case

X与Y统计相关,但是X与Y不一定有因果性。
X导致Y,X与Y是不是统计相关的?(大部分是的,但小部分可能统计不相关)
案例1:异或(x ^ uy = Y)
x与y有因果性,但是统计独立(可以计算条件概率进行推断)
案例2:



计算可以得到:z与x独立(计算P(z),P(z|x=1),P(z|x=2))

链状结构(Chain Structure)



叉状结构(Fork Structure)



对撞结构(Collider Structure)




D-分隔(D-seperation )


通过direction判断更复杂的有向图中,两个变量的统计相关性

可以理解为有一个通路存在因果性,两个变量存在因果性质。否则为两者独立。

模型检验和等价类

1)检验
通过G得到任何两个节点统计相关性(条件相关性)
模型G来产生数据S,分析产生数据相关性。
从而判断G是否构建正确。


2)等价类

单从统计相关角度分析,无法区分Fork和Chain结构。

collider和Fork(chain)可以区分。
更加复杂情况:(如有遇到有向图中有Chain和Fork的地方,我们无法区分)

colliders with adjacent parents are indistinguishable.(相邻的父母节点是碰撞情况下无法区分)

把两个图的等价类部分去掉。看剩下部分是否等价=>判断两个图是否等价。

乘积分解法则

对于n个变量,我们如果知道变量之间的因果图结构。我们能够对其联合概率密度进行化简。(前提因果图无环)

混淆变量


confounder变量

一下例子都不存在confounder:

1)随机实验

观测数据进行因果推断很难,但是实验数据很容易。
随机实验=>做出干预(Intervention)改变数据生成机制。

案例:A/B test

观测数据和试验数据(上)



干预数据生成是直接获得因果关系的重要点。

观测数据和试验数据(下)



干预



do算子


两个概率一样,这个时候我们可以直接用机器学习model进行因果推断。

调整公式(adjustment formula)


结论证明后半段:
不需要adjust情况:


其他相关link(后续补充):

  1. 一些知乎上的讨论:
    如何将因果推断(分析)和深度学习有机结合弥补两者的不足,有哪几个关键问题需要突破?
    如何理解因果推理因果关系在计算机视觉方面的结合?
  2. 因果推断paper 收集:https://github.com/rguo12/awesome-causality-algorithms

References:

  1. 因果推断入门 : https://www.bilibili.com/video/BV1sJ41177sg

欢迎评论指正和补充

0x00000004 因果推理 —— 入门学习笔记相关推荐

  1. dubbo入门学习笔记之入门demo(基于普通maven项目)

    注:本笔记接dubbo入门学习笔记之环境准备继续记录; (四)开发服务提供者和消费者并让他们在启动时分别向注册中心注册和订阅服务 需求:订单服务中初始化订单功能需要调用用户服务的获取用户信息的接口(订 ...

  2. Crypto++入门学习笔记(DES、AES、RSA、SHA-256)

    Crypto++入门学习笔记(DES.AES.RSA.SHA-256) 背景(只是个人感想,技术上不对后面的内容构成知识性障碍,可以skip): 最近,基于某些原因和需要,笔者需要去了解一下Crypt ...

  3. 机器学习入门学习笔记:(4.2)SVM的核函数和软间隔

    前言 之前讲了有关基本的SVM的数学模型(机器学习入门学习笔记:(4.1)SVM算法).这次主要介绍介绍svm的核函数.软间隔等概念,并进行详细的数学推导.这里仅将自己的笔记记录下来,以便以后复习查看 ...

  4. 机器学习入门学习笔记:(3.2)ID3决策树程序实现

    前言 之前的博客中介绍了决策树算法的原理并进行了数学推导(机器学习入门学习笔记:(3.1)决策树算法).决策树的原理相对简单,决策树算法有:ID3,C4.5,CART等算法.接下来将对ID3决策树算法 ...

  5. 机器学习入门学习笔记:(2.3)对数几率回归推导

    理论推导   在以前的博客(机器学习入门学习笔记:(2.1)线性回归理论推导 )中推导了单元线性回归和多元线性回归的模型.   将线性回归模型简写为:y=ωTx+by = \omega^Tx+b:   ...

  6. 机器学习入门学习笔记:(2.2)线性回归python程序实现

      上一篇博客中,推导了线性回归的公式,这次试着编程来实现它.(机器学习入门学习笔记:(2.1)线性回归理论推导 )   我们求解线性回归的思路有两个:一个是直接套用上一篇博客最后推导出来的公式:另一 ...

  7. 汇编入门学习笔记 (十二)—— int指令、port

    疯狂的暑假学习之  汇编入门学习笔记 (十二)--  int指令.port 參考: <汇编语言> 王爽 第13.14章 一.int指令 1. int指令引发的中断 int n指令,相当于引 ...

  8. node入门-学习笔记

    文章目录 node入门-学习笔记 node 启动node服务 重构express-run node入门-学习笔记 node 为什么后端要用node, 因为它是js js运行时环境 主要使用expres ...

  9. 计算机指令int,汇编入门学习笔记 (十二)—— int指令、端口

    疯狂的暑假学习之  汇编入门学习笔记 (十二)--  int指令.端口 参考: <汇编语言> 王爽 第13.14章 一.int指令 1. int指令引发的中断 int n指令,相当于引发一 ...

  10. python基础入门学习笔记 (2)

    python基础入门学习笔记 2021年2月8日 1 编译器和解释器的区别 编译器/解释器:高级语言与机器之间的翻译官 2 值传递: print "a = ",a print &q ...

最新文章

  1. mysql登录服务器报错_mysql登录服务器报错
  2. FAILED: Error in metadata: java.lang.RuntimeException: Unable to instantiate org.apache.解决办法
  3. Android 高级Drawable资源---复合Drawable----变换Drawable---RotateDrawable用法实例
  4. okhttp 连接池_okhttp 源码分析
  5. arduino 土壤温湿度传感器_嫌arduino太贵?太大?试试ATTINY85!DIY温湿度计入门级教程...
  6. C#中IEnumerableT.Distinct()将指定实体类对象用Lambda表达式实现多条件去重
  7. ionic4 hammerjs手势事件左滑右滑
  8. 那些真正有用的经验,都是和高手过招换来的
  9. CactiEZ中文版说明
  10. multiplot 安装与配置
  11. kotlin语言学习文档 for Android
  12. linux 卸载 java_Linux安装卸载JDK完整步骤
  13. rose服务器系统,ROSE HA 服务器集群软件
  14. xrd连续扫描和步进扫描_XRD步进扫描方式和连续扫描方式选择
  15. Mybatis框架中Oracle使用BLOB字段存储图片并展示(详细步骤)
  16. 开心网程炳皓:早期创业公司应该做一根针
  17. 人类的下一个走向:无用阶级
  18. 一文带你深入浅出C语言数组
  19. ZOJ-1003-Jugs
  20. 怎么卸载虚幻4_专访Epic Games:虚幻引擎5离手游近在咫尺,中小团队也能很快上手...

热门文章

  1. 工业控制信息系统中的商用密码应用思考
  2. 一年中的最后一天说说_2020最后一天的心情说说
  3. 德州大学奥斯汀分校计算机科学排名,德州大学奥斯汀分校专业排名一览及最强专业推荐(QS世界大学排名)...
  4. 计算机桌面如何整理,怎么整理电脑桌面
  5. c语言中floor有什么作用,floor函数?floor函数的使用方法?ceil函数?C语言 floor 函数...
  6. 我在华为的十年----徐家俊
  7. 超级牛人华为工作十年离职感想
  8. UCanCode发布跨平台开源组态\ 建模\仿真\工控VX++ 2021
  9. JavaScript 学习笔记 - 5 窗口与框架
  10. Android 直播 直播播放器选型