更改

跳到导航 跳到搜索
添加344字节 、 2021年8月17日 (二) 22:33
无编辑摘要
第1行: 第1行: −
'''<font color="#ff8000">Do演算(Do-Calculus)</font>'''于1995年由Judea Pearl提出<ref name="pearl:95">{{citation | last = Pearl | first = Judea | doi = 10.1093/biomet/82.4.669 | issue = 4 | journal = Biometrika | pages = 669–710 | title = Causal diagrams for empirical research | volume = 82 | year = 1995| url = https://escholarship.org/uc/item/6gv9n38c }}.</ref>,是由三条推演规则构成的推演系统,这三条规则可以将包含'''<font color="#ff8000">干预</font>'''变量和观测变量的概率分布表达式进行转化。Do演算属于因果科学中[[结构因果模型]]的基础分析工具,可用于非参数模型中因果效应的识别,并能够在[[中介分析]](Mediation Analysis)、知识迁移(Transportability)、元综合(Metasynthesis)等方向上发挥重要作用。
+
{{#seo:
 +
|keywords=Do-Calculus,因果科学,基础分析工具
 +
|description=是由三条推演规则构成的推演系统
 +
}}
 +
 
 +
'''<font color="#ff8000">Do演算 Do-Calculus</font>'''于1995年由Judea Pearl提出<ref name="pearl:95">{{citation | last = Pearl | first = Judea | doi = 10.1093/biomet/82.4.669 | issue = 4 | journal = Biometrika | pages = 669–710 | title = Causal diagrams for empirical research | volume = 82 | year = 1995| url = https://escholarship.org/uc/item/6gv9n38c }}.</ref>,是由三条推演规则构成的推演系统,这三条规则可以将包含'''<font color="#ff8000">干预</font>'''变量和观测变量的概率分布表达式进行转化。Do演算属于因果科学中[[结构因果模型]]的基础分析工具,可用于非参数模型中因果效应的识别,并能够在[[中介分析]] Mediation Analysis、知识迁移 Transportability、元综合Metasynthesis等方向上发挥重要作用。
    
== 为何需要Do演算 ==
 
== 为何需要Do演算 ==
第6行: 第11行:     
在处理一部分因果图时,可以使用[[后门调整]]'''<font color="#ff8000">后门调整</font>'''和[[前门调整]]等技术进行统计调整,这样可以根据不涉及[[Do算子]]的数据来估算干预的效果。然而我们无法根据前门准则和后门准则事先确定一个给定的因果模型是否适用于这样的统计调整方式。后门调整和前门调整方法也无法处理所有'''<font color="#ff8000">可识别</font>'''的模型,例如右侧的因果图是可识别的,但既无法使用后门调整也无法使用前门调整。
 
在处理一部分因果图时,可以使用[[后门调整]]'''<font color="#ff8000">后门调整</font>'''和[[前门调整]]等技术进行统计调整,这样可以根据不涉及[[Do算子]]的数据来估算干预的效果。然而我们无法根据前门准则和后门准则事先确定一个给定的因果模型是否适用于这样的统计调整方式。后门调整和前门调整方法也无法处理所有'''<font color="#ff8000">可识别</font>'''的模型,例如右侧的因果图是可识别的,但既无法使用后门调整也无法使用前门调整。
 +
    
而Do演算是一个具有完备性的推演系统,可以处理所有可识别的模型,当然也就包括了右侧图中这个例子。同时,利用Do演算还有一系列的计算机算法,可以自动、高速地去判断一个模型的可识别性,并在可识别的模型中将包含Do算子的概率分布表达式转换为仅包含观测变量的概率分布表达式。
 
而Do演算是一个具有完备性的推演系统,可以处理所有可识别的模型,当然也就包括了右侧图中这个例子。同时,利用Do演算还有一系列的计算机算法,可以自动、高速地去判断一个模型的可识别性,并在可识别的模型中将包含Do算子的概率分布表达式转换为仅包含观测变量的概率分布表达式。
 +
    
== Do演算规则集 ==
 
== Do演算规则集 ==
    
在以下规则的表述中,使用符号<math>G_{\overline{X}}</math>表示删除有向图<math>G</math>中所有指向结点<math>X</math>的边后得到的子图,使用符号<math>G_{\overline{X}\underline{Z}}</math>表示删除有向图<math>G</math>中所有指向结点<math>X</math>的边和从结点<math>Z</math>指出的边后得到的子图。
 
在以下规则的表述中,使用符号<math>G_{\overline{X}}</math>表示删除有向图<math>G</math>中所有指向结点<math>X</math>的边后得到的子图,使用符号<math>G_{\overline{X}\underline{Z}}</math>表示删除有向图<math>G</math>中所有指向结点<math>X</math>的边和从结点<math>Z</math>指出的边后得到的子图。
 +
    
=== 规则一 ===
 
=== 规则一 ===
第18行: 第26行:  
对于有向图<math>G</math>,若满足<math>(Y \perp\!\!\!\perp Z \mid X, W)_{G_{\overline{X}}}</math>(即在子图<math>G_{\overline{X}}</math>中,给定结点集<math>X</math>和<math>W</math>时,结点集<math>Y</math>和<math>Z</math>满足d-分离条件),则
 
对于有向图<math>G</math>,若满足<math>(Y \perp\!\!\!\perp Z \mid X, W)_{G_{\overline{X}}}</math>(即在子图<math>G_{\overline{X}}</math>中,给定结点集<math>X</math>和<math>W</math>时,结点集<math>Y</math>和<math>Z</math>满足d-分离条件),则
 
:<math> P(Y|do(X),Z,W)=P(Y|do(X),Z)</math>
 
:<math> P(Y|do(X),Z,W)=P(Y|do(X),Z)</math>
 +
    
=== 规则二 ===
 
=== 规则二 ===
第24行: 第33行:  
对于有向图<math>G</math>,若满足<math>(Y \perp\!\!\!\perp Z \mid X, W)_{G_{\overline{X}\underline{Z}}}</math>(即在子图<math>G_{\overline{X}\underline{Z}}</math>中,给定结点集<math>X</math>和<math>W</math>时,结点集<math>Y</math>和<math>Z</math>满足d-分离条件),则
 
对于有向图<math>G</math>,若满足<math>(Y \perp\!\!\!\perp Z \mid X, W)_{G_{\overline{X}\underline{Z}}}</math>(即在子图<math>G_{\overline{X}\underline{Z}}</math>中,给定结点集<math>X</math>和<math>W</math>时,结点集<math>Y</math>和<math>Z</math>满足d-分离条件),则
 
:<math> P(Y|do(X),do(Z),W)=P(Y|do(X),Z,W)</math>
 
:<math> P(Y|do(X),do(Z),W)=P(Y|do(X),Z,W)</math>
 +
    
=== 规则三 ===
 
=== 规则三 ===
第30行: 第40行:  
对于有向图<math>G</math>,若满足<math>(Y \perp\!\!\!\perp Z \mid X, W)_{G_{\overline{X}\underline{Z(W)}}}</math>(即在子图<math>G_{\overline{X}\underline{Z(W)}}</math>中,给定结点集<math>X</math>和<math>W</math>时,结点集<math>Y</math>和<math>Z</math>满足d-分离条件),则
 
对于有向图<math>G</math>,若满足<math>(Y \perp\!\!\!\perp Z \mid X, W)_{G_{\overline{X}\underline{Z(W)}}}</math>(即在子图<math>G_{\overline{X}\underline{Z(W)}}</math>中,给定结点集<math>X</math>和<math>W</math>时,结点集<math>Y</math>和<math>Z</math>满足d-分离条件),则
 
:<math> P(Y|do(X),do(Z),W)=P(Y|do(X),W)</math>
 
:<math> P(Y|do(X),do(Z),W)=P(Y|do(X),W)</math>
 +
    
其中符号<math> Z(W) </math> 表示 <math> Z / An(W)_{ G_{ \overline{X} } }</math> ,而符号<math> An(W)_{ G_{ \overline{X} } }</math> 表示在子图<math>G_{ \overline{X}} </math>中由结点集<math>W</math>及其祖先节点构成的点集。
 
其中符号<math> Z(W) </math> 表示 <math> Z / An(W)_{ G_{ \overline{X} } }</math> ,而符号<math> An(W)_{ G_{ \overline{X} } }</math> 表示在子图<math>G_{ \overline{X}} </math>中由结点集<math>W</math>及其祖先节点构成的点集。
   −
== Do演算的完备性(Completeness) ==
+
 
 +
== Do演算的完备性 ==
 
=== 定理 ===
 
=== 定理 ===
 
<math> Q = P(y \mid do(x),z) </math> 是可识别的,当且仅当它可以被Do演算的三条规则转化为一个不包含Do算子的表达式。
 
<math> Q = P(y \mid do(x),z) </math> 是可识别的,当且仅当它可以被Do演算的三条规则转化为一个不包含Do算子的表达式。
 +
    
=== 证明 ===
 
=== 证明 ===
 
要证明上述定理的正确性,需要分别证明Do演算的可靠性(Soundness)和充分性(Sufficiency)。其中可靠性的证明由Judea Pearl于1995年给出<ref name="pearl:95">{{citation | last = Pearl | first = Judea | doi = 10.1093/biomet/82.4.669 | issue = 4 | journal = Biometrika | pages = 669–710 | title = Causal diagrams for empirical research | volume = 82 | year = 1995| url = https://escholarship.org/uc/item/6gv9n38c }}.</ref>,充分性的证明由Yimin Huang和Marco Valtorta于2006年给出<ref name="huang:06">{{cite journal |last1=Huang |first1=Yimin |last2=Valtorta |first2=Marco |date=2006 |title=Pearl's Calculus of Intervention is Complete |url= |journal=Proceedings of the Twenty-Second Conference on Uncertainty in Artificial Intelligence |pages=217–224}}</ref>。
 
要证明上述定理的正确性,需要分别证明Do演算的可靠性(Soundness)和充分性(Sufficiency)。其中可靠性的证明由Judea Pearl于1995年给出<ref name="pearl:95">{{citation | last = Pearl | first = Judea | doi = 10.1093/biomet/82.4.669 | issue = 4 | journal = Biometrika | pages = 669–710 | title = Causal diagrams for empirical research | volume = 82 | year = 1995| url = https://escholarship.org/uc/item/6gv9n38c }}.</ref>,充分性的证明由Yimin Huang和Marco Valtorta于2006年给出<ref name="huang:06">{{cite journal |last1=Huang |first1=Yimin |last2=Valtorta |first2=Marco |date=2006 |title=Pearl's Calculus of Intervention is Complete |url= |journal=Proceedings of the Twenty-Second Conference on Uncertainty in Artificial Intelligence |pages=217–224}}</ref>。
 +
    
== 应用案例 ==
 
== 应用案例 ==
   
=== 应用案例1 ===
 
=== 应用案例1 ===
 
[[File:Do-Calculus Example.png|thumb|300px|Do演算的案例1]]
 
[[File:Do-Calculus Example.png|thumb|300px|Do演算的案例1]]
 
在右侧的因果图中,“吸烟基因”是未观测变量,其余变量都是可观测的。“吸烟”变量使用<math>s</math>来表示,“焦油沉积”变量使用<math>t</math>来表示,“癌症”变量使用<math>c</math>来表示。我们要估计干预“吸烟”变量后对“癌症”变量的因果效应,即计算<math>P(c \mid do(s))</math>。我们将使用Do演算将这个表达式转换为不包含Do算子的表达式。
 
在右侧的因果图中,“吸烟基因”是未观测变量,其余变量都是可观测的。“吸烟”变量使用<math>s</math>来表示,“焦油沉积”变量使用<math>t</math>来表示,“癌症”变量使用<math>c</math>来表示。我们要估计干预“吸烟”变量后对“癌症”变量的因果效应,即计算<math>P(c \mid do(s))</math>。我们将使用Do演算将这个表达式转换为不包含Do算子的表达式。
   
<math>
 
<math>
 
\begin{alignat}{3}
 
\begin{alignat}{3}
第57行: 第69行:  
\end{alignat}
 
\end{alignat}
 
</math>
 
</math>
 +
    
=== 应用案例2 ===
 
=== 应用案例2 ===
第69行: 第82行:  
\end{alignat}
 
\end{alignat}
 
</math>
 
</math>
 +
    
== 相关算法 ==
 
== 相关算法 ==
第74行: 第88行:  
=== 处理多变量干预算法 ===
 
=== 处理多变量干预算法 ===
 
Jin Tian和Judea Pearl于2002年提出了第一个可以处理多变量被干预的算法<ref>{{cite journal |last1=Tian |first1=Jin |last2=Pearl |first2=Judea |date=2002 |title=A General Identification Condition for Causal Effects |url= |journal=Eighteenth National Conference on Artificial Intelligence |pages=567–573}}</ref>。
 
Jin Tian和Judea Pearl于2002年提出了第一个可以处理多变量被干预的算法<ref>{{cite journal |last1=Tian |first1=Jin |last2=Pearl |first2=Judea |date=2002 |title=A General Identification Condition for Causal Effects |url= |journal=Eighteenth National Conference on Artificial Intelligence |pages=567–573}}</ref>。
 +
    
=== Identify算法 ===
 
=== Identify算法 ===
第84行: 第99行:     
[[File:Algorithm-ID.png|ID算法]]
 
[[File:Algorithm-ID.png|ID算法]]
 +
    
=== IDC算法 ===
 
=== IDC算法 ===
第89行: 第105行:     
[[File:Algorithm-IDC.png|IDC算法]]
 
[[File:Algorithm-IDC.png|IDC算法]]
 +
    
== 代码实现 ==
 
== 代码实现 ==
第94行: 第111行:  
=== Ananke ===
 
=== Ananke ===
 
Ananke框架基于Python语言实现,集成了ID算法,详细内容可见[https://gitlab.com/causal/ananke Ananke开源地址]
 
Ananke框架基于Python语言实现,集成了ID算法,详细内容可见[https://gitlab.com/causal/ananke Ananke开源地址]
 +
    
=== causaleffect ===
 
=== causaleffect ===
 
causaleffect框架基于R语言实现,集成了ID算法和IDC算法,详细内容可见[https://cran.r-project.org/web/packages/causaleffect/index.html causaleffect包信息地址]
 
causaleffect框架基于R语言实现,集成了ID算法和IDC算法,详细内容可见[https://cran.r-project.org/web/packages/causaleffect/index.html causaleffect包信息地址]
 +
    
=== CEE ===
 
=== CEE ===
 
CEE框架基于Golang语言实现,集成了ID算法、IDC算法、Identify算法等,详细内容可见[https://github.com/L-F-Z/CEE CEE开源地址]
 
CEE框架基于Golang语言实现,集成了ID算法、IDC算法、Identify算法等,详细内容可见[https://github.com/L-F-Z/CEE CEE开源地址]
 +
    
== 参考文献 ==
 
== 参考文献 ==
第106行: 第126行:     
== 编辑推荐 ==
 
== 编辑推荐 ==
  −
   
===书籍推荐===
 
===书籍推荐===
 
[[File:统计因果推理入门.jpg|200px|thumb|right|《统计因果推理入门》封面|链接=https://wiki.swarma.org/index.php%3Ftitle=%E6%96%87%E4%BB%B6:%E7%BB%9F%E8%AE%A1%E5%9B%A0%E6%9E%9C%E6%8E%A8%E7%90%86%E5%85%A5%E9%97%A8.jpg]]
 
[[File:统计因果推理入门.jpg|200px|thumb|right|《统计因果推理入门》封面|链接=https://wiki.swarma.org/index.php%3Ftitle=%E6%96%87%E4%BB%B6:%E7%BB%9F%E8%AE%A1%E5%9B%A0%E6%9E%9C%E6%8E%A8%E7%90%86%E5%85%A5%E9%97%A8.jpg]]
第152行: 第170行:        +
 +
 +
----
 +
本中文词条由中科院计算所的李奉治博士贡献,[[用户:薄荷|薄荷]]编辑,如有问题,欢迎在讨论页面留言。
          +
'''本词条内容源自wikipedia及公开资料,遵守 CC3.0协议。'''
    
本词条由中科院计算所的李奉治博士生贡献。
 
本词条由中科院计算所的李奉治博士生贡献。
7,129

个编辑

导航菜单