Skip to content

Python implementation of Double/Debiased machine learning algorithm from Chernozhukov et. al ontop of sklearn. Builds and deploys to pip using github actions.

License

Notifications You must be signed in to change notification settings

joe5saia/double_debias

Repository files navigation

double_debias

Basic Build codecov

This package implements the double debiased estimator from "Double/Debiased Machine Learning for Treatment and Structural Parameters" by Chernozhukov et. al.

installation

pip install double_debias

Usage

This package estimates models of the form y = theta D + g(z) + e where z is a high dimensional object.

from sklearn.ensemble import GradientBoostingRegressor
from sklearn.linear_model import LinearRegression
from double_debias import DoubleDebias
dd = DoubleDebias(y=np.array([i for i in range(0,10)]),
                   D= np.array([i//2 for i in range(0,10)]),
                   p.array([[i**2 for i in range(0,10)], [i**3 for i in range(0,10)]]).transpose(),
                   y_method= GradientBoostingRegressor(n_estimators=1000),
                   D_method= LinearRegression(),
                   n_folds=3)
dd.est_theta()

The user initializes the estimator object with the data for y, D, and z along with the method for estimating y ~ g(z) + e and D ~ f(z) + e. The y_method and D_method can be any model from the sklearn library that implements the fit and predict methods. The user may also supply their own class that implements these methods. This class does no parameter tuning or cross validation. Parameter tuning is left up to the user.

Custom Estimator Methods

The user may supply their own estimators if these are not available in sklearn. This module assumes that the class passed has the fit and predict methods, i.e. the following code must work

z = np.array([[i**2 for i in range(0,10)], [i**3 for i in range(0,10)]]).transpose()
y = np.array([i for i in range(0,10)])
m = my_estimator()
m.fit(z, y)
m.predict(z)

About

Python implementation of Double/Debiased machine learning algorithm from Chernozhukov et. al ontop of sklearn. Builds and deploys to pip using github actions.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published