This package implements the double debiased estimator from "Double/Debiased Machine Learning for Treatment and Structural Parameters" by Chernozhukov et. al.
pip install double_debias
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.
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)