def estimator_2sls_nn_ols_control(data, est_kwargs={}, mrg_kwargs={}, exog={}, est_kwargs_first={}, regression=True, splits=('Train', 'Test'), **kwargs): # Call 2SLS estimator betahat, expect, mrgeff = est.estimator_2sls( data=data, est_kwargs=est_kwargs, est_kwargs_first=est_kwargs_first, mrg_kwargs=mrg_kwargs, exog=exog, regression=regression, constant=True, estimate_2sls_1st=estimate_2sls_nn_1st, estimate_2sls_2nd=est.estimate_2sls_2nd_ols_control, splits=splits, **kwargs) #Return results return betahat, expect, mrgeff
def estimator_2sls_nn_control(data, est_kwargs={}, mrg_kwargs={}, exog={}, est_kwargs_first={}, regression=True, splits=('Train', 'Test'), **kwargs): # Call 2SLS estimator # The main point is to specify first and second stage estimation techniques. betahat, expect, mrgeff = est.estimator_2sls( data=data, est_kwargs=est_kwargs, est_kwargs_first=est_kwargs_first, mrg_kwargs=mrg_kwargs, exog=exog, regression=regression, estimate_2sls_1st=estimate_2sls_nn_1st, estimate_2sls_2nd=estimate_2sls_nn_2nd_control, splits=splits, **kwargs) #Return results return betahat, expect, mrgeff