class_docstr: Smoke tests for the integration with EconML estimators
  
  These tests only check that the ate estimation routine can be executed without errors.
  We don't check the accuracy of the ate estimates as we don't want to take dependencies on
  EconML estimators.
class_docstr_tok: ["Smoke","tests","for","the","integration","with","EconML","estimators","These","tests","only","check","that","the","ate","estimation","routine","can","be","executed","without","errors",".","We","do","n't","check","the","accuracy","of","the","ate","estimates","as","we","do","n't","want","to","take","dependencies","on","EconML","estimators","."]
code: def test_effect_modifier_input2(self):
      # The case where effect modifier is not a common cause
      arr = np.random.normal(size=(500, 5))
      df = pd.DataFrame(arr, columns=["Y", "T", "X", "W0", "W1"])
      model = CausalModel(
          data=df,
          treatment="T",
          outcome="Y",
          effect_modifiers=["X"],
          common_causes=["W0", "W1"],
          estimand_type="nonparametric-ate",
      )
  
      estimand = model.identify_effect()
      est1 = model.estimate_effect(
          identified_estimand=estimand,
          method_name="backdoor.econml.dml.LinearDML",
          method_params={
              "init_params": {"random_state": 123},
              "fit_params": {},
          },
      )
  
      # A model where X is also a common cause
      model = CausalModel(
          data=df,
          treatment="T",
          outcome="Y",
          effect_modifiers=["X"],
          common_causes=["W0", "W1"],
          estimand_type="nonparametric-ate",
      )
  
      estimand = model.identify_effect()
      est2 = model.estimate_effect(
          identified_estimand=estimand,
          effect_modifiers=["X"],
          method_name="backdoor.econml.dml.LinearDML",
          method_params={
              "init_params": {"random_state": 123},
              "fit_params": {},
          },
      )
  
      assert np.array_equal(est1.cate_estimates, est2.cate_estimates)
  
file_path: dowhy/tests/causal_estimators/test_econml_estimator.py
imports: import re
  import numpy
  import pandas
  import pytest
  from sklearn.ensemble import GradientBoostingClassifier, GradientBoostingRegressor
  from sklearn.linear_model import LogisticRegressionCV
  from sklearn.model_selection import train_test_split
  from sklearn.preprocessing import PolynomialFeatures
  import dowhy
  from dowhy import CausalModel, datasets
label_desc: Use image node_id 8 for calling the TestEconMLEstimator obj's underlying member method code with example usage: obj.test_effect_modifier_input2() without return types