以下是微软 DoWhy 因果推断库的详细使用方法及实例解析,结合代码演示其核心流程与高级功能:
1. DoWhy 核心原理
DoWhy 基于 因果推断四步框架 设计,解决因果关系的识别与估计问题:
- 定义因果模型:明确变量间的因果图(DAG)。
- 识别因果效应:通过统计方法确定可估计的因果量。
- 估计效应值:使用回归、匹配、机器学习等方法计算效应。
4 验证鲁棒性:通过敏感性分析检验结果可靠性。
2. 安装与基础配置
pip install dowhy
pip install econml # 可选,用于高级估计方法
3. 基础使用示例
步骤1:生成模拟数据
import numpy as np
import pandas as pd
from dowhy import CausalModel
# 生成包含混杂因子、治疗变量和结果的模拟数据
np.random.seed(42)
n = 1000
age = np.random.normal(50, 10, n) # 混杂因子:年龄
drug = np.random.binomial(1, 0.3 + 0.02*age) # 治疗变量:是否用药(受年龄影响)
recovery = 0.5*drug + 0.8*age + np.random.normal(0, 1, n) # 结果:恢复时间
data = pd.DataFrame({
'age': age, 'drug': drug, 'recovery': recovery})