Propensity Scores
基本的概念
符号 | 说明 |
---|---|
X | covariate, 用于决策何种treatment |
\(Z \in \{0, 1 \}\) | Treatment |
\(r_{ni}\) | 第\(n\)个实例, \(z_n=i\) 下的反应(outcome) |
Strongly ignorable treatment assignment:
即满足条件可交换性:
\]
Balancing Score:
一个关于随机变量\(X\)的函数\(b(X)\)被称为balancing score, 若:
\]
Propensity Score:
\]
重要的结果
\(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\)的情况.
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}
\]
显然最后一个等式成立, 只需满足:
\]
注: 最后一个等式成立, 是因为\(e(x') = f(b(x')) = f(b)\).
又
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.
除非有额外的条件, 比如:
\]
对所有的\(x, x' \in \{x| b(X) = b\}\).
\(\Rightarrow\)
首先, 如果\(b(X)\)本身从\(X\)的一个单射, 那么显然存在这样的\(f\).
若\(b()\)不是单射, 且不存在\(f\)使得\(e(X) = f(b(X))\), 则一定存在\(x, x'\)使得
\]
此时:
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)\)
若:
\]
则:
\]
不等式的证明是显然的.
只需证明:
\]
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|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}
\]
总结为:
若:
\]
且:
\]
则:
\]
应用
假设\(X\)包含所有地confounders, 即
\]
Propensity Score Matching
既然, 在\(e(x)\)下:
\]
那么:
\]
这个期望的过程可以分解为:
- 随机采样\(e(x)\);
- 在所有\(e(X)=e(x)\)的样本中, 随机选择\(Z=0\)和\(Z=1\)的样本;
通过此过程构造的新的数据集, 显然只需要将treated group中的群体对\(r\)取平均减去control group中的平均就能得到最后的treatment effect的估计了.
通过 propensity score matching 重采样构造的数据集满足:
\]
因为对于每一个treated group 中有一个样本\(e(x) = e\), 在control group中就有一个对应的\(e(x') = e\).
propensity score matching 重采样的实际方式可以简化为:
- 从treated group 中随机采样一个样本\((x,z,r)\);
- 计算其propensity score \(e(x)\);
- 从control group 中找到一个对应的\((x',z',r')\) 满足\(e(x')=e(x)\);
- 若存在多个\(x'\), 在其中随机采样一个.
上述采样过程中, 会遇到的问题:
不存在\(x'\), 这种情况是很容易遇到的, 一般, 我们可以选取\(x'\)使得\(e(x')\)最接近\(e(x)\), 这种方式一般称为greedy matching; 或者, 我们可以指定一个threshold, 在threshold内的\(\{x'\}\)中采样, 若一个都没有, 则舍弃\(x\).
\(x, x'\)被选中之后, 是否仍有机会被采样, 这是俩种策略;
Stratification on the Propensity Score
即将\(e(X)\)的值域分割成互斥的K个部分, 每个部分所包含的样本数量相近.
然后对每一个部分计算treatment effect, 最后再平均(加权平均, 权重为样本数量).
一般情况下, \(K=5\), 就能使得每一个stratum内的\(e(X)\)的值非常接近, 这就能够近似保证:
\]
在每一个stratum内成立.
那么, 此时我们只需通过取平均就能直接计算出每一个stratum的treatment effect.
Inverse Probability of Treatment Weighting Using the Propensity Score
这个实际上就是普通的 IP weighting.
评估
显然, 我们多半需要从已有的数据中估计出 propensity score, 比如用常见的逻辑斯蒂回归模型. 自然地, 我们需要判断我们拟合的模型是否正确.
既然propensity score 也是一个 balancing score, 那么如果拟合的比较正确, 就应该有:
\]
也就是说, 我们需要判断, 在每一个\(e(x)\)下, \(X, Z\)是否独立.
对于matching, 若条件独立满足, 则有:
=\mathbb{E}_{e(x)}\{\mathbb{E}[X|Z=0, e(x)] | Z=0 \}
\]
一个期望里用了条件独立, 第二个条件期望相等是因为matching 保证:
\]
故, 我们只需要比较treated group 和 control group的一阶矩的差别:
\]
在实际中, 比较的是如下的标准化的:
\]
一般\(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的更多相关文章
- Chapter 15 Outcome Regression and Propensity Scores
目录 15.1 Outcome regression 15.2 Propensity scores 15.3 Propensity stratification and standardization ...
- Causal Inference
目录 Standardization 非参数情况 Censoring 参数模型 Time-varying 静态 IP weighting 无参数 Censoring 参数模型 censoring 条件 ...
- [LeetCode] Rank Scores 分数排行
Write a SQL query to rank scores. If there is a tie between two scores, both should have the same ra ...
- 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 ...
- 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 ...
- 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 ...
- LeetCode:Rank Scores
做到这题时卡了不少时间,参考了别人的解法,觉得挺不错的,还挺巧妙. SELECT s2.Score,s1.Rank From ( SELECT S1.Score, COUNT(*) as Rank F ...
- (Problem 22)Names scores
Using names.txt (right click and 'Save Link/Target As...'), a 46K text file containing over five-tho ...
- Memory and Scores
Memory and Scores 题目链接:http://codeforces.com/contest/712/problem/D dp 因为每轮Memory和Lexa能取的都在[-k,k],也就是 ...
随机推荐
- 日常Java 2021/10/19
Java集合框架 Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射. Collection接口又有3种子类型,Li ...
- Hadoop org.apache.hadoop.util.DiskChecker$DiskErrorException问题等价解决linux磁盘不足解决问题排查
org.apache.hadoop.util.DiskChecker$DiskErrorException问题等价解决linux磁盘不足解决问题排查 解决"/dev/mapper/cento ...
- swagger文档
关键配置文件 spring boot demo pom.xml <?xml version="1.0" encoding="UTF-8"?> < ...
- java foreach循环抛出异常java.util.ConcurrentModificationException
代码如下: for (Iterator<String> iter = list.iterator(); iter.hasNext(); ) { if (Integer.parseInt(i ...
- poi做一个简单的EXCAL
//创建一个实体类 package text; import java.util.Date; public class Student { private int id; private String ...
- System.exit(-1)和return 的区别
对于只有一个单一方法的类或者系统来说是一样的,但是对于含有多个类和方法,且调用关系比较复杂时就不一样了. System.exit(-1)是指所有程序(方法,类等)停止,系统停止运行. return只是 ...
- 【Spring Framework】Spring注解设置Bean的初始化、销毁方法的方式
bean的生命周期:创建---初始化---销毁. Spring中声明的Bean的初始化和销毁方法有3种方式: @Bean的注解的initMethod.DestroyMethod属性 bean实现Ini ...
- 动态规划系列(零)—— 动态规划(Dynamic Programming)总结
动态规划三要素:重叠⼦问题.最优⼦结构.状态转移⽅程. 动态规划的三个需要明确的点就是「状态」「选择」和「base case」,对应着回溯算法中走过的「路径」,当前的「选择列表」和「结束条件」. 某种 ...
- 【VSCode】检测到 #include 错误。请更新 includePath。已为此翻译单元(C:\mingw-w64\i686-8.1.0-posix-dwarf-rt_v6-rev0\mingw32\i686-
win+r 运行cmd 输入"gcc -v -E -x c -"获取mingw路径: 我的: #include "..." search starts here ...
- Service Worker的应用
Service Worker的应用 Service worker本质上充当Web应用程序.浏览器与网络(可用时)之间的代理服务器,这个API旨在创建有效的离线体验,它会拦截网络请求并根据网络是否可用来 ...