Git Product home page Git Product logo

flame's Introduction

FLAME (Fast, Large-scale, Almost Matching Exactly)

Overview of the FLAME algorithm

The FLAME algorithm provides fast and large-scale matching approach to causal inference. FLAME creates matches that include as many covariates as possible, and iteratively drops covariates that are successively less useful for predicting outcomes based on matching quality. Currently the FLAME package applies to categorical data, and provides two approaches for implementation - bit vectors and database management systems (e.g., PostgreSQL, SQLite). For data that has been preprocessed and fits in memory, bit vectors should be applied. For extremely large data that does not fit in memory, database systems should be applied.

For more details about the FLAME algorithm, please refer to the paper: FLAME: A Fast Large-scale Almost Matching Exactly Approach to Causal Inference and FLAME: An R Package for a Fast Large-scale Almost Matching Exactly Approach to Causal Inference

Installation

# Download from CRAN
install.packages("FLAME")

# Download from GitHub
devtools::install_github("chiarui424/FLAME") 

Required data format

FLAME package requires input data to have specific format. First, input data should be a R Data Frame. Second, all covariates in the input data should be categorical covariates, represented by factor R data type. If there are continuous covariates, please consider regrouping. Third, input data columns should contain (1) covariates in factor data type, (2) outcome variable in numeric data type, and (3) variable specifying a unit is treated or control (treated = 1, control = 0) in factor data type. Lastly, though there are no requirements for input data column names, the column order should follow [covariates, outcome, treated]. Below is an example of input data with n units and m covariates.

x1 x2 ... xm − 1 xm outcome treated
R data type factor factor factor factor factor numeric factor
unit 1 0 1 ... 1 2 3.8 1
unit 2 1 0 ... 1 0 1.36 0
unit 3 0 1 ... 0 1 -7.25 0
... ... ... ... ... ... ... ...
unit n 0 1 ... 1 0 20 1

Holdout training set should also follow the same format.

Other requirements

  1. FLAME requires installation of python, specifically with at least python 2.7 version. If your computer system does not have python 2.7, install from here.

  2. For database systems implementation, FLAME package provides two versions - SQLite and PostgreSQL. PostgreSQL requires installation of external database system but it is faster. SQLite does not require external database system but is slower. If your computer does not have PostgreSQL installed, install from here. For connecting and setup of PostgreSQL server, please refer to the tutorialhttp://www.postgresqltutorial.com/connect-to-postgresql-database/)

  3. For database systems implementation, please name the database connection as db.

Some examples

Apply the FLAME Algorithm to Synthetic Data

Get Detailed Information After Matching

Match Quality

flame's People

Contributors

jerrychiaruichang avatar

Watchers

Haohan Chen avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.