class_docstr: Refute an estimate by introducing a randomly generated confounder
  (that may have been unobserved).
  
  Supports additional parameters that can be specified in the refute_estimate() method. For joblib-related parameters (n_jobs, verbose), please refer to the joblib documentation for more details (https://joblib.readthedocs.io/en/latest/generated/joblib.Parallel.html).
  
  :param num_simulations: The number of simulations to be run, which is ``CausalRefuter.DEFAULT_NUM_SIMULATIONS`` by default
  :type num_simulations: int, optional
  
  :param random_state: The seed value to be added if we wish to repeat the same random behavior. If we with to repeat the same behavior we push the same seed in the psuedo-random generator
  :type random_state: int, RandomState, optional
  
  :param n_jobs: The maximum number of concurrently running jobs. If -1 all CPUs are used. If 1 is given, no parallel computing code is used at all (this is the default).
  :type n_jobs: int, optional
  
  :param verbose: The verbosity level: if non zero, progress messages are printed. Above 50, the output is sent to stdout. The frequency of the messages increases with the verbosity level. If it more than 10, all iterations are reported. The default is 0.
  :type verbose: int, optional
class_docstr_tok: ["Refute","an","estimate","by","introducing","a","randomly","generated","confounder","(","that","may","have","been","unobserved",")",".","Supports","additional","parameters","that","can","be","specified","in","the","refute_estimate","(",")","method",".","For","joblib-related","parameters","(","n_jobs",",","verbose",")",",","please","refer","to","the","joblib","documentation","for","more","details","(","https",":","\/\/joblib.readthedocs.io\/en\/latest\/generated\/joblib.Parallel.html",")",".",":","param","num_simulations",":","The","number","of","simulations","to","be","run",",","which","is","``","CausalRefuter.DEFAULT_NUM_SIMULATIONS","``","by","default",":","type","num_simulations",":","int",",","optional",":","param","random_state",":","The","seed","value","to","be","added","if","we","wish","to","repeat","the","same","random","behavior",".","If","we","with","to","repeat","the","same","behavior","we","push","the","same","seed","in","the","psuedo-random","generator",":","type","random_state",":","int",",","RandomState",",","optional",":","param","n_jobs",":","The","maximum","number","of","concurrently","running","jobs",".","If","-1","all","CPUs","are","used",".","If","1","is","given",",","no","parallel","computing","code","is","used","at","all","(","this","is","the","default",")",".",":","type","n_jobs",":","int",",","optional",":","param","verbose",":","The","verbosity","level",":","if","non","zero",",","progress","messages","are","printed",".","Above","50",",","the","output","is","sent","to","stdout",".","The","frequency","of","the","messages","increases","with","the","verbosity","level",".","If","it","more","than","10",",","all","iterations","are","reported",".","The","default","is","0.",":","type","verbose",":","int",",","optional"]
code: def __init__(self, *args, **kwargs):
      super().__init__(*args, **kwargs)
      self._num_simulations = kwargs.pop(
          "num_simulations", CausalRefuter.DEFAULT_NUM_SIMULATIONS
      )
      self._random_state = kwargs.pop("random_state", None)
  
      self.logger = logging.getLogger(__name__)
  
file_path: dowhy/dowhy/causal_refuters/random_common_cause.py
imports: import copy
  import logging
  from typing import Optional, Union
  import numpy
  import pandas
  from joblib import Parallel, delayed
  from tqdm.auto import tqdm
  from dowhy.causal_estimator import CausalEstimate
  from dowhy.causal_estimators.econml import Econml
  from dowhy.causal_identifier.identified_estimand import IdentifiedEstimand
  from dowhy.causal_refuter import CausalRefutation, CausalRefuter, test_significance
label_desc: Use image node_id 1 to create a new RandomCommonCause object from inherited base classes: CausalRefuter with example: obj = RandomCommonCause()