class_docstr: Class for the estimate object that every causal estimator returns
class_docstr_tok: ["Class","for","the","estimate","object","that","every","causal","estimator","returns"]
code: def __init__(
      self,
      data,
      treatment_name,
      outcome_name,
      estimate,
      target_estimand,
      realized_estimand_expr,
      control_value,
      treatment_value,
      conditional_estimates=None,
      **kwargs,
  ):
      # TODO: Remove _data, _treatment_name and _outcome_name from this object
      # we save them here to enable the methods that required these properties saved in the estimator
      # eventually we should call those methods and just save the results in this object
      # instead of having this object invoke the estimator methods with the data.
      self._data = data
      self._treatment_name = treatment_name
      self._outcome_name = outcome_name
      self.value = estimate
      self.target_estimand = target_estimand
      self.realized_estimand_expr = realized_estimand_expr
      self.control_value = control_value
      self.treatment_value = treatment_value
      self.conditional_estimates = conditional_estimates
      self.params = kwargs
      if self.params is not None:
          for key, value in self.params.items():
              setattr(self, key, value)
  
      self.effect_strength = None
  
imports: import copy
  import logging
  from collections import namedtuple
  from typing import Dict, List, Optional, Union
  import numpy
  import pandas
  import sympy
  from sklearn.utils import resample
  import dowhy.interpreters
  from dowhy.causal_identifier.identified_estimand import IdentifiedEstimand
  from dowhy.utils.api import parse_state
label_desc: Use image node_id 1 to create a new CausalEstimate object  with example: obj = CausalEstimate(data, treatment_name, outcome_name, estimate, target_estimand, realized_estimand_expr, control_value, treatment_value, conditional_estimates)