code: def _identify_noise_model(
      causal_mechanism_name: str, parsed_args: dict
  ) -> StochasticModel:
      for model_type in _STOCHASTIC_MODEL_TYPES:
          if model_type == causal_mechanism_name:
              return _STOCHASTIC_MODEL_TYPES[model_type](**parsed_args)
  
      distribution = getattr(scipy.stats, causal_mechanism_name, None)
      if distribution:
          return _STOCHASTIC_MODEL_TYPES["parametric"](
              scipy_distribution=distribution, **parsed_args
          )
      raise ValueError(
          f"Unable to recognise the noise model: {causal_mechanism_name}"
      )
  
imports: import ast
  import logging
  import re
  from typing import Tuple
  import networkx
  import numpy
  import scipy.stats
  from dowhy.gcm import AdditiveNoiseModel, EmpiricalDistribution, ScipyDistribution, StructuralCausalModel
  from dowhy.gcm.causal_mechanisms import StochasticModel
  from dowhy.gcm.causal_models import PARENTS_DURING_FIT
  from dowhy.gcm.ml.prediction_model import PredictionModel
  from dowhy.gcm.util.general import shape_into_2d
  from dowhy.graph import get_ordered_predecessors
label_desc: Use image node_id 4 for calling a global function with example usage: _identify_noise_model(causal_mechanism_name, parsed_args) and returns: _STOCHASTIC_MODEL_TYPES, _STOCHASTIC_MODEL_TYPES