Home Technology peripherals AI Getting started with causal AI in Python – code examples and first steps

Getting started with causal AI in Python – code examples and first steps

Mar 10, 2025 am 11:05 AM

Many industry experts question the reliability of common prediction algorithms when making data-driven decisions. Spurious correlations, like that between chocolate consumption and Nobel laureates, highlight the crucial distinction between correlation and causation. While correlation exists, it doesn't automatically imply a causal relationship. Understanding root causes and using data analytics for impactful change is vital for businesses, leading companies like Microsoft and Amazon to invest heavily in causal AI.

This tutorial introduces fundamental causal AI concepts using Python's DoWhy library. While differing from standard machine learning, a basic grasp of regression analysis is helpful. DataCamp's "Introduction to Linear Modeling in Python" and "Machine Learning for Business" courses offer relevant background.

Causal AI Fundamentals

Causal inference requires a different approach than predictive analytics. Nancy Cartwright's "No causes in, no causes out" emphasizes the need for assumptions about the causal structure to obtain causal answers; a purely data-driven approach is insufficient. To determine causality, alternative explanations must be ruled out, requiring external knowledge beyond the data itself.

Consider a new work-from-home (WFH) policy's impact on employee productivity. Initial analysis might show higher task completion for WFH employees, but is this causal? Other factors, like employee personality or family situations, could influence both WFH preference and productivity, acting as common causes.

Getting started with causal AI in Python – code examples and first steps

Note: Graph created by causalfusion.net

Causal graphs visually represent these relationships, making assumptions explicit and allowing for refinement. These assumptions can be strong, but the explicit nature of causal graphs enhances analysis credibility.

DoWhy in Python

Microsoft's DoWhy library (part of the PyWhy ecosystem) is a leading tool for causal analysis in Python. We'll simulate data to illustrate causal inference steps.

!pip install git+https://github.com/microsoft/dowhy.git
import numpy as np
import pandas as pd
import dowhy
from dowhy import CausalModel
import dowhy.datasets
import statsmodels.api as sm

# Set seed for reproducibility
np.random.seed(1)

# Simulate data
data = dowhy.datasets.linear_dataset(
    beta=1,
    num_common_causes=2,
    num_discrete_common_causes=1,
    num_instruments=1,
    num_samples=10000,
    treatment_is_binary=True)

df = data['df']

# ... (rest of the DoWhy code remains the same) ...
Copy after login
Copy after login

DoWhy uses labels as shown in Table 1 (original table remains unchanged). The causal graph is implicitly defined by data parameters. DoWhy uses the DOT language to represent graphs.

digraph {v0->y;W0-> v0; W1-> v0;Z0-> v0;W0-> y; W1-> y;}
Copy after login

A causal model is created combining data and graph:

model=CausalModel(
        data = df,
        treatment=data['treatment_name'],
        outcome=data['outcome_name'],
        graph=data['gml_graph']
        )
Copy after login

Causal Analysis and Bias Reduction

A simple linear regression shows a slope coefficient, but this can be biased due to common causes. DoWhy's backdoor criterion helps address this by controlling for variables influencing both treatment and outcome (introversion and number of kids in this example).

!pip install git+https://github.com/microsoft/dowhy.git
import numpy as np
import pandas as pd
import dowhy
from dowhy import CausalModel
import dowhy.datasets
import statsmodels.api as sm

# Set seed for reproducibility
np.random.seed(1)

# Simulate data
data = dowhy.datasets.linear_dataset(
    beta=1,
    num_common_causes=2,
    num_discrete_common_causes=1,
    num_instruments=1,
    num_samples=10000,
    treatment_is_binary=True)

df = data['df']

# ... (rest of the DoWhy code remains the same) ...
Copy after login
Copy after login

DoWhy provides various estimation methods; inverse probability weighting is used here for generality. The resulting estimate is close to the ground truth, demonstrating bias reduction.

Stress Testing and Robustness

DoWhy's refutation tests help assess assumption reliability. Adding an unobserved common cause significantly impacts the estimate's range, highlighting the influence of unobservable variables.

