中介分析(四)- 因果中介分析

article/2025/6/26 14:05:05

引入

首先我们需要明确相关性和因果推断本质上有什么区别?
最大的区别是是否控制了混杂因素。(理论上,当回归控制了所有可观测和不可观测的混杂因素,就可以探究因果关系),Causal analysis可以简单理解为 regression analysis (or any analysis) + hypothesis

在之前的几篇中,我们学习了传统的中介分析方法

中介分析(一)
中介分析(二)多重中介分析
中介分析(三):R语言lavaan包实现
关于中介分析的一些补充

1 传统中介分析模型的局限

传统中介分析是基于系数乘积法或系数差值法来估计间接效应
如上图中间接效应被定义和估计为 a 和 b 系数的乘积 (ab) 或者 c 系数和 c’ 系数之间的差 (c-c’)。当回归时,这两个间接效应在数学上是等价的
在这里插入图片描述
1. 传统中介分析是基于参数回归假设

传统中介分析假设线性回归模型的残差是呈正态分布的,且模型中的自变量满足方差齐性,a、b、c 和 c’ 系数代表其正确的函数形式(例如,线性或二次),观测样本间互相独立,并且假设估计的效应没有效应修正因子或混杂因素的干扰。

其中效应修正因子的干扰可以考虑通过在模型中包括交互项(i.e., exposure-by-covariate or mediator-by-covariate),随后估计效应修正因子取不同值时的直接和间接效应来解释。

2. 传统中介不适用于离散中介变量或者结果变量

当使用传统中介分析来估计具有非连续中介变量或结果变量的中介模型的效应时,就会出现歧义。例如,当基于来自非线性回归模型,例如逻辑回归或 Cox 比例风险回归。系数乘积和系数差值方法会提供不同的间接效应估计(ab != c-c’)

3. 此外,尽管在传统中介分析的文献中建议评估exposure- mediator交互作用,但么有给出具有暴露-中介交互作用的中介模型的效应估计和解释的指导

2 因果中介分析

因果中介分析可以在暴露-中介交互作用存在时,基于潜在结果框架(potential outcomes framework),将总暴露效应分解为因果直接影响和间接影响

因果效应定义的一个优势是它是非参数的,因此可以应用于任何类型的中介模型以得出因果效应估计,包括具有暴露-中介交互作用的模型和具有非连续中介变量或非连续结果变量的模型等

假如我们中介分析拟合以下三个模型:在这里插入图片描述
如果满足以下五个假设,则ab 是中介效应(也称为间接效应)的因果估计量:

(1)X - Y 间没有混淆因素,
(2)X - M 间没有混淆因素(3)  M - Y 间没有混淆因素(4)  M 到 Y 间关联不会受到的 X 的混淆影响同时也假设(5) X 和 M 之间不存在影响 Y 的交互作用,尽管如果需要,将交互作用添加到等式 3 可提供对该关系的估计。

将参与者随机分配到 X 水平消除了混淆 X 与 M 和 X 与 Y 的关系的可能性(假设1和2),但未能解决(3)M - Y 间没有混淆因素以及(4) M 到 Y 间关联不会受到的 X 的混淆影响的假设
即使对于研究人员将参与者随机分配到 X 水平的实验性中介设计,M 和 Y 之间的关系(b 效应)也无法提供作为因果效应的明确解释,从而限制了对中介分析的间接效应的解释。

反事实和潜在结果模型Counterfactual and Potential Outcomes Model

理想情况下,在一项完美的因果推理的实验中,同一参与者应该同时参与治疗组(treatment)和对照组(control group),并在每种条件下对因变量进行评估。那么显而易见这是不可能发生的,例如,要了解童年时期社会阶层对健康的影响,一个人必须在较低的社会阶层中长大并接受健康评估,同时还要在较高的社会阶层中成长并接受健康评估。两种健康评估之间的差异为社会阶层对该人健康的影响提供了因果证据。然而,很明显,一个人不能同时在下层和上层社会环境中成长,也就是说,一个人通常不能参与每个实验条件并提供每个条件下因变量的评估。

Causal effect definition

