We implement Ananke: an object-oriented Python package for causal inference with graphical models. At the top of our inheritance structure is an easily extensible Graph class that provides an interface to several broadly useful graph-based algorithms and methods for visualization. We use best practices of object-oriented programming to implement subclasses of the Graph superclass that correspond to types of causal graphs that are popular in the current literature. This includes directed acyclic graphs for modeling causally sufficient systems, acyclic directed mixed graphs for modeling unmeasured confounding, and chain graphs for modeling data dependence and interference. Within these subclasses, we implement specialized algorithms for common statistical and causal modeling tasks, such as separation criteria for reading conditional independence, nonparametric identification, and parametric and semiparametric estimation of model parameters. Here, we present a broad overview of the package and example usage for a problem with unmeasured confounding. Up to date documentation is available at \url{https://ananke.readthedocs.io/en/latest/}.
翻译:我们实施了“Ananke”:一个目标导向的Python包包,用于与图形模型进行因果关系推断。在我们的继承结构的顶端,是一个易于扩展的“图表”类,它为若干广泛的基于图形的算法和可视化方法提供了一个界面。我们采用“面向目标”的编程最佳做法,以实施与当前文献中流行的因果图表类型相对应的“图”超级类子类。这包括用于模拟因果充足系统的定向循环图、用于模拟无法计量的混杂图、用于模拟数据依赖性和干扰的循环定向混合图和链图。在这些亚类中,我们实施了用于共同统计和因果建模任务的专门算法,例如,对有条件独立、非参数进行非参数识别的分离标准,以及模型参数参数的参数和半参数估计。我们在这里对包进行了广泛的概述,并举例说明了用于未计量的共解问题。截至日期的文件可在以下网站查阅:https://anke.readdocs.en/late/}。