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

这一章讲一种新的方法: propensity scores.

15.1 Outcome regression

在满足条件可交换性下,

\[\mathbb{E} [Y^{a=1, c=0}|L=l] = \mathbb{E} [Y|A=1, C=0, L=l].
\]

之前的模型都是对等式左端进行建模, 倘若我们对等式右端进行建模呢?

\[\mathbb{E} [Y|A,C=0, L] = \alpha_0 + \alpha_1 A + \alpha_2 AL + \alpha_3L.
\]

15.2 Propensity scores

在IP weighting 和 g-estimation的使用过程中, 我们需要估计条件概率\(\mathrm{Pr}[A=1|L]\), 记为\(\pi (L)\).

\(\pi (L)\) 就是所谓的propensity scores, 其反应了特定\(L\)的一种倾向.

首先我们要证明,

\[Y^a \amalg A | L \Rightarrow Y^a \amalg A | \pi(L).
\]

不妨假设\(\pi(L) = s \Leftrightarrow L \in \{l_i\}\), 则

\[\begin{array}{ll}
\mathrm{Pr}[Y^a|\pi(L)=s]
&= \mathrm{Pr} [Y^a|L \in \{l_i\}] \\
&= \frac{\sum_i\mathrm{Pr}[Y^a,L=l_i]}{\sum_i \mathrm{Pr} [L=l_i]}\\
&= \frac{\sum_i\mathrm{Pr}[Y|A=a, L=l_i]\mathrm{Pr}[L=l_i]}{\sum_i \mathrm{Pr} [L=l_i]}\\
&= \frac{\mathrm{Pr}[A=a|L=l] \cdot \sum_i\mathrm{Pr}[Y|A=a, L=l_i]\mathrm{Pr}[L=l_i]}{\mathrm{Pr}[A=a|L=l]\sum_i \mathrm{Pr} [L=l_i]}\\
&= \frac{\cdot \sum_i\mathrm{Pr}[Y|A=a, L=l_i]\mathrm{Pr}[A=a, L=l_i]}{\sum_i \mathrm{Pr} [A=a, L=l_i]}\\
&= \frac{\cdot \sum_i\mathrm{Pr}[Y, A=a, L=l_i]}{\sum_i \mathrm{Pr} [A=a, L=l_i]}\\
&= \frac{\cdot \mathrm{Pr}[Y, A=a, \pi(L)=s]}{\mathrm{Pr} [A=a, \pi(L)]}\\
&= \mathrm{Pr} [Y|A=a, \pi(L)=s].
\end{array}
\]

注意: \(\pi(l_i) = \pi(l_j) = \pi(l) = s\).

注意到, 上面有很重要的一步, 我们上下同时乘以\(\mathrm{Pr}[A=a|L=l]\), 实际上只有当\(A \in \{0, 1\}\)的时候才能成立, 因为二元, 加之\(\pi(L)=s\), 所以

\[\mathrm{Pr}[A=a|L=l_i] = \mathrm{Pr}[A=a|L=l_j].
\]

也就是说当\(A\)不是二元的时候, 上面的推导就是错误的了.

怪不得书上说, propensity scores这个方法是很难推广的非二元treatments的情况的.

15.3 Propensity stratification and standardization

此时, 我们可以把\(\pi(L)\)看成一个新的中间变量\(L\)(confounder?), 如下图:

要知道, 原来的\(L\)可能是一个高维向量, 现在压缩为一维, 这意味着我们的可以将

\[\mathbb{E}[Y|A, C=0, \pi(L)]
\]

假设地更加精简.

估计或许更加牢靠(直接无参数模型?).

但是需要指出是, 不同个体的\(\pi(L)\)往往都是不同的, 这就导致我们想要估计

\[\mathbb{E} [Y|A=1, C=0|\pi(L)=s] - \mathbb{E} [Y|A=0, C=0|\pi(L)=s]
\]

几乎是不可能的.

一种比较好的做法是, 分成一段段区间, 考虑

\[\mathbb{E} [Y|A=1, C=0|\pi(L)\in \Delta_s] - \mathbb{E} [Y|A=0, C=0|\pi(L)\in \Delta_s].
\]

比如书上推荐的10分位.

当然这种做法会在一定程度上破化条件可交换性, 但是可以认为如果区间取得比较合适, 结果应该是比较合理的.

另外需要指出的, 我们往往会陷入一个误区, 觉得\(\pi(L)\), 即条件概率\(\mathrm{Pr}[A=1|L]\)的估计越准确越好, 实际上不是.

我们需要保证的仅仅是满足条件可交换性, 实际上准确度无关紧要.

有些时候过分追求准确度会适得其反, 因为这时我们往往会引入很多的变量, 导致我们的条件可交换性被大大破坏了.

所以不要仅仅当成是回归问题来看.

15.4 Propensity matching

看就是就是matching的翻版, 不过我matching也没搞懂哦.

15.5 Propensity models, structural models, predictive models

就主要是15.3里讲过的.

Fine Point

