Rosenbaum P. and Rubin D. The Central Role of the Propensity Score in Observational Studies For Causal Effects. Biometrika, 1983, 70(1): 41-55.

Propensity score matching, wiki.

Austin P. An Introduction to Propensity Score Methods for Reducing the Effects of Confounding in Observational Studies.Multivariate behavioral research, 2011, 46(3): 399-424.

基本的概念

符号 说明
X covariate, 用于决策何种treatment
\(Z \in \{0, 1 \}\) Treatment
\(r_{ni}\) 第\(n\)个实例, \(z_n=i\) 下的反应(outcome)

Strongly ignorable treatment assignment:

即满足条件可交换性:

\[(r_0, r_1) \perp Z | X.
\]

Balancing Score:

一个关于随机变量\(X\)的函数\(b(X)\)被称为balancing score, 若:

\[X \perp Z | b(X).
\]

Propensity Score:

\[e(x) := P(Z=1|X=x).
\]

重要的结果

\(X \perp Z | b(X)\)

一个函数\(b(X)\)是balancing score, 当且仅当存在一个映射\(f\)使得\(e(X) = f((b(X))\).

\(\Leftarrow\)

当, \(b(x) \not= b\)的时候, 显然\(P(Z=z, X=x|b(X)=b)=0\), 此时满足条件独立性, 故只需考虑\(b(x) = b\)的情况.

\[\begin{array}{ll}
P(Z=z, X=x|b(X)=b)
&= P(Z=z| X=x, b(X) = b) \: P(X=x|b(X)=b) \\
&= P(Z=z| X=x) \: P(X=x|b(X)=b) \\
&\mathop{=}\limits^{?}P(Z=z|b(X)=b) \: P(X=x|b(X)=b).
\end{array}
\]

显然最后一个等式成立, 只需满足:

\[P(Z=z|b(X)=b) = P(Z=z|X=x) = e(x')^z \cdot (1 - e(x'))^{1-z}, \quad \forall x' \in \{x| b(X) = b\}
\]

注: 最后一个等式成立, 是因为\(e(x') = f(b(x')) = f(b)\).