因果效应定义是基于这样一个假设,即每个单独的被试对于每个治疗水平(treatment or control)都有一个潜在的结果值。

例如,假设治疗 X 是具有两个水平 (X = 0 和 X = 1) 的二元变量,每个单独的被试(表示为 i),如果处于 X = 0 水平,他的结果变量为 Yi (0 ),如果该被试处于 X = 1 水平,他的结果变量即为 Yi (1)。个体层面的因果效应为 Yi (1) – Yi (0)。

然而,不可能在这两种情况下观察到每个个体的结果。也就是说, 对于分配到 X = 0 的个人,将观察到 Yi (0) 而不是 Yi (1),而对于分配到级别 X = 1 的个人,将观察到 Yi (1) 而不是 Yi (0). 那么假设治疗组和对照组在没有混杂的情况下可以互换,因果治疗效果就可以在平均水平上估计,即casual effect = E[Yi (1)-Yi (0)]。

每个被试的潜在中介值不依赖于其他被试的治疗状态,每个被试的潜在结果也不依赖于其他被试的治疗状态和中介值。

那么我们可以用 E[Yi(0, m)] 表示将中介变量固定在值为 m 时,在对照组中观察到的个体 Y 值,E[Yi(1, m)] 表示将中介变量固定在值为 m 时,中介变量的值也可以保持不变,如果被试在对照组,即表示为 Mi (0),如果被试在治疗组,即 Mi (1),这将潜在结果扩展到 E[Yi (1, Mi (1))])、E[Yi (1, Mi (0))])、E[Yi (0, Mi (1))]) 和 E [Yi (0, Mi(0))])。
例如,潜在结果 E[Yi (1, Mi (1))]) 表示治疗组中个体的平均结果值,其中介变量值固定为在治疗组观察到的期望值。

因果中介分析自然地将 XM 交互作用纳入效应估计中。当存在 XM 交互时,治疗结果效应因中介水平而异,而中介结果效应因治疗水平而异。

Causal effect estimation

有几种软件程序可用于估计因果中介效应,包括 SAS 和 SPSS mediation macros、 Stata PARAMED macro,SAS 中的 PROC CAUSALMED、Stata 中的 Med4Way macro、Mplus 中的 MODEL INDIRECT 语句 、 R 中"mediation" 包和 “MedFlex” 包。所有这些程序都需要估计两个回归方程作为输入来估计单中介模型的因果效应:

当没有 XM 交互时,等式 (2 )中的 h 系数接近零。
在这里插入图片描述

因果直接效应、因果间接和总效应被定义为两个潜在结果之间的差异。总共定义了六种因果效应:1) total natural indirect effect; 2)pure natural indirect effect; 3) total natural direct effect; 4) pure natural direct effect; 5)controlled direct effect; and 6) total effect.
在这里插入图片描述CDE 是 TE 中非交互和非中介的部分
当不存在XM交互以及不是非线性时,TNDE = PNDE, TNIE = PNIE.
以上h为XM交互项的系数。

R语言因果中介分析实现

这里我们以R语言“mediation”包为例,“mediation”包可以提供给我们
Average Direct Effect (ADE) (treated) (即TNDE), ADE (control) (即PNDE), Average Causal Mediated Effect (ACME) (treated) (即TNIE),ACME (control) (即 PNIE) 以及TE, 但是不提供CDE.

