Hern\(\'{a}\)n M. and Robins J. Causal Inference: What If.

计算causal effect的一个令人头疼的地方就在于, 往往对于一个个体来讲, 我们是无法同时观测到\(Y^0, Y^1\)的, 毕竟一个人如果做了心脏迁移手术(\(A=1\)), 则我们就无法得知\(Y^0\), 反之亦然.

2.1 Randomization

要知道, 计算\(\mathrm{Pr}(Y^a)\), 等价于

\[\sum_b \mathrm{Pr}(Y^a|A=b)\mathrm{Pr}(A=b),
\]

由于最开始讲的缘故, 我们很难通过模拟实验通过上式子来计算causal effect.

但是, 如果\(A\)是纯随机选择的, 与\(Y^a\)无关, 则我们有

\[\mathrm{Pr}(Y^a|A) = \mathrm{Pr}(Y^a),
\]

则我们能够很容易地计算出causal effect了.

这个在实际模拟实验中, 便是指, 对于任意一个个体, 我们抛一枚与其无关的硬币来判断其是否进行\(A=1\).

不过需要注意的是, \(Y\)与\(A\)依然不是独立的, 这是因为\(Y\)需要根据\(A\)来选择需要表现出\(Y^0\)或者是\(Y^1\).

\(Y^a\)与\(A\)是独立的, 我们记为\(Y^a \amalg A\).

因为markdown没法用\upmodels这个符号, 就姑且用\amalg来代替了.

2.2 Conditional randomization

自然的, 我们可以在条件\(L\)寻找一个

\[Y^a \amalg A | L.
\]

即, \(\mathrm{Pr}(Y^a|A,L) = \mathrm{Pr}(Y^a|L)\).

在实际的模拟实验中, 即\(A\)根据\(L\)的不同可以进行选择, 但与\(Y^a\)没有任何关系.

上面的两种随机实验的情况, 都是为了满足可交换性, 即exchangeability, 更具体的一个是边际性质的, 一个是条件性质的.

2.3 Standardization

那么根据我们的模拟实验如何计算causal effect呢?

一种方法是standardization, 实际上就是普通的全概率公式.

\[\sum_{l} \mathbb{E}[Y|L=l,A=a] \cdot \mathrm{Pr} [L=l].
\]

2.4 Inverse probability weighting

设想, 计算\(\mathrm{Pr}[Y^a]\), 实际上就只需要知道这个群体的每个个体的\(Y^a\)即可.

现在, 假设我们想要知道\(Y^0\), 但是在模拟实验中一部分是treated\((A=1)\), 所以, 我们需要知道\((A=1)\)的人的\(Y^0\)如何. 假设对这批样本进行的是untreated\((A=0\)), 则因为可交换性, 我们可以得知,

\[\mathrm{Pr}[Y^0|A=1,L=l] = \mathrm{Pr} [Y^0|A=0,L=l],
\]

所以只是单纯的\(\mathrm{Pr}[A=1,L=l]\)乘上右项而已.

可以公式化表示为

\[\mathbb{E} [ \frac{I(A=a)Y}{f[A|L]}],
\]

容易证明这个式子和上面的standardization实际上是一致的.

不过需要注意的是, 这个方法只适用于\(A\)是离散的时候.

Technical Point 2.2 Formal definition of IP weights

p23

Technical Point 2.3 Equivalence of IP weighting and standardization

p24

这个technical 讨论了IP weighting 和 standardization 的等价性以及适用条件, 这里特别注明, 当\(A\)是连续的时候, 且\(f(A|L)\)表示概率密度的时候:

\[\mathbb{E} [ \frac{I(A=a)Y}{f[A|L]}] = \mathbb{E} \{\mathbb{E}[\frac{I(A=a)}{f(a|L)}|L]\mathbb{E}[Y^a|L]\} = \mathbb{E}[\mathrm{Pr}[A=a|L]\mathbb{E}[Y^a|L]] = 0.
\]

最后等于0是因为\(\mathrm{Pr}(A=a|L)=0\).

Chapter 2 Randomized Experiments的更多相关文章

  1. Chapter 3 Observational Studies

    目录 概 3.1 3.2 Exchangeability 3.3 Positivity 3.4 Consistency First Second Fine Point 3.1 Identifiabil ...

  2. Statistical Models and Social Science

    1.1 Statistical Models and Social Reality KEY: complex society v.s statistical models relationship,d ...

  3. CHAPTER 5 ‘The Master of Those Who know’ Aristotle 第5章 “有识之士的大师” 亚里士多德

    CHAPTER 5 ‘The Master of Those Who know’ Aristotle 第5章 “有识之士的大师” 亚里士多德 ‘All men by nature desire to ...

  4. Programming a Hearthstone agent using Monte Carlo Tree Search(chapter one)

    Markus Heikki AnderssonHåkon HelgesenHesselberg Master of Science in Computer Science Submission dat ...

  5. Modern C++ CHAPTER 2(读书笔记)

    CHAPTER 2 Recipe 2-1. Initializing Variables Recipe 2-2. Initializing Objects with Initializer Lists ...

  6. Android Programming: Pushing the Limits -- Chapter 7:Android IPC -- ApiWrapper

    前面两片文章讲解了通过AIDL和Messenger两种方式实现Android IPC.而本文所讲的并不是第三种IPC方式,而是对前面两种方式进行封装,这样我们就不用直接把Aidl文件,java文件拷贝 ...

  7. Android Programming: Pushing the Limits -- Chapter 7:Android IPC -- Messenger

    Messenger类实际是对Aidl方式的一层封装.本文只是对如何在Service中使用Messenger类实现与客户端的通信进行讲解,对Messenger的底层不做说明.阅读Android Prog ...

  8. [转]第四章 使用OpenCV探测来至运动的结构——Chapter 4:Exploring Structure from Motion Using OpenCV

    仅供参考,还未运行程序,理解部分有误,请参考英文原版. 绿色部分非文章内容,是个人理解. 转载请注明:http://blog.csdn.net/raby_gyl/article/details/174 ...

  9. Programming Assignment 2: Randomized Queues and Deques

    实现一个泛型的双端队列和随机化队列,用数组和链表的方式实现基本数据结构,主要介绍了泛型和迭代器. Dequeue. 实现一个双端队列,它是栈和队列的升级版,支持首尾两端的插入和删除.Deque的API ...

随机推荐

  1. Mysql索引数据结构详解(1)

    慢查询解决:使用索引  索引是帮助Mysql高效获取数据的排好序的数据结构 常见的存储数据结构: 二叉树    二叉树不适合单边增长的数据 红黑树(又称二叉平衡树)    红黑树会自动平衡父节点两边的 ...

  2. 25. Linux下gdb调试

    1.什么是core文件?有问题的程序运行后,产生"段错误 (核心已转储)"时生成的具有堆栈信息和调试信息的文件. 编译时需要加 -g 选项使程序生成调试信息: gcc -g cor ...

  3. c++ cmake及包管理工具conan简单入门

    cmake是一个跨平台的c/c++工程管理工具,可以通过cmake轻松管理我们的项目 conan是一个包管理工具,能够自动帮助我们下载及管理依赖,可以配合cmake使用 这是一个入门教程,想深入了解的 ...

  4. Spark检查点机制

    Spark中对于数据的保存除了持久化操作之外,还提供了一种检查点的机制,检查点(本质是通过将RDD写入Disk做检查点)是为了通过lineage(血统)做容错的辅助,lineage过长会造成容错成本过 ...

  5. Flume(二)【入门】

    目录 一.安装部署 1.安装地址 2.安装步骤 二.入门案例 1.官方案例(nestat->logger) 2.实时监控单个追加文件(exec->hdfs) 3.实时监控目录下多个新文件( ...

  6. 100个Shell脚本——【脚本3】tomcat启动脚本

    [脚本3]tomcat启动脚本 一.脚本tomcatd.sh #!/bin/bash # chkconfig:2345 64 36 # description: Tomcat start/stop/r ...

  7. OpenStack之七: compute服务(端口8774)

    注意此处的bug,参考o版 官网地址 https://docs.openstack.org/nova/stein/install/controller-install-rdo.html 控制端配置 # ...

  8. maven高级学习

    上一篇<maven是什么>介绍了最初级的maven学习,今天就趁着周末的大好时光一起学习下maven的高级知识吧. 1.maven工程要导入jar包的坐标,就必须要考虑解决jar冲突 1) ...

  9. c3p0的使用步骤

    //1.导入c3p0的连个包,和mysql的驱动包//2.配置c3p0.xml的配置文件 <c3p0-config> <!-- 使用默认的配置读取连接池对象 --> <d ...

  10. 【力扣】337. 打家劫舍 III

    在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区.这个地区只有一个入口,我们称之为"根". 除了"根"之外,每栋房子有且只有一个" ...