dowhy

Estimate causal effects from observational data using the identify-estimate-refute framework.

19|2|Updated Jan 31, 2026
One-click install
npx skills add https://github.com/tondevrel/scientific-agent-skills --skill dowhy
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: dowhy
Source: https://github.com/tondevrel/scientific-agent-skills/tree/main/skills/dowhy
Command: npx skills add https://github.com/tondevrel/scientific-agent-skills --skill dowhy

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) and scripts (resource) components.

What problem does it solve?

This Skill helps you move beyond simple correlations to understand true causal relationships, answering "does X cause Y?" rather than just "how are X and Y related?".

Core Features & Use Cases

  • Causal Inference: Identify, estimate, and refute causal effects from observational data.
  • Confounder Adjustment: Control for hidden variables that distort relationships.
  • Use Case: Determine if a marketing campaign caused an increase in sales, or if it was just correlated with other factors that drove sales up.

Quick Start

Use the dowhy skill to estimate the causal effect of 'treatment' on 'outcome' using 'backdoor.linear_regression' after defining the causal graph.

Frequently Asked Questions about dowhy

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I distinguish causation from correlation in observational data?

To distinguish causation from correlation in observational data, apply the identify-estimate-refute framework to estimate true causal effects. This requires defining a Directed Acyclic Graph (DAG) to encode assumptions and utilizing methods like backdoor adjustment.

When do I need to use a Directed Acyclic Graph for causal inference?

You need a Directed Acyclic Graph (DAG) for causal inference when you must explicitly encode causal assumptions to identify effects. It maps confounding variables, enabling methods like frontdoor adjustment or instrumental variables to isolate true treatment effects.

How do I estimate the Average Treatment Effect using backdoor adjustment?

To estimate the Average Treatment Effect (ATE) using backdoor adjustment, define your causal graph and apply methods like backdoor.linear_regression. This controls for confounding variables that distort the relationship between treatment and outcome.

Can I calculate the Conditional Average Treatment Effect from observational data?

Yes, you can calculate the Conditional Average Treatment Effect (CATE) from observational data by defining a Directed Acyclic Graph and applying the identify-estimate-refute framework. This isolates how treatment effects vary across different subpopulations.

What is the difference between estimating Average Treatment Effects and effects on the treated?

Estimating Average Treatment Effects (ATE) measures the causal effect across the entire population, while Average Treatment Effects on the Treated (ATT) isolates the effect specifically for those who received the treatment, both derivable from observational data.

How can I test the robustness of my causal effect estimates?

To test the robustness of causal effect estimates, apply the refute phase of the identify-estimate-refute framework. This evaluates the sensitivity of your treatment effect calculations to hidden variables and invalid causal graph assumptions.