\[\begin{array}{ll}
P(Z=z|b(X)=b)
&= \sum_{x' \in \{b(X) = b\}}P(Z=z|X=x', b(X)=b)\: P(X=x'|b(X)=b) \\
&= \sum_{x' \in \{b(X) = b\}}P(Z=z|X=x')\: P(X=x'|b(X)=b) \\
&= \sum_{x' \in \{b(X) = b\}} e(x')^z \cdot (1 - e(x'))^{1-z} \: P(X=x'|b(X)=b) \\
&= e(x')^z \cdot (1 - e(x'))^{1-z}\\
&= P(Z=z|X=x).
\end{array}
\]

注: 显然上面的证明是要求\(Z \in \{0, 1\}\)的, 即二元的treatment.

除非有额外的条件, 比如:

\[P(Z=z|X=x) = P(Z=z|X=x') = p(z, b)
\]

对所有的\(x, x' \in \{x| b(X) = b\}\).


\(\Rightarrow\)

首先, 如果\(b(X)\)本身从\(X\)的一个单射, 那么显然存在这样的\(f\).

若\(b()\)不是单射, 且不存在\(f\)使得\(e(X) = f(b(X))\), 则一定存在\(x, x'\)使得

\[e(x) \not= e(x'), \quad b(x) = b(x').
\]

此时:

\[P(Z=1|X=x) \not= P(Z=z|X=x') \rightarrow
P(Z=1|X=x, b(x)) \not= P(Z=z|X=x', b(x')).
\]

故\(b(X)\)不是balancing score, 矛盾.

注: 显然\(e(X)\)以及\(b(X) = X\)均为balancing score.

\((r_0, r_1) \perp Z | b(X)\)

若:

\[(r_0, r_1) \perp Z | X, \quad 0 < P(Z=1|X) < 1,
\]

则:

\[(r_0, r_1) \perp Z | b(X), \quad 0 < P(Z=1|b(X)) < 1.
\]

不等式的证明是显然的.

只需证明:

\[P(Z=1|r_0, r_1, b(X)=b) = P(Z=1|b(X)=b) = e(X).
\]
\[\begin{array}{ll}
P(Z=1|r_0, r_1, b(X)=b)
&= \mathbb{E}_{x} \mathbb{E}_{z} [[Z|X=x, r_0, r_1,b(X)=b)] |r_0, r_1,b(X)=b] \\
&= \mathbb{E}_{x} \mathbb{E}_{z} [[Z|X=x)] |r_0, r_1,b(X)=b] \\
&= \mathbb{E}_{x} [e(X) |r_0, r_1,b(X)=b] \\
&= e(X)
\end{array}
\]

最后一个等式成立, 是因为, \(b(X)=b \rightarrow e(X) = f(b)\).


倘若上面的额外的条件成立, 即

\[P(Z=z|X=x) = P(Z=z|X=x') = p(z).
\]

则有:

\[\begin{array}{ll}
P(Z=z|r_0, r_1, b(X)=b)
&= \sum_{x' \in \{b(X) = b\}} P(Z=z, X=x'|r_0, r_1, b(X)=b) \\
&= \sum_{x'} P(Z=z|r_0, r_1, X=x', b(X)=b)\: P(X=x'|r_0, r_1, b(X)=b) \\
&= \sum_{x'} P(Z=z|X=x')\: P(X=x'|r_0, r_1, b(X)=b) \\
&= \sum_{x'} p(z)\: P(X=x'|r_0, r_1, b(X)=b) \\
&= p(z) = P(Z=z|X=x) = P(Z=z|b(X)=b).
\end{array}
\]

总结为:

若:

\[(r_0, r_1) \perp Z | X, \quad 0 < P(Z=z|X) < 1,
\]

且:

\[P(Z=z|X=x) = P(Z=z|X=x') = p(z;b), \quad \forall x, x' \in \{b(x)=b\}.
\]

则:

\[(r_0, r_1) \perp Z | b(X), \quad 0 < P(Z=z|b(X)) < 1.
\]

应用

假设\(X\)包含所有地confounders, 即

\[r \perp Z | X.
\]

Propensity Score Matching

既然, 在\(e(x)\)下:

\[r \perp Z | e(x),
\]

那么:

\[\mathbb{E}[r_1 - r_0] = \mathbb{E}_{e(x)} \: \{\mathbb{E} [r|e(x), Z=1] - \mathbb{E}[r|e(x), Z=0]\}.
\]

这个期望的过程可以分解为:

  1. 随机采样\(e(x)\);
  2. 在所有\(e(X)=e(x)\)的样本中, 随机选择\(Z=0\)和\(Z=1\)的样本;

通过此过程构造的新的数据集, 显然只需要将treated group中的群体对\(r\)取平均减去control group中的平均就能得到最后的treatment effect的估计了.

通过 propensity score matching 重采样构造的数据集满足:

\[Z \perp e(X).
\]

因为对于每一个treated group 中有一个样本\(e(x) = e\), 在control group中就有一个对应的\(e(x') = e\).

propensity score matching 重采样的实际方式可以简化为:

  1. 从treated group 中随机采样一个样本\((x,z,r)\);
  2. 计算其propensity score \(e(x)\);
  3. 从control group 中找到一个对应的\((x',z',r')\) 满足\(e(x')=e(x)\);
  4. 若存在多个\(x'\), 在其中随机采样一个.

上述采样过程中, 会遇到的问题:

  1. 不存在\(x'\), 这种情况是很容易遇到的, 一般, 我们可以选取\(x'\)使得\(e(x')\)最接近\(e(x)\), 这种方式一般称为greedy matching; 或者, 我们可以指定一个threshold, 在threshold内的\(\{x'\}\)中采样, 若一个都没有, 则舍弃\(x\).

  2. \(x, x'\)被选中之后, 是否仍有机会被采样, 这是俩种策略;

Stratification on the Propensity Score

即将\(e(X)\)的值域分割成互斥的K个部分, 每个部分所包含的样本数量相近.

然后对每一个部分计算treatment effect, 最后再平均(加权平均, 权重为样本数量).

一般情况下, \(K=5\), 就能使得每一个stratum内的\(e(X)\)的值非常接近, 这就能够近似保证:

\[X \perp Z
\]

在每一个stratum内成立.

那么, 此时我们只需通过取平均就能直接计算出每一个stratum的treatment effect.

Inverse Probability of Treatment Weighting Using the Propensity Score

这个实际上就是普通的 IP weighting.

评估

显然, 我们多半需要从已有的数据中估计出 propensity score, 比如用常见的逻辑斯蒂回归模型. 自然地, 我们需要判断我们拟合的模型是否正确.

既然propensity score 也是一个 balancing score, 那么如果拟合的比较正确, 就应该有:

\[X \perp Z | e(X).
\]

也就是说, 我们需要判断, 在每一个\(e(x)\)下, \(X, Z\)是否独立.

对于matching, 若条件独立满足, 则有:

\[\mathbb{E}_{e(x)}\{\mathbb{E}[X|Z=1, e(x)] | Z=1 \}
=\mathbb{E}_{e(x)}\{\mathbb{E}[X|Z=0, e(x)] | Z=0 \}
\]

一个期望里用了条件独立, 第二个条件期望相等是因为matching 保证:

\[e(X) | Z.
\]

故, 我们只需要比较treated group 和 control group的一阶矩的差别:

\[\mathbb{E}[X|Z=1] - \mathbb{E}[X|Z=0].
\]

在实际中, 比较的是如下的标准化的:

\[d = \frac{|\bar{x}_{treated} - \bar{x}_{control}|}{\sqrt{(s_{treated}^2 + s_{control}^2) / 2}}.
\]

一般\(d < 0.1\)就可以认为这个propensity score拟合的不错.

对于stratification, 我们只需对每一个strata判断上面的结果.

对于IP weighing, 说实话没读懂:

For IPTW this assessment involves comparing treated and untreated subjects in the sample weighted by the inverse probability of treatment.

Propensity Scores的更多相关文章

  1. Chapter 15 Outcome Regression and Propensity Scores

    目录 15.1 Outcome regression 15.2 Propensity scores 15.3 Propensity stratification and standardization ...

  2. Causal Inference

    目录 Standardization 非参数情况 Censoring 参数模型 Time-varying 静态 IP weighting 无参数 Censoring 参数模型 censoring 条件 ...

  3. [LeetCode] Rank Scores 分数排行

    Write a SQL query to rank scores. If there is a tie between two scores, both should have the same ra ...

  4. Codeforces Round #370 (Div. 2) D. Memory and Scores DP

    D. Memory and Scores   Memory and his friend Lexa are competing to get higher score in one popular c ...

  5. Faster RCNN 运行自己的数据,刚开始正常,后来就报错: Index exceeds matrix dimensions. Error in ori_demo (line 114) boxes_cell{i} = [boxes(:, (1+(i-1)*4):(i*4)), scores(:, i)];

    function script_faster_rcnn_demo() close all; clc; clear mex; clear is_valid_handle; % to clear init ...

  6. LeetCode Database: Rank Scores

    Write a SQL query to rank scores. If there is a tie between two scores, both should have the same ra ...

  7. LeetCode:Rank Scores

    做到这题时卡了不少时间,参考了别人的解法,觉得挺不错的,还挺巧妙. SELECT s2.Score,s1.Rank From ( SELECT S1.Score, COUNT(*) as Rank F ...

  8. (Problem 22)Names scores

    Using names.txt (right click and 'Save Link/Target As...'), a 46K text file containing over five-tho ...

  9. Memory and Scores

    Memory and Scores 题目链接:http://codeforces.com/contest/712/problem/D dp 因为每轮Memory和Lexa能取的都在[-k,k],也就是 ...

随机推荐

  1. Yarn 生产环境核心参数配置案例

    目录 Yarn 生产环境核心参数配置案例 需求 修改yarn-site.xml配置 分发 重启集群 执行WordCount程序 Yarn 生产环境核心参数配置案例 调整下列参数之前要拍摄Linux快照 ...

  2. celery开启worker报错django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE o

    其实挺简单的问题,但花了自己一个下午来解决,先是浏览各种博客,无果:没办法,然后去看celery官方文档,无果,近乎绝望,最后仔细看代码,找到问题所在(如下),自学狗这效率...... 下面是自己ta ...

  3. Linux启动初始化配置文件

    Linux启动初始化配置文件(1)/etc/profile 登录时,会执行. 全局(公有)配置,不管是哪个用户,登录时都会读取该文件. (2)/ect/bashrc Ubuntu没有此文件,与之对应的 ...

  4. Use of explicit keyword in C++

    Predict the output of following C++ program. 1 #include <iostream> 2 3 using namespace std; 4 ...

  5. java中super的几种用法,与this的区别

    1. 子类的构造函数如果要引用super的话,必须把super放在函数的首位. class Base { Base() { System.out.println("Base"); ...

  6. js实现递归菜单无限层

    /*动态加载菜单*/ function dynamicMenu(data){ if (userID != "admin"){ //1.清空所有菜单 $("#menuLis ...

  7. 【Linux】【Database】【MySQL】使用percona搭建高可用的MySQL数据库

    1. 简介 1.1. 官方文档: 数据库架构:https://docs.openstack.org/ha-guide/shared-database.html 1.2. 本次使用的的是Percona ...

  8. ubuntu 使用mysql

    一: 安装: sudo apt-get install mysql-serversudo apt-get install mysql-clientsudo apt-get install libmys ...

  9. Mybatis读取数据实战

    1.Mybatis基础配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configu ...

  10. TV盒子 android 4.4安装kodi 和 安装jellyfin插件连接到 jellyfin服务器

    很多IPTV盒子系统都是android 4.4的,无法安装新版kodi, 最高只能安装到改版的kodi, 版本是17.1,jellyfin插件也只能安装到0.5.8 首先下载kodi和jellyfin ...