def refute_estimate(self, estimand, estimate, method_name=None, **kwargs): """Refute an estimated causal effect. If method_name is provided, uses the provided method. In the future, we may support automatic selection of suitable refutation tests. Following refutation methods are supported. * Adding a randomly-generated confounder: "random_common_cause" * Adding a confounder that is associated with both treatment and outcome: "add_unobserved_common_cause" * Replacing the treatment with a placebo (random) variable): "placebo_treatment_refuter" * Removing a random subset of the data: "data_subset_refuter" :param estimand: target estimand, an instance of the IdentifiedEstimand class (typically, the output of identify_effect) :param estimate: estimate to be refuted, an instance of the CausalEstimate class (typically, the output of estimate_effect) :param method_name: name of the refutation method :param kwargs: (optional) additional arguments that are passed directly to the refutation method. Can specify a random seed here to ensure reproducible results ('random_seed' parameter). For method-specific parameters, consult the documentation for the specific method. All refutation methods are in the causal_refuters subpackage. :returns: an instance of the RefuteResult class """ if method_name is None: pass else: refuter_class = causal_refuters.get_class_object(method_name) refuter = refuter_class(self._data, identified_estimand=estimand, estimate=estimate, **kwargs) res = refuter.refute_estimate() return res
def refute_estimate(self, estimand, estimate, method_name=None, **kwargs): """Refute an estimated causal effect. If method_name is provided, uses the provided method. In the future, we may support automatic selection of suitable refutation tests. :param estimand: target estimand, an instance of the IdentifiedEstimand class (typically, the output of identify_effect) :param estimate: estimate to be refuted, an instance of the CausalEstimate class (typically, the output of estimate_effect) :param method_name: name of the refutation method :param **kwargs: (optional) additional method-specific arguments that are passed directly to the refutation method :returns: an instance of the RefuteResult class """ if method_name is None: pass else: refuter_class = causal_refuters.get_class_object(method_name) refuter = refuter_class( self._data, identified_estimand=estimand, estimate=estimate, **kwargs ) res = refuter.refute_estimate() return res
def refute_estimate(self, estimand, estimate, method_name=None, **kwargs): """Refute an estimated causal effect. If method_name is provided, uses the provided method. Else, finds a suitable method to use. :param estimate: an instance of the CausalEstimate class. :returns: an instance of the RefuteResult class """ if method_name is None: pass else: refuter_class = causal_refuters.get_class_object(method_name) refuter = refuter_class(self._data, identified_estimand=estimand, estimate=estimate, **kwargs) res = refuter.refute_estimate() return res