Getting started with causal AI in Python – code examples and first steps

Instrumental Variables

Instrumental variables (like a subway closure affecting WFH but not directly impacting productivity) offer an alternative identification strategy. DoWhy automatically identifies suitable instruments, providing more robust, albeit potentially less precise, estimates.

Getting started with causal AI in Python – code examples and first steps

Conclusion

DoWhy simplifies causal AI, providing a comprehensive pipeline. After mastering the basics, explore advanced techniques and other libraries. Causal inference requires domain expertise and collaboration to define suitable models and assumptions. The effort is worthwhile for obtaining causal answers crucial for informed business decisions. DataCamp's "Machine Learning for Business" course provides further learning opportunities.

The above is the detailed content of Getting started with causal AI in Python – code examples and first steps. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1664
14
PHP Tutorial
1268
29
C# Tutorial
1246
24
Getting Started With Meta Llama 3.2 - Analytics Vidhya Getting Started With Meta Llama 3.2 - Analytics Vidhya Apr 11, 2025 pm 12:04 PM

Meta's Llama 3.2: A Leap Forward in Multimodal and Mobile AI Meta recently unveiled Llama 3.2, a significant advancement in AI featuring powerful vision capabilities and lightweight text models optimized for mobile devices. Building on the success o

10 Generative AI Coding Extensions in VS Code You Must Explore 10 Generative AI Coding Extensions in VS Code You Must Explore Apr 13, 2025 am 01:14 AM

Hey there, Coding ninja! What coding-related tasks do you have planned for the day? Before you dive further into this blog, I want you to think about all your coding-related woes—better list those down. Done? – Let&#8217

AV Bytes: Meta's Llama 3.2, Google's Gemini 1.5, and More AV Bytes: Meta's Llama 3.2, Google's Gemini 1.5, and More Apr 11, 2025 pm 12:01 PM

This week's AI landscape: A whirlwind of advancements, ethical considerations, and regulatory debates. Major players like OpenAI, Google, Meta, and Microsoft have unleashed a torrent of updates, from groundbreaking new models to crucial shifts in le

Selling AI Strategy To Employees: Shopify CEO's Manifesto Selling AI Strategy To Employees: Shopify CEO's Manifesto Apr 10, 2025 am 11:19 AM

Shopify CEO Tobi Lütke's recent memo boldly declares AI proficiency a fundamental expectation for every employee, marking a significant cultural shift within the company. This isn't a fleeting trend; it's a new operational paradigm integrated into p

GPT-4o vs OpenAI o1: Is the New OpenAI Model Worth the Hype? GPT-4o vs OpenAI o1: Is the New OpenAI Model Worth the Hype? Apr 13, 2025 am 10:18 AM

Introduction OpenAI has released its new model based on the much-anticipated “strawberry” architecture. This innovative model, known as o1, enhances reasoning capabilities, allowing it to think through problems mor

A Comprehensive Guide to Vision Language Models (VLMs) A Comprehensive Guide to Vision Language Models (VLMs) Apr 12, 2025 am 11:58 AM

Introduction Imagine walking through an art gallery, surrounded by vivid paintings and sculptures. Now, what if you could ask each piece a question and get a meaningful answer? You might ask, “What story are you telling?

3 Methods to Run Llama 3.2 - Analytics Vidhya 3 Methods to Run Llama 3.2 - Analytics Vidhya Apr 11, 2025 am 11:56 AM

Meta's Llama 3.2: A Multimodal AI Powerhouse Meta's latest multimodal model, Llama 3.2, represents a significant advancement in AI, boasting enhanced language comprehension, improved accuracy, and superior text generation capabilities. Its ability t

Newest Annual Compilation Of The Best Prompt Engineering Techniques Newest Annual Compilation Of The Best Prompt Engineering Techniques Apr 10, 2025 am 11:22 AM

For those of you who might be new to my column, I broadly explore the latest advances in AI across the board, including topics such as embodied AI, AI reasoning, high-tech breakthroughs in AI, prompt engineering, training of AI, fielding of AI, AI re

See all articles