如何计算时间序列内重复外生冲击的因果效应

机器算法验证 时间序列 统计学意义 因果关系 格兰杰因果关系 因果关系
2022-04-05 15:27:11

因果推理中一个相当常见的问题是,随着时间的推移,我们会遇到各种冲击,并试图衡量它们的影响。

在单个冲击的情况下,我们可以使用贝叶斯方法来预测没有这种外生冲击的系列的“延续”程度,并将系列的位移归因于冲击。

来自 CausalImpact 包 (python/R) 的示例: 在此处输入图像描述

在许多情况下,我们有几个小的冲击,这使得这种更简单的方法变得困难。

示例(蓝线表示随时间变化的事件,红线表示外部冲击):

解决这个问题的正确方法是什么?

在此处输入图像描述

3个回答

您描述的情况听起来像是简单的治疗效果故事,其中外源性二元冲击代表治疗。如果你有震惊T=1, 否则T=0. 蓝线代表等级x,你的结果变量。在时间序列意义上x似乎是静止的,所以它回到长期的平均值,那么冲击的影响不是永久性的。

因此,您可以简单地计算条件均值的差异

E[x|T=1]E[x|T=0]

它代表治疗/休克的平均因果效应(ACE)

请注意,您假设冲击(治疗)的外生性,就像在理想化的实验情况下一样,因此选择偏差消失了。您可能指的是观察情况,其中混杂变量的内生性代表了主要问题。

使用自回归分布滞后模型可以更详尽地处理平稳时间序列中的因果效应(参见例如Econometrics - Verbeek 2017 chap 9.1)

基本上,您需要一个没有冲击的过程的良好模型,以及 a) 冲击对过程的影响以及可能 b) 冲击效应对过程的依赖性的良好模型。任何答案都将取决于这些。据我所见,markowitz 讨论的“条件均值差异”方法依赖于以下假设:a)过程特性不会因冲击而改变,b)冲击的影响几乎立即实现,并且几乎立即消散, 和 c) 冲击的影响与系统的状态/先前的冲击无关。这些可能是可行的假设,但在许多情况下并非如此。我在这里做了一些工作来讨论考虑冲击建模的方法:https://www.researchgate.net/profile/Charles_Driver/publication/323457904_Understanding_the_time_course_of_interventions_with_continuous_time_dynamic_models/links/5bdef77b299bf1124fba5c00/Understanding-the-time-course-of-interventions-with-continuous-time-dynamic-models.pdf

尽管这只是表面上的问题——您可以查看 FMRI 研究中的血流动力学响应函数建模以获得进一步的灵感。

您在问题中描述的问题在以下论文中进行了详细讨论:

Bojinov、Iavor 和 Neil Shephard。“时间序列实验和因果估计:精确随机化测试和交易。” 美国统计协会杂志 114,没有。528(2019):1665-1682。

在这里总结这篇论文并不是很有用,因为需要大量的设置;此外,您声明您正在寻找“规范答案”。