因果论(四)——Rubin causal Model(RCM,潜在结果框架)和随机化试验

2023-10-22 07:20

本文主要是介绍因果论(四)——Rubin causal Model(RCM,潜在结果框架)和随机化试验,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、RCM和因果图

RCM和因果图是等价的,但是RCM更加准确,因果图更加直观。

二、RCM基本概念

潜在结果指的是一个个体如果接受了某种处理会怎样,也就是指如果Z_{i}取某种值时(比如1或者0)对应结果Y_{i}取值会如何。我们用Z_{i}表示个体i的处理,Y_{i}表示个体i的所能观测到的结果变量,(Y_{i}(1),Y_{i}(0))表示个体i的潜在结果(假设对个体的处理只有0或1两种,更多处理时可以进行扩展为多种)。
个体因果效应:CE_{i} = Y_{i}(1)-Y_{i}(0)
显然这个个体因果效应是不能计算的,因为不能同时对个体i进行多种操作(我们只能对个体i做一种操作,比如吃药或者不吃药)。幸运的是我们可以通过随机化试验计算平均因果效应。
平均因果效应: ACE(Z\rightarrow Y) = E(Y(1)-Y(0))
接下来看一下这个公式怎么计算,使用 (Y(1),Y(0))表示整体的潜在结果,Z表示整体的取值,Y表示整体的观测结果
ACE(Z\rightarrow Y) = E(Y(1)-Y(0)) ---------1
=E(Y(1)) - E(Y(0)) --------------2
=E(Y(1)|Z=1)-E(Y(0)|Z=0) -----------3
=E(Y|Z=1)-E(Y|Z=0) --------------4
2式使用的是期望算法的线性展开。
3式用到了随机化,这里有一个强假设,用处理值为1的试验组的期望代替了所有数据潜在结果 Y_{i}(1)的期望,用处理值为0的对照组的期望代替了所有数据潜在结果 Y_{i}(0)的期望。
4式代表的为观测到的期望,所有最后计算转化为了观测数据的计算。
强假设:可以看出上面的计算有一个严重的问题,数据是否随机化的,我们的假设是否能够成立。
在实际中,很多数据都不是随机的,也就是上面的假设不能成立。比如:个体属性(性别),个体处理(是否吸烟),个体结果(是否的癌症)。可以看出性别对癌症是有影响的,不能直接通过吸烟的随机化试验结果代替所有人员吸烟的潜在结果。所以这里面性别是不可忽略的。那 我们的处理方法就是讲个体属性也纳入随机化试验,比如吸烟组同不吸烟组有着相同的男女比例构成。
我们用 X表示整体的属性(信息,混杂因素),则上式就转化成了下式:
ACE(Z\rightarrow Y) = E(Y(1)-Y(0)) ---------1
=E_{X}[E_{Y(1))}(Y(1)|X)] - E_{X}[E_{Y(0)}(Y(0)|X)] -----2
=E_{X}[E_{Y(1)}(Y(1)|X,Z=1)]-E_{X}[E_{Y_(0)}(Y(0)|X,Z=0)] --3
=E_{X}[E_{Y}(Y|X,Z=1)]-E_{X}[E_{Y}(Y|X,Z=0)] ---4
但是在实际处理中,仍然存在一些问题,通常是由于混杂因素的维度很高,控制相同取值的样本可能数量很少,导致期望估计不准确。针对这一问题,研究者们提出了多种解决方案.常见的方法有基于倾向性得分的估计方法、基于回归的估计方法以及两者相结合的方法。
三、倾向性得分估计
倾向性得分其实是一个降维的过程。
倾向性得分(propensity score )指的是给定混杂变量X的情况下获得处理Z=1的概率,即P(Z=1|X),可以使用机器学 习模型或者概率进行建模。然后根据倾向性得分估计平均因果效应,可以采用分层加权或者逆概加权。
四、回归估计
其思想是 使用机器学习模型建模给定处理Z和混杂变量Z时结果Y的期望,即E(Y|X,Z),然后用这回归模型进行干预,即可得到平均因果效应的估计值。

这篇关于因果论(四)——Rubin causal Model(RCM,潜在结果框架)和随机化试验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/259952

相关文章

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

GORM中Model和Table的区别及使用

《GORM中Model和Table的区别及使用》Model和Table是两种与数据库表交互的核心方法,但它们的用途和行为存在著差异,本文主要介绍了GORM中Model和Table的区别及使用,具有一... 目录1. Model 的作用与特点1.1 核心用途1.2 行为特点1.3 示例China编程代码2. Tab

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作

Python GUI框架中的PyQt详解

《PythonGUI框架中的PyQt详解》PyQt是Python语言中最强大且广泛应用的GUI框架之一,基于Qt库的Python绑定实现,本文将深入解析PyQt的核心模块,并通过代码示例展示其应用场... 目录一、PyQt核心模块概览二、核心模块详解与示例1. QtCore - 核心基础模块2. QtWid

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统

Python结合Flask框架构建一个简易的远程控制系统

《Python结合Flask框架构建一个简易的远程控制系统》这篇文章主要为大家详细介绍了如何使用Python与Flask框架构建一个简易的远程控制系统,能够远程执行操作命令(如关机、重启、锁屏等),还... 目录1.概述2.功能使用系统命令执行实时屏幕监控3. BUG修复过程1. Authorization

SpringBoot集成图片验证码框架easy-captcha的详细过程

《SpringBoot集成图片验证码框架easy-captcha的详细过程》本文介绍了如何将Easy-Captcha框架集成到SpringBoot项目中,实现图片验证码功能,Easy-Captcha是... 目录SpringBoot集成图片验证码框架easy-captcha一、引言二、依赖三、代码1. Ea

Gin框架中的GET和POST表单处理的实现

《Gin框架中的GET和POST表单处理的实现》Gin框架提供了简单而强大的机制来处理GET和POST表单提交的数据,通过c.Query、c.PostForm、c.Bind和c.Request.For... 目录一、GET表单处理二、POST表单处理1. 使用c.PostForm获取表单字段:2. 绑定到结

修改若依框架Token的过期时间问题

《修改若依框架Token的过期时间问题》本文介绍了如何修改若依框架中Token的过期时间,通过修改`application.yml`文件中的配置来实现,默认单位为分钟,希望此经验对大家有所帮助,也欢迎... 目录修改若依框架Token的过期时间修改Token的过期时间关闭Token的过期时js间总结修改若依