name: 因果推断引擎 description: 用于估计业务数据中的处理效应和理解因果关系的因果推断技能 allowed-tools:
- Read
- Write
- Glob
- Grep
- Bash
metadata:
specialization: 决策智能
domain: 商业
category: 预测
priority: medium
shared-candidate: true
tools-libraries:
- econml
- dowhy
- causalml
- statsmodels
因果推断引擎
概述
因果推断引擎技能提供了从观测数据中估计因果效应的复杂方法。它使业务分析师能够超越相关性,理解真正的因果关系,为干预措施、政策变更和战略举措提供基于证据的决策支持。
能力
- 倾向得分匹配
- 逆概率加权
- 双重差分法
- 工具变量法
- 断点回归
- 合成控制法
- 因果森林实现
- 未观测混杂的敏感性分析
使用流程
- A/B测试与实验框架
- 预测分析实施
- 赢/输分析程序
使用方法
问题定义
# 定义因果问题
causal_problem = {
"treatment": "营销活动",
"outcome": "购买转化率",
"confounders": ["客户细分", "历史购买记录", "渠道", "地区"],
"instruments": ["随机分配概率"], # 如果可用
"effect_type": "ATE", # 平均处理效应
"heterogeneity": ["客户细分", "客户任期"] # 用于条件平均处理效应
}
倾向得分匹配
# 倾向得分配置
psm_config = {
"method": "propensity_score_matching",
"estimator": "logistic_regression",
"matching": {
"method": "nearest_neighbor",
"caliper": 0.1,
"replacement": False,
"ratio": 1
},
"balance_check": True,
"covariates": ["年龄", "收入", "历史购买记录", "参与度得分"]
}
双重差分法
# 双重差分法配置
did_config = {
"method": "difference_in_differences",
"treatment_group": "实施干预的门店",
"control_group": "未实施干预的门店",
"pre_period": ["2023-01", "2023-06"],
"post_period": ["2023-07", "2023-12"],
"parallel_trends_test": True,
"fixed_effects": ["门店ID", "月份"]
}
因果森林(异质性效应)
# 用于条件平均处理效应的因果森林
causal_forest_config = {
"method": "causal_forest",
"n_trees": 1000,
"honest": True,
"effect_modifiers": ["客户细分", "客户任期", "地区"],
"output": {
"individual_effects": True,
"confidence_intervals": True,
"variable_importance": True
}
}
方法选择指南
| 方法 | 使用场景 | 假设条件 |
|---|---|---|
| 倾向得分 | 基于可观测变量的选择 | 无未测量的混杂因素 |
| 双重差分法 | 有对照组的干预前后对比 | 平行趋势假设 |
| 断点回归 | 基于阈值的处理 | 阈值处的连续性 |
| 工具变量法 | 存在未测量的混杂因素 | 有效的工具变量 |
| 合成控制法 | 聚合层面的干预 | 干预前拟合良好 |
| 因果森林 | 异质性效应 | 无混杂性 |
输入模式
{
"causal_problem": {
"treatment": "string",
"outcome": "string",
"confounders": ["string"],
"effect_type": "ATE|ATT|CATE"
},
"data": "dataframe or path",
"method_config": {
"method": "string",
"parameters": "object"
},
"validation": {
"refutation_tests": ["placebo", "subset", "random_common_cause"],
"sensitivity_analysis": "boolean"
}
}
输出模式
{
"effect_estimate": {
"point_estimate": "number",
"confidence_interval": ["number", "number"],
"p_value": "number",
"standard_error": "number"
},
"heterogeneous_effects": {
"subgroup": {
"effect": "number",
"ci": ["number", "number"]
}
},
"diagnostics": {
"balance_statistics": "object",
"parallel_trends_test": "object",
"first_stage_f_stat": "number (IV)"
},
"refutation_results": {
"test_name": {
"original_effect": "number",
"refuted_effect": "number",
"passed": "boolean"
}
},
"sensitivity": {
"robustness_value": "number",
"interpretation": "string"
}
}
最佳实践
- 在分析前清晰阐述因果问题
- 绘制因果图(DAG)以识别混杂因素
- 匹配/加权后检查协变量平衡
- 对未测量的混杂因素进行敏感性分析
- 使用多种反驳测试验证结果
- 报告带有置信区间的效应大小
- 对假设和局限性保持透明
反驳测试
| 测试 | 检查内容 |
|---|---|
| 安慰剂处理 | 使用随机处理时效应应为零 |
| 安慰剂结果 | 使用不相关结果时效应应为零 |
| 子集验证 | 效应应在子样本中保持 |
| 随机共同原因 | 添加随机混杂因素不应改变效应 |
集成点
- 将测试结果输入假设跟踪器
- 与实验管理器代理连接
- 支持预测分析师获取因果特征
- 与贝叶斯网络分析器集成以获取因果图