(1)首先, “mediation” 包使用 “lm” 函数估计公式(1)和(2)中的所有参数;
(2)其次,对每个被试计算四种潜在结果E[Yi (1, Mi (1))])、E[Yi (1, Mi (0))])、E[Yi (0, Mi (1))]) 和 E [Yi (0, Mi(0))])
(3)第三,计算因果中介效应 (比如: PNIE = Yi((0, Mi(1)) − Y(0, Mi(0))).

示例代码如下:

a<-lm(M~X+COV)
b<-lm(Y~X*M+COV)     
set.seed(1234)
contcont <- mediate(a, b, sims=2000, treat="X", mediator="M",boot = T,boot.ci.type = 'bca') 
summary(contcont)

参考:1. Valente M J, Rijnhart J J M, Smyth H L, et al. Causal mediation programs in R, M plus, SAS, SPSS, and Stata[J]. Structural equation modeling: a multidisciplinary journal, 2020, 27(6): 975-984.
2. Tingley D, Yamamoto T, Hirose K, et al. Mediation: R package for causal mediation analysis[J]. 2014.
3. MacKinnon D P, Valente M J, Gonzalez O. The correspondence between causal and traditional mediation analysis: The link is the mediator by treatment interaction[J]. Prevention Science, 2020, 21(2): 147-157.
4. https://www.publichealth.columbia.edu/research/population-health-methods/causal-mediation.

如果有帮助的话,欢迎关注我的公众号:聊无的学习笔记
在这里插入图片描述

文章来源:https://blog.csdn.net/weixin_42812146/article/details/126052147
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://chatgpt.dhexx.cn/article/CTVRBXRB.shtml

相关文章

因果分析系列5--因果分析中的偏差

因果分析系列5--因果分析中的偏差 1.混杂偏差2.选择偏差小结在上一节中,介绍了现实中常见的三种因果图结构: 链结构(chain)A->B->C; 叉结构(fork)A<-B->C; 对撞结构(collider)A->B<-C。 不管多复杂的结构都可拆解为其中的一种或某几种。基于三种常见的结…

社会经济学中的因果分析思想初探

社会经济学中的因果分析思想初探 目录1.因果是什么2.因果关系和相关关系3.因果推断的三个层级4.经典因果推断模型5.社会经济学中的因果实证分析5.1随机控制实验5.2自然实验5.3准实验5.3.1准实验--双重差分法5.3.2准实验--工具变量法5.3.3准实验--断点回归法5.3.4准实验--匹配法…

因果分析

Causality Problems(相关不一定是因果)&#xff1a; 伪关系&#xff1a;Y和X只是恰巧同时发生&#xff0c;实际上没有明显的逻辑上的关联&#xff0c;如巧克力销量和诺奖得主数量遗漏变量偏差&#xff1a;存在既影响X也影响Y的混淆变量&#xff0c;如年龄混淆了年收入和罹患癌…

史上最全因果推断合集-14(因果分析在贝壳的探索实践)

因果推断的应用范围十分广泛&#xff0c;例如气候变暖、新药研发、物理研究、经济学等。AI领域&#xff0c;特别是互联网产业&#xff0c;如何科学的进行因果分析&#xff0c;是一个重要的议题。本次分享的主题是因果分析在贝壳的探索和实践。 今天的介绍会围绕下面三点展开&a…

史上最全因果推断知识合集-4(快手因果推断与实验设计)

导读&#xff1a;理解和识别用户行为指标的相互关系是实验分析的目标。在社区氛围下&#xff0c;影响用户行为的因素更为复杂&#xff0c;关系识别更为困难&#xff0c;如何使用各种学科的方法&#xff0c;对社区进行宏观或微观的建模分析&#xff0c;系统性的评估各种策略的长…

因果分析与相关

在现实场景中我们常被要求回答“如果”的问题&#xff0c;经济学家称之为反事实。如果我现在要的不是这个价格&#xff0c;而是另一个价格&#xff0c;会发生什么&#xff1f;如果我不吃低脂饮食&#xff0c;而是吃低糖饮食会怎么样&#xff1f;如果你在银行工作&#xff0c;提…

因果分析.科学实验评估

目录 1. A/B Test原理 2. 实验分组划分 3.实验指标设计 4. 实验效果评估 5.离线指标测算 6.实验结果分析 不是每个想法都是好的&#xff0c;大部分想法都是不好的。 在互联网背景下&#xff0c;快速试错已经成为产品持续迭代的必备能力。借鉴传统行业(医学等)成熟的实验…

因果关系分析方法

因果关系推断&#xff0c;可以说是数据分析领域最难的问题之一&#xff0c;争吵很多年也没有定论。经常同学们被问到&#xff1a;“到底这个问题的原因是什么&#xff01;”都会觉得分析起来很挠头&#xff0c;今天我们系统讲解下。 1 常见方法1&#xff1a;拆解法 最常见的用…

因果分析来了!

我是小z&#xff0c;也可以叫我阿粥~ 本文的分享主题为观测数据因果推断&#xff0c;希望通过本文可以让大家对观测数据因果推断有一个整体的了解&#xff0c;明晰当前观测数据因果推断的困境和主要处理方法&#xff0c;以及在特定问题中的一套通用解法。 具体将围绕以下3部分展…

因果分析:原理、方法论、应用

什么是因果分析&#xff1f; 因果分析(Causal Analysis)是分析彼此之间的因果关系。 因果推断(Causal Inference)是基于原因推结果&#xff0c;是因果分析的一部分。 因果分析是数据分析、数据科学中重要的方法&#xff0c;广泛应用于A/B实验&#xff0c;异常分析&#xff0…

C语言有负号的除法以及求余运算规则

举例说明 abc…d 1753…2 被除数除数商…余数 有负号的运算规则 求: -17除以5的商和余数17除以-5的商和余数-17除以-5的商和余数 答: abc…d 用a代表被除数,用b代表除数,用c代表商,用d代表余数. c的数值是|a|/|b|,c是正号还是负号由a和b的负号数量决定;d的正负号和a相同…

C语言取余问题

如果 % 左边的操作数是正数&#xff0c;则取余的结果为正数或零&#xff1b;如果 % 左边的操作数是负数&#xff0c;则取余的结果为负数或零。 例如代码运行如下&#xff1a; 主代码&#xff1a; #include<iostream> using namespace std; int main() {cout<<(13…

c语言怎么对大数求余,C语言:大数取余

大数取余数(数组) 今天做学校的oj时遇到一题&#xff0c;问题可见一下截图&#xff1a; 查遍各大论坛&#xff0c;都没有遇到合适的方法&#xff0c;普通方法不可用&#xff0c;要采用数组的形式。 被除数超过long long类型&#xff0c;不能采用常规思路&#xff0c;否则会出现…

C语言--求余问题

C在线工具 | 菜鸟工具 在c语言中&#xff0c;如果 a为一个四位数 那么a%1000/100是啥&#xff1f; 假设a的值为1345&#xff0c;那么当计算a%1000时&#xff0c;值为345 #include <stdio.h>int main() {int a 1345;int b a%1000;printf("%d",b); } 而345/…

软件开发流程图

文件下载https://download.csdn.net/download/weixin_43250197/12243113

嵌入式软件开发的特点和流程

嵌入式软件就是嵌入在硬件中的操作系统和开发工具软件&#xff0c;被广泛应用于工业控制、消费电子、医疗、通信等领域&#xff0c;我们常见的手机、电脑、数码相机等都运用到了嵌入式软件技术。为了确保嵌入式系统的运行&#xff0c;嵌入式软件迅速崛起&#xff0c;在整个软件…

一套完整的软件开发流程是怎样的?

​做什么事都需要一个流程&#xff0c;软件开发也不例外。 那么&#xff0c;一个软件从无到有到底是怎么开发的&#xff1f;一个软件产品的结果为什么是这样&#xff1f;为什么开发的速度不能再快一点。为什么程序员大多秃顶&#xff1f;他们有那么忙吗&#xff1f;完整的软件…

汽车软件V流程开发

1.系统需求分析 调研并输出系统需求文档 2.系统架构设计 通常和第一步并行&#xff0c;并在系统需求文档中体现。第1和第2步都是系统层级的&#xff0c;下面应该分软件和硬件两个分支&#xff0c;这里我们只关注软件这个分支。 3.软件需求分析 输出软件需求文档&#xff0…

详解自动驾驶安全软件开发流程

1 引言 自动驾驶汽车开发越来越重视性能、质量和性价比&#xff0c;自动驾驶口碑成为新技术应用取得市场成功的关键&#xff0c;而口碑的建立依赖于相关软件开发流程、周期、时间和质量。一家汽车企业只有拥有或者其软件开发供应商具有成熟的软件开发团队、软件开发流程、可复用…

软件开发流程:需求评审流程

1 常规需求 图1 常规需求评审流程 2 非常规需求 图2 非常规需求评审流程 3 紧急需求 图3 紧急需求评审流程