Nuisance parameters

Effect modification and the propensity score

Technical Point

Balancing scores and prognostic scores

Chapter 15 Outcome Regression and Propensity Scores的更多相关文章

  1. 零元学Expression Blend 4 - Chapter 15 用实例了解互动控制项「Button」I

    原文:零元学Expression Blend 4 - Chapter 15 用实例了解互动控制项「Button」I 本章将教大家如何更改Button的预设Template,以及如何在Button内设置 ...

  2. Propensity Scores

    目录 基本的概念 重要的结果 应用 Propensity Score Matching Stratification on the Propensity Score Inverse Probabili ...

  3. Thinking in Java from Chapter 15

    From Thinking in Java 4th Edition. 泛型实现了:参数化类型的概念,使代码可以应用于多种类型.“泛型”这个术语的意思是:“适用于许多许多的类型”. 如果你了解其他语言( ...

  4. Think Python - Chapter 15 - Classes and objects

    15.1 User-defined typesWe have used many of Python’s built-in types; now we are going to define a ne ...

  5. 《C++ Primer》 chapter 15 TextQuery

    <C++ Primer>中第15章为了讲解面向对象编程,举了一个例子:设计一个小程序,能够处理查询给定word在文件中所在行的任务,并且能够处理“非”查询,“或”查询,“与”查询.例如执行 ...

  6. 【C++ Primer 5th】Chapter 15

    摘要: 1. 面向对象程序设计的核心思想是数据抽象.继承和动态绑定.数据抽象将类的接口和实现分离:继承定义相似的类型并对齐相似关系建模:动态绑定,在一定程度上忽略相似类型的区别,而以统一的方式使用它们 ...

  7. 《算法导论》— Chapter 15 动态规划

    序 算法导论一书的第四部分-高级设计和分析技术从本章开始讨论,主要分析高效算法的三种重要技术:动态规划.贪心算法以及平摊分析三种. 首先,本章讨论动态规划,它是通过组合子问题的解而解决整个问题的,通常 ...

  8. MySQL Crash Course #07# Chapter 15. 关系数据库. INNER JOIN. VS. nested subquery

    索引 理解相关表. foreign key JOIN 与保持参照完整性 关于JOIN 的一些建议,子查询 VS. 联表查询 我发现MySQL 的官方文档里是有教程的. SQL Tutorial - W ...

  9. Chapter 6 — Improving ASP.NET Performance

    https://msdn.microsoft.com/en-us/library/ff647787.aspx Retired Content This content is outdated and ...

随机推荐

  1. 日常Java 2021/9/26 (二柱升级版)

    package m; import java.util.Scanner;import java.util.Random; public class di_er { static int number= ...

  2. day02 Rsyuc备份服务器

    day02 Rsyuc备份服务器 一.备份 1.什么是备份 备份就是把重要的数据或者文件复制一份保存到另一个地方,实现不同主机之间的数据同步 一般数据比较重要的情况下,数据如果丢失很容易找不回来了的, ...

  3. Scala(五)【集合的高级使用】

    目录 一.集合属性 size length contains mkString 二.集合方法 drop.dropRight distinct:去重 head.last:获取第一个.最后一个元素 tai ...

  4. Hbase(一)【入门安装及高可用】

    目录 一.Zookeeper正常部署 二.Hadoop正常部署 三.Hbase部署 1.下载 2.解压 3.相关配置 4.分发文件 5.启动.关闭 6.验证 四.HMaster的高可用 一.Zooke ...

  5. 一起手写吧!promise.all

    Promise.all 接收一个 promise 对象的数组作为参数,当这个数组里的所有 promise 对象全部变为resolve或 有 reject 状态出现的时候,它才会去调用 .then 方法 ...

  6. web必知,多终端适配

    导读 移动端适配,是我们在开发中经常会遇到的,这里面可能会遇到非常多的问题: 1px问题 UI图完美适配方案 iPhoneX适配方案 横屏适配 高清屏图片模糊问题 ... 上面这些问题可能我们在开发中 ...

  7. Postman 中 Pre-request Script 常用 js 脚本

    1. 生成一个MD5或SHA1加密的字符串str_md5,str_sha1 string1 = "123456"; var str_md5= CryptoJS.MD5(string ...

  8. redis安装与简单实用

    1.在Linux上redis的安装时十分简单的: 第一步:wget http://download.redis.io/releases/redis-2.8.12.tar.gz 解压: tar zxvf ...

  9. soapui pro 5.1.2 的破解方法

    Protection-4.6,和scz.key这两个文件能破解5.1.2的SoapUI 的Pro版本,mac 和 windows均可.1.拷贝Protection-4.6.jar到soapui安装的l ...

  10. 【C/C++】字符数组:char,char*,char a[], char *a[], char **s 的区别与联系/const char*和char*的区别

    一.char,char*,char a[], char *a[], char **s 的区别与联系 C语言中的字符串是字符数组,可以像处理普通数组一样处理字符串. 可以理解为在内存中连续存储的字符. ...