code: def _dispersion_analysis(self, node: PipelineNode, sample_size: int):
      samples: np.array = self.sample_method(
          self.problem.dictionary, num_of_samples=sample_size
      )
      transposed_samples = samples.T
      converted_samples = self.problem.convert_for_dispersion_analysis(
          transposed_samples
      )
  
      jobs = [
          Thread(
              target=self._evaluate_variance,
              args=(params, transposed_samples[index], node),
          )
          for index, params in enumerate(converted_samples)
      ]
  
      for job in jobs:
          job.start()
  
      for job in jobs:
          job.join()
  
      self._visualize_variance()
  
imports: from copy import deepcopy
  from os.path import join
  from threading import Lock, Thread
  from typing import List, Union
  import matplotlib.pyplot
  import numpy
  from golem.core.log import default_log
  from sklearn.metrics import mean_squared_error
  from fedot.core.data.data import InputData
  from fedot.core.operations.operation_template import extract_operation_params
  from fedot.core.pipelines.node import PipelineNode
  from fedot.core.pipelines.pipeline import Pipeline
  from fedot.core.utils import default_fedot_data_dir
  from fedot.structural_analysis.node_sa_approaches import NodeAnalyzeApproach
  from fedot.structural_analysis.operations_hp_sensitivity.problem import OneOperationProblem
  from fedot.structural_analysis.operations_hp_sensitivity.sa_and_sample_methods import analyze_method_by_name, sample_method_by_name
  from fedot.structural_analysis.sa_requirements import HyperparamsAnalysisMetaParams, SensitivityAnalysisRequirements
label_desc: Use image node_id 6 for calling the OneOperationHPAnalyze obj's underlying member method code with example usage: obj._dispersion_analysis(node, sample_size) without return types