Skip to main content
Glama

DoWhy MCP v2.0

by lesong36
MIT License
DOWHY_V013_RESEARCH.md8.03 kB
# 🔍 DoWhy v0.13 完整功能调研报告 ## 📋 **调研目标** 系统性地调研DoWhy v0.13的所有功能模块,确定我们需要实现的完整工具集,避免基于片面信息制定重建计划。 ## 🎯 **调研方法** 1. **GitHub源代码分析**: 分析DoWhy v0.13的完整源代码结构 2. **官方文档调研**: 研究最新的API文档和用户指南 3. **示例代码分析**: 分析官方示例中使用的所有方法 4. **功能分类整理**: 按模块系统性地整理所有功能 --- ## 📊 **DoWhy v0.13 核心架构** 基于GitHub README和初步调研,DoWhy v0.13包含以下核心功能领域: ### 🎯 **主要功能领域** 1. **Effect Estimation** - 因果效应估计 2. **Causal Influence Quantification** - 因果影响量化 3. **What-if Analysis** - 假设分析 4. **Root Cause Analysis** - 根因分析 5. **Graphical Causal Models (GCM)** - 图形因果模型 ### 🏗️ **核心模块结构** 根据GitHub信息,DoWhy包含以下主要模块: - `causal_estimators/` - 因果估计器 - `causal_refuters/` - 因果反驳器 - `causal_identifier/` - 因果识别器 - `gcm/` - 图形因果模型 - `graph_learners/` - 图学习器 - `do_samplers/` - Do采样器 - `interpreters/` - 解释器 - `utils/` - 工具函数 --- ## 🔍 **详细功能调研** ### 1. **Effect Estimation (因果效应估计)** #### 1.1 **后门调整方法 (Backdoor Methods)** 基于官方文档,DoWhy支持以下后门调整方法: **已确认的方法**: - ✅ `linear_regression` - 线性回归 - ✅ `propensity_score_matching` - 倾向得分匹配 - ❌ `generalized_linear_model` - 广义线性模型 - ❌ `distance_matching` - 距离匹配 - ❌ `propensity_score_stratification` - 倾向得分分层 - ❌ `propensity_score_weighting` - 倾向得分加权 **调用格式**: `backdoor.method_name` #### 1.2 **工具变量方法 (Instrumental Variable Methods)** - ✅ `instrumental_variable` - 工具变量估计 - ❌ `regression_discontinuity` - 回归不连续 **调用格式**: `iv.method_name` #### 1.3 **前门调整方法 (Frontdoor Methods)** - ❌ `two_stage_regression` - 两阶段回归 **调用格式**: `frontdoor.method_name` #### 1.4 **高级集成方法** - ❌ **EconML集成**: `backdoor.econml.dml.DML` 等 - ❌ **CausalML集成**: `backdoor.causalml.*` 等 ### 2. **Causal Refutation (因果反驳)** 基于官方文档,DoWhy支持以下反驳方法: **已确认的方法**: - ✅ `random_common_cause` - 随机共同原因 - ❌ `placebo_treatment_refuter` - 安慰剂治疗 - ❌ `data_subset_refuter` - 数据子集 - ❌ `add_unobserved_common_cause` - 添加未观测共同原因 - ❌ `bootstrap_refuter` - 自助法反驳 - ❌ `dummy_outcome_refuter` - 虚拟结果反驳 ### 3. **Causal Discovery (因果发现)** **已确认的方法**: - ✅ `PC` - PC算法 - ✅ `GES` - GES算法 - ✅ `LiNGAM` - LiNGAM算法 - ❌ 其他因果发现算法 ### 4. **Graphical Causal Models (GCM) - 🚨 巨大缺失!** 这是DoWhy的核心功能模块,我们**完全没有实现**!基于v0.11文档: **4.1 核心模型类**: - ❌ `StructuralCausalModel` - 结构因果模型 - ❌ `InvertibleStructuralCausalModel` - 可逆结构因果模型 - ❌ `ProbabilisticCausalModel` - 概率因果模型 **4.2 因果机制**: - ❌ `AdditiveNoiseModel` - 加性噪声模型 - ❌ `ClassifierFCM` - 分类器功能因果模型 - ❌ `PostNonlinearModel` - 后非线性模型 - ❌ `DiscreteAdditiveNoiseModel` - 离散加性噪声模型 **4.3 自动分配**: - ❌ `assign_causal_mechanisms` - 自动分配因果机制 - ❌ `assign_causal_mechanism_node` - 节点机制分配 - ❌ `find_best_model` - 寻找最佳模型 **4.4 拟合和采样**: - ❌ `fit` - 模型拟合 - ❌ `draw_samples` - 绘制样本 - ❌ `fit_causal_model_of_target` - 目标模型拟合 **4.5 What-if分析**: - ❌ `interventional_samples` - 干预样本 - ❌ `counterfactual_samples` - 反事实样本 - ❌ `average_causal_effect` - 平均因果效应 **4.6 异常和归因**: - ❌ `attribute_anomalies` - 异常归因 - ❌ `anomaly_scores` - 异常评分 - ❌ `conditional_anomaly_scores` - 条件异常评分 **4.7 分布变化分析**: - ❌ `distribution_change` - 分布变化 - ❌ `distribution_change_of_graphs` - 图分布变化 - ❌ `mechanism_change_test` - 机制变化测试 **4.8 因果影响量化**: - ❌ `arrow_strength` - 箭头强度 - ❌ `intrinsic_causal_influence` - 内在因果影响 - ❌ `feature_relevance_distribution` - 特征相关性分布 **4.9 模型评估**: - ❌ `evaluate_causal_model` - 评估因果模型 - ❌ `falsify_graph` - 图形验证 - ❌ `refute_causal_structure` - 反驳因果结构 **4.10 Shapley值分析**: - ❌ `estimate_shapley_values` - 估计Shapley值 - ❌ `ShapleyConfig` - Shapley配置 **4.11 单位变化分析**: - ❌ `unit_change` - 单位变化 - ❌ `unit_change_linear` - 线性单位变化 - ❌ `unit_change_nonlinear` - 非线性单位变化 **4.12 验证和反驳**: - ❌ `refute_invertible_model` - 反驳可逆模型 - ❌ `validate_causal_model_assignment` - 验证因果模型分配 **仅GCM模块就包含约50+个功能!** ### 5. **Do Samplers (Do采样器)** **功能**: - ❌ `DoSampler` - Do操作采样器 - ❌ 各种采样方法 ### 6. **Interpreters (解释器)** **功能**: - ❌ 因果估计解释器 - ❌ 因果模型解释器 - ❌ 反驳结果解释器 --- ## 📊 **初步缺失分析** ### 🚨 **严重缺失的功能模块** 1. **估计方法缺失**: 至少6个标准后门调整方法 2. **反驳方法缺失**: 至少5个标准反驳方法 3. **GCM模块完全缺失**: 整个图形因果模型功能 4. **Do采样器缺失**: 干预分布采样功能 5. **解释器缺失**: 结果解释功能 6. **高级集成缺失**: EconML和CausalML集成 ### 📈 **重新评估缺失工具数量** 基于深入调研(仅基于部分文档): - **估计工具**: 缺失约6-8个标准方法 - **反驳工具**: 缺失约5个标准方法 - **GCM工具**: 缺失约50+个功能(整个模块!) - **因果发现工具**: 可能缺失更多算法 - **Do采样器**: 缺失整个模块 - **解释器**: 缺失整个模块 - **其他高级功能**: 未知数量 **保守估计总缺失**: 70-100个工具/功能 **这意味着我们当前的38个工具可能只覆盖了DoWhy功能的20-30%!** ### 🚨 **震撼发现** DoWhy不仅仅是一个因果推理库,而是一个**完整的因果推理生态系统**: 1. **传统因果推理**: 我们实现了一部分 2. **图形因果模型**: 我们完全没有实现(50+功能) 3. **根因分析**: 我们实现了基础版本 4. **异常归因**: 我们实现了基础版本 5. **反事实推理**: 我们实现了基础版本 6. **高级集成**: 完全没有实现 7. **模型验证**: 部分实现 --- ## 🎯 **下一步调研计划** ### 阶段1: 深入源代码分析 🔄 进行中 - [ ] 分析DoWhy GitHub源代码结构 - [ ] 列出所有模块和类 - [ ] 确定每个模块的具体功能 ### 阶段2: 官方文档系统调研 📋 待开始 - [ ] 研究DoWhy v0.13完整API文档 - [ ] 分析所有示例notebook - [ ] 整理完整的方法清单 ### 阶段3: 功能分类和优先级 📊 待开始 - [ ] 按重要性对缺失功能分类 - [ ] 制定实现优先级 - [ ] 估算实现工作量 ### 阶段4: 制定完整重建计划 🔧 待开始 - [ ] 基于完整调研制定重建计划 - [ ] 设定实现里程碑 - [ ] 建立质量保证流程 --- ## ⚠️ **重要发现** **我们严重低估了DoWhy的功能范围!** DoWhy v0.13不仅仅是一个因果效应估计库,而是一个完整的因果推理生态系统,包含: - 传统因果推理方法 - 现代图形因果模型 - 根因分析和异常归因 - 反事实推理和干预分析 - 与其他库的深度集成 我们当前的38个工具可能只覆盖了DoWhy功能的20-30%! **结论**: 需要完整的系统性调研才能制定准确的重建计划。

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