in causalPartition.py [0:0]
def estimate_exposure_hajek(self, train_result_separate, indirect_space, outcome, eps=0.005, separate=True):
"""
train_result_separate: result from training
indirect_space: feature space (consistent with training input)
outcome: (consistent with training input)
eps: (consistent with training input)
df_est=None: leave it
probabilities=None: leave it
separate=True: separate trees.
"""
if separate:
df_est = self.df_est
probabilities = self.probabilities
probabilities_est = {}
for key in [self.treatment]+indirect_space:
probabilities_est[key] = self.probabilities[key][self.idx_est]
est_result_separate = {}
est_result_separate = self._split_exposure_validate(1, df_est, train_result_separate, probabilities_est, [], outcome, eps)
self.est_result_separate = est_result_separate
return est_result_separate
else:
# if find a valid partition for T == 1 or 0 separately
df_est = self.df_est
probabilities_est = {}
for key in indirect_space+[self.treatment]:
probabilities_est[key] = self.probabilities[key][self.idx_est.astype(bool)]
est_result_separate_eht = {}
est_result_separate_eht = self._split_exposure_validate_eht(1, df_est, train_result_separate, probabilities_est, [], outcome, eps)
self.est_result_separate_eht = est_result_separate_eht
return est_result_separate_eht