


Getting started with causal AI in Python – code examples and first steps
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.
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) ...
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;}
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'] )
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) ...
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.
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.
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!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

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

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











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

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’

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

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

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

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?

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

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
