Skip to content

microsoft/showwhy

Repository files navigation

ShowWhy

⚠️ Currently we have an ongoing problem with one of our dependencies when building Showwhy from scratch. Feel free to use the Deploy to Azure button.

Introduction to ShowWhy

ShowWhy is a suite of no-code interfaces for performing data analysis using causal ML techniques and libraries. Currently, ShowWhy consists of four primary user-interfaces:

Data-Wrangling

The data-wrangling application allows users to clean, transform, and prepare data for analysis. Data tables created in the wrangling app can be used in other views within the application.

Exposure Analysis

This interface, formerly known as ShowWhy, allows users to define and test hypotheses around causal links within data in order to validate their prior assumptions. For example, a user may have some prior domain knowledge that "co2 emissions cause global warming" or "smoking causes cancer". This interface will verify these causal claims using the dowhy suite of refuters and estimators, and will help the user to understand the results of these analyses.

Screenshot of the exposure analysis interface

Event Analysis

The event analysis interface allows users to use time-series observational data containing treated and untreated units to detect whether treatments had a net effect on outcomes. This interface uses the Synthetic Differences-in-Differences technique for analysis.

Screenshot of the event analysis interface

Causal Discovery

This interface allows users to inspect variable relationships within data, and to perform causal discovery using a variety of techniques such as Causica, NOTEARS and DirectLiNGAM.

Screenshot of the causal discovery interface

Getting Started

Note: At the moment, ShowWhy does not work with Apple Mxx processors in local mode.

To run the application locally, ensure that you have Docker installed and running on your machine. You can find instructions for installing Docker here.

Open up a terminal application, and using the command-line interface (CLI) run the following command:

docker compose --profile all up

For developers wishing to contribute to the project, refer to DEVELOPING.md for instructions on getting started.

Deployment

Deploy to Azure

Check the deployment documentation for instructions on how to deploy to deploy ShowWhy to Azure AKS (either via one-click or manually), and how to deploy ShowWhy into a local Kubernetes instance.

Contribute

We welcome contributions to the application. All submissions must pass the CLABot verification.