Skip to main content
Glama

DoWhy MCP v2.0

by lesong36
MIT License
TOOLS_DETAILED_GUIDE.md20.3 kB
# 🛠️ DoWhy MCP工具详细指南 ## 📋 工具总览 DoWhy MCP服务器提供42个专业因果推断工具,分为7个类别: | 类别 | 工具数量 | 主要功能 | |------|---------|---------| | 因果建模 | 7个 | 构建和验证因果模型 | | 效应估计 | 10个 | 估计因果效应大小 | | 敏感性分析 | 6个 | 测试结果稳健性 | | 归因分析 | 6个 | 分析因果贡献 | | 根本原因分析 | 5个 | 识别问题根源 | | 反事实分析 | 6个 | 模拟假设场景 | | 因果发现 | 3个 | 发现因果关系 | --- ## 🏗️ 因果建模工具 (7个) ### 1. causal_graph_builder **核心功能**: 构建有向无环图(DAG)表示变量间因果关系 **数据示例**: ```csv education,income,experience,age 12,45000,5,28 16,65000,8,32 14,52000,6,30 ``` **详细说明**: - 分析变量间的因果依赖关系 - 构建DAG图结构,节点表示变量,边表示因果关系 - 验证图的无环性和因果假设 - 输出邻接矩阵和边列表 - 提供图的统计信息(密度、连通性等) **使用场景**: 在开始因果分析前建立变量间的理论因果模型 ### 2. structural_causal_model_builder **核心功能**: 构建结构因果模型(SCM),包含结构方程 **数据示例**: ```csv treatment,mediator,outcome,confounder 1,0.8,2.1,0.5 0,0.3,1.2,0.7 1,0.9,2.3,0.4 ``` **详细说明**: - 建立结构方程:Y = f(X, U),其中U是噪声项 - 估计每个变量的生成机制 - 包含外生变量(噪声)的建模 - 支持线性和非线性关系 - 验证模型的识别性 **使用场景**: 需要明确建模数据生成过程时使用 ### 3. graphical_causal_model_builder **核心功能**: 构建图形因果模型,结合图结构和概率分布 **详细说明**: - 结合图结构和条件概率分布 - 支持贝叶斯网络表示 - 计算条件独立性关系 - 验证马尔可夫性质 - 支持离散和连续变量 ### 4. causal_mechanism_learner **核心功能**: 学习变量间的因果机制函数 **详细说明**: - 使用机器学习方法学习因果机制 - 支持非线性因果关系 - 估计噪声分布 - 验证机制的稳定性 - 提供机制强度评估 ### 5. model_specification_builder **核心功能**: 构建因果推断的模型规范 **详细说明**: - 定义处理变量、结果变量和混杂因子 - 指定识别策略(后门、前门、工具变量等) - 验证识别假设 - 提供模型诊断信息 ### 6. causal_graph_validator **核心功能**: 验证因果图的正确性和假设 **详细说明**: - 检验图的无环性 - 验证条件独立性假设 - 测试图的因果马尔可夫条件 - 提供图修正建议 - 计算图的复杂度指标 ### 7. mechanism_attribution **核心功能**: 将结果归因到不同的因果机制 **详细说明**: - 分解总效应为不同机制的贡献 - 量化每个机制的重要性 - 支持多机制并行分析 - 提供机制间的交互效应 --- ## 📊 效应估计工具 (10个) ### 1. backdoor_estimator **核心功能**: 使用后门调整估计因果效应 **数据示例**: ```csv treatment,outcome,age,income,education 1,75,35,50000,16 0,65,40,45000,14 1,80,30,55000,18 ``` **详细说明**: - 实现Pearl的后门准则 - 控制混杂因子集合 - 支持线性和非线性调整 - 提供无偏因果效应估计 - 包含置信区间计算 **使用场景**: 当存在足够的混杂因子可以阻断后门路径时 ### 2. doubly_robust_estimator **核心功能**: 双重稳健估计,结合结果回归和倾向得分 **详细说明**: - 结合两种估计方法的优势 - 只要其中一种方法正确就能得到一致估计 - 提供更稳健的因果效应估计 - 支持缺失数据处理 - 包含方差估计 **使用场景**: 当对模型规范不确定时,提供稳健的估计 ### 3. instrumental_variable_estimator **核心功能**: 使用工具变量进行因果推断 **数据示例**: ```csv treatment,outcome,instrument,confounder 2.1,85,0.8,0.3 1.5,70,0.2,0.7 2.8,95,0.9,0.1 ``` **详细说明**: - 实现两阶段最小二乘法(2SLS) - 处理内生性问题 - 验证工具变量的有效性(相关性、排他性) - 提供弱工具变量检验 - 计算工具变量强度 **使用场景**: 当存在未观测混杂且有有效工具变量时 ### 4. frontdoor_estimator **核心功能**: 使用前门调整估计因果效应 **详细说明**: - 实现前门准则识别 - 通过中介变量识别因果效应 - 处理未观测混杂问题 - 分解直接和间接效应 - 验证前门假设 **使用场景**: 当后门路径被阻断但存在中介变量时 ### 5. propensity_score_estimator **核心功能**: 基于倾向得分的因果效应估计 **详细说明**: - 估计接受处理的条件概率 - 支持匹配、分层、加权三种方法 - 评估共同支撑区域 - 提供平衡性检验 - 处理多值处理变量 **使用场景**: 当混杂因子维度高时,降维进行因果推断 ### 6. matching_estimator **核心功能**: 通过匹配相似个体估计因果效应 **数据示例**: ```csv treatment,outcome,age,income,education,health_score 1,85,35,50000,16,7.2 0,70,36,49000,15,7.1 1,90,34,51000,17,7.3 ``` **详细说明**: - **最近邻匹配**: 为每个处理单位找到最相似的控制单位 - **卡尺匹配**: 在指定距离内进行匹配,提高匹配质量 - **精确匹配**: 在离散变量上进行完全匹配 - 评估匹配质量和平衡性 - 处理匹配后的方差估计 **使用场景**: 当需要构造反事实对照组时,特别适用于观察性研究 ### 7. weighting_estimator **核心功能**: 通过加权方法估计因果效应 **详细说明**: - **IPW (逆概率加权)**: 使用倾向得分的倒数作为权重 - **稳定化权重**: 减少极端权重的影响 - **重叠权重**: 强调共同支撑区域的观测 - 权重修剪和诊断 - 有效样本量计算 **使用场景**: 当样本在处理组和控制组间分布不平衡时 ### 8. regression_discontinuity_estimator **核心功能**: 利用处理分配的不连续性识别因果效应 **数据示例**: ```csv running_variable,treatment,outcome 49.5,0,65 50.2,1,75 49.8,0,68 50.1,1,78 ``` **详细说明**: - 利用分配规则的不连续点 - 局部线性回归估计 - 带宽选择和敏感性分析 - 验证不连续点的有效性 - 处理模糊断点设计 **使用场景**: 当处理分配基于连续变量的阈值时 ### 9. difference_in_differences_estimator **核心功能**: 利用时间和组别的双重差分识别因果效应 **数据示例**: ```csv group,time,outcome,treated treatment,before,60,0 treatment,after,80,1 control,before,55,0 control,after,58,0 ``` **详细说明**: - 控制时间不变的组别差异 - 控制组别不变的时间趋势 - 验证平行趋势假设 - 支持多期和多组设计 - 稳健标准误计算 **使用场景**: 当有政策干预或自然实验的面板数据时 ### 10. metalearner_estimator **核心功能**: 使用机器学习的元学习器估计异质性处理效应 **详细说明**: - **T-learner**: 分别为处理组和控制组训练模型 - **S-learner**: 单一模型包含处理指示变量 - **X-learner**: 两阶段方法,更适合不平衡数据 - 支持随机森林、神经网络等算法 - 提供个体处理效应估计 **使用场景**: 当需要估计异质性处理效应且有大量协变量时 --- ## 🔍 敏感性分析工具 (6个) ### 1. e_value_analyzer **核心功能**: 计算E-value评估未观测混杂的影响 **数据示例**: ```python # 输入观察到的效应估计 observed_effect = 0.5 confidence_interval = (0.3, 0.7) ``` **详细说明**: - 计算使效应归零所需的最小混杂强度 - 提供对未观测混杂的稳健性评估 - 支持不同效应测量(RR、OR、MD) - 给出解释性指导 - 比较已知混杂因子的强度 **使用场景**: 评估因果结论对未观测混杂的敏感性 ### 2. rosenbaum_bounds_analyzer **核心功能**: Rosenbaum边界分析,用于匹配数据的敏感性分析 **详细说明**: - 计算不同Γ值下的p值边界 - 评估隐藏偏倚的影响 - 提供临界Γ值 - 适用于匹配研究设计 - 包含Wilcoxon符号秩检验 ### 3. refutation_test_suite **核心功能**: 运行多种反驳测试验证因果结论的稳健性 **详细说明**: - **随机共同原因测试**: 添加随机变量作为混杂因子 - **安慰剂处理测试**: 用随机处理替换真实处理 - **数据子集验证**: 在数据子集上验证结果一致性 - **Bootstrap验证**: 通过重抽样验证结果稳定性 - 综合评估通过率和稳健性等级 **使用场景**: 在得出因果结论前进行全面的稳健性检验 ### 4. stability_analyzer **核心功能**: 分析因果估计在各种扰动下的稳定性 **详细说明**: - **噪声扰动**: 向协变量添加不同水平的噪声 - **异常值扰动**: 引入异常值测试稳健性 - **缺失数据扰动**: 随机移除数据点测试影响 - 计算相对变化和稳定性指标 - 提供稳定性等级评估 **使用场景**: 评估因果估计对数据质量问题的敏感性 ### 5. tipping_point_analyzer **核心功能**: 找到因果结论改变的临界点 **详细说明**: - 计算失去统计显著性所需的最小变化 - 分析偏倚阈值和临界样本量 - 评估结论的脆弱性 - 提供稳健性的量化指标 - 指导数据收集的优先级 **使用场景**: 量化因果结论的稳健性边界 ### 6. unobserved_confounder_analyzer **核心功能**: 分析潜在未观测混杂因子的影响 **详细说明**: - 模拟不同强度的未观测混杂 - 计算偏倚的上下界 - 评估临界混杂强度 - 与已知混杂因子强度比较 - 提供敏感性解释指导 **使用场景**: 当担心存在重要的未观测混杂因子时 --- ## 🎯 归因分析工具 (6个) ### 1. shapley_value_attribution **核心功能**: 使用Shapley值进行因果归因 **详细说明**: - 公平分配各变量的因果贡献 - 满足效率、对称性、虚拟性公理 - 支持联盟博弈论框架 - 处理变量间的交互效应 - 提供边际贡献分解 **使用场景**: 需要公平量化多个因素的因果贡献时 ### 2. direct_causal_influence **核心功能**: 测量变量对目标的直接因果影响 **数据示例**: ```csv target,var1,var2,var3,var4 85,2.1,1.5,0.8,3.2 70,1.8,1.2,0.6,2.9 90,2.3,1.7,0.9,3.5 ``` **详细说明**: - 使用偏相关分析控制其他变量 - 计算标准化回归系数 - 提供统计显著性检验 - 支持线性和非线性关系 - 排序变量的影响强度 **使用场景**: 需要识别对结果有直接影响的关键变量时 ### 3. total_causal_influence **核心功能**: 测量变量对目标的总因果影响(直接+间接) **详细说明**: - 分解总效应为直接效应和间接效应 - 计算中介效应的贡献 - 提供效应分解的比例 - 支持多重中介分析 - 量化各路径的相对重要性 **使用场景**: 需要全面理解变量通过各种路径对结果的影响时 ### 4. path_specific_effects **核心功能**: 分析通过特定路径的因果效应 **详细说明**: - 识别和量化不同的因果路径 - 计算路径特定的中介效应 - 支持多重中介和串联中介 - 提供路径系数和显著性检验 - 比较不同路径的相对重要性 **使用场景**: 需要理解因果机制和中介过程时 ### 5. mechanism_attribution **核心功能**: 将结果归因到不同的因果机制 **详细说明**: - 定义和测试多个因果机制 - 计算每个机制的解释力 - 评估机制间的交互效应 - 提供机制的相对重要性排序 - 支持机制的嵌套和层次结构 **使用场景**: 当存在多个可能的因果机制需要比较时 ### 6. causal_contribution_analysis **核心功能**: 分析各因素对结果方差的因果贡献 **详细说明**: - **方差分解**: 将结果方差分解为各因素的贡献 - **Shapley值**: 公平分配各因素的贡献 - **LMG方法**: 计算相对重要性指标 - 处理因素间的交互效应 - 提供贡献的置信区间 **使用场景**: 需要量化多个因素对结果的相对重要性时 --- ## 🔍 根本原因分析工具 (5个) ### 1. anomaly_attribution_analyzer **核心功能**: 将异常值归因到潜在原因 **详细说明**: - 识别数据中的异常模式 - 追溯异常的因果来源 - 量化不同因素对异常的贡献 - 提供异常修正建议 - 支持多维异常检测 ### 2. distribution_change_attribution **核心功能**: 将分布变化归因到具体原因 **数据示例**: ```csv time_period,target,feature1,feature2,feature3 baseline,75,2.1,1.5,0.8 baseline,70,1.8,1.2,0.6 comparison,85,2.3,1.7,0.9 comparison,90,2.5,1.8,1.0 ``` **详细说明**: - 比较不同时期的分布差异 - 分解变化为水平效应和关系效应 - 量化各特征对分布变化的贡献 - 提供统计显著性检验 - 识别主要的变化驱动因素 **使用场景**: 当需要理解系统性能变化的原因时 ### 3. causal_chain_tracer **核心功能**: 追踪从原因到结果的因果链条 **详细说明**: - 构建多层次的因果网络 - 识别直接和间接的因果路径 - 计算路径强度和显著性 - 找到最重要的因果链条 - 提供因果网络的可视化 **使用场景**: 需要理解复杂系统中的因果传播机制时 ### 4. root_cause_identifier **核心功能**: 系统性识别问题的根本原因 **详细说明**: - 定义问题实例和正常实例 - 计算各因素的根本原因得分 - 结合相关性、预测性和必要性分析 - 提供根本原因的排序 - 支持多变量根本原因分析 **使用场景**: 当需要系统性诊断问题根源时 ### 5. event_attribution_analyzer **核心功能**: 将特定事件归因到潜在原因 **详细说明**: - 识别事件发生的时间模式 - 分析事件前后的变量变化 - 计算各因素对事件的归因强度 - 提供反事实分析 - 支持时间序列事件分析 **使用场景**: 需要理解特定事件或异常的成因时 --- ## 🔮 反事实分析工具 (6个) ### 1. individual_counterfactual **核心功能**: 个体层面的反事实推理 **详细说明**: - 估计个体在不同处理下的潜在结果 - 计算个体处理效应(ITE) - 支持连续和离散处理 - 提供不确定性量化 - 验证反事实的合理性 ### 2. population_counterfactual **核心功能**: 估计群体层面的反事实结果 **详细说明**: - 估计整个群体在不同处理下的平均结果 - 使用回归、IPW和双重稳健方法 - 提供群体平均处理效应(ATE) - 计算反事实分布的统计特征 - 包含不确定性量化 **使用场景**: 需要评估政策或干预的群体层面影响时 ### 3. intervention_simulator **核心功能**: 模拟多种干预措施的效果 **数据示例**: ```json { "interventions": [ {"name": "increase_education", "variable": "education", "value": 16}, {"name": "increase_income", "variable": "income", "value": 60000} ] } ``` **详细说明**: - 支持单变量和多变量干预 - 比较不同干预策略的效果 - 计算干预的成本效益 - 提供干预效果的排序 - 支持交互式干预设计 **使用场景**: 需要比较多种可能的干预策略时 ### 4. what_if_analyzer **核心功能**: 分析"如果...会怎样"的假设场景 **详细说明**: - 支持复杂的假设场景设定 - 计算场景下的预期结果 - 提供场景间的比较分析 - 量化假设变化的影响 - 支持多变量同时变化的场景 **使用场景**: 需要探索各种假设情况的潜在结果时 ### 5. scenario_comparator **核心功能**: 比较和排序多个场景 **详细说明**: - 系统性比较多个场景的结果 - 提供场景的多维度排序 - 计算场景间的相对优势 - 支持场景的敏感性分析 - 提供决策支持信息 **使用场景**: 需要在多个可能场景中做出选择时 ### 6. counterfactual_fairness **核心功能**: 分析决策的反事实公平性 **详细说明**: - 评估决策对不同群体的公平性 - 计算反事实公平性指标 - 识别潜在的歧视性影响 - 提供公平性改进建议 - 支持多个敏感属性的分析 **使用场景**: 需要确保算法决策的公平性时 --- ## 🔍 因果发现工具 (3个) ### 1. pc_algorithm **核心功能**: PC算法进行因果结构学习 **详细说明**: - 基于条件独立性测试 - 学习因果图的骨架和方向 - 处理高维数据 - 提供统计显著性检验 - 支持连续和离散变量 ### 2. ges_algorithm **核心功能**: 使用贪婪等价搜索算法发现因果结构 **详细说明**: - **前向阶段**: 贪婪地添加边以改善评分 - **后向阶段**: 移除不必要的边 - 支持BIC、AIC等评分标准 - 处理高维数据的因果发现 - 提供因果图的置信度评估 **使用场景**: 当需要从观察数据中学习因果结构时 ### 3. fcm_discovery **核心功能**: 发现功能因果模型 **详细说明**: - **LiNGAM方法**: 基于线性非高斯无环模型 - **ANM方法**: 加性噪声模型的因果方向识别 - **回归方法**: 基于回归的因果强度估计 - 支持非线性因果关系发现 - 提供因果方向的置信度 **使用场景**: 需要发现变量间的函数因果关系时 --- ## 📝 使用建议 ### 工具选择流程 1. **建模阶段**: 使用因果建模工具构建理论模型 2. **估计阶段**: 根据数据特点选择合适的效应估计工具 3. **验证阶段**: 使用敏感性分析工具验证结果稳健性 4. **解释阶段**: 使用归因和反事实工具深入理解结果 ### 数据要求 - **最小样本量**: 建议至少100个观测 - **数据格式**: CSV格式,包含所有相关变量 - **数据质量**: 处理缺失值和异常值 - **变量类型**: 支持连续、离散和分类变量 --- ## 💡 实际使用示例 ### 完整分析流程示例 假设我们要分析教育对收入的因果效应: ```python # 1. 构建因果模型 causal_graph_builder( data_path="education_income.csv", variables=["education", "income", "age", "experience", "ability"], edges=[("education", "income"), ("age", "experience"), ("ability", "education")] ) # 2. 估计因果效应 backdoor_estimator( data_path="education_income.csv", treatment="education", outcome="income", confounders=["age", "ability"] ) # 3. 敏感性分析 e_value_analyzer( observed_effect=0.15, confidence_interval=[0.08, 0.22] ) # 4. 反事实分析 individual_counterfactual( data_path="education_income.csv", treatment="education", outcome="income", confounders=["age", "ability"], counterfactual_treatment=16 ) ``` ### 工具组合建议 **基础分析组合**: 1. `causal_graph_builder` → `backdoor_estimator` → `e_value_analyzer` **稳健性分析组合**: 1. `propensity_score_estimator` → `doubly_robust_estimator` → `refutation_test_suite` **深度分析组合**: 1. `path_specific_effects` → `shapley_value_attribution` → `counterfactual_fairness` --- ## ⚠️ 注意事项 ### 常见陷阱 1. **因果假设**: 所有方法都依赖于不可验证的因果假设 2. **模型规范**: 错误的模型规范会导致有偏估计 3. **样本选择**: 样本的代表性影响结果的外部有效性 4. **多重比较**: 进行多次测试时需要调整显著性水平 ### 最佳实践 1. **理论先行**: 基于领域知识构建因果模型 2. **多方法验证**: 使用多种方法验证结果的稳健性 3. **敏感性分析**: 系统性测试关键假设的影响 4. **透明报告**: 详细报告分析过程和局限性 每个工具都提供详细的错误处理、参数验证和结果解释,确保分析的专业性和可靠性。 --- ## 📚 进一步学习 ### 推荐资源 - **理论基础**: Pearl的《Causality》和《The Book of Why》 - **方法学**: Imbens & Rubin的《Causal Inference for Statistics》 - **实践指南**: Cunningham的《Causal Inference: The Mixtape》 - **软件文档**: DoWhy官方文档和教程 ### 相关工具 - **R语言**: lavaan, mediation, Matching - **Python**: scikit-learn, statsmodels, causalml - **专业软件**: Stata, SAS, SPSS的因果推断模块

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/lesong36/dowhy_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server