code: def track_glm_hierarchical_ess(self, step):
      with glm_hierarchical_model():
          if step is not None:
              step = step()
          t0 = time.time()
          idata = pm.sample(
              draws=self.draws,
              step=step,
              cores=4,
              chains=4,
              random_seed=100,
              progressbar=False,
              compute_convergence_checks=False,
          )
          tot = time.time() - t0
      ess = float(az.ess(idata, var_names=["mu_a"])["mu_a"].values)
      return ess / tot
  
imports: import time
  import timeit
  import arviz
  import numpy
  import pandas
  import pytensor
  import pytensor.tensor
  import pymc
label_desc: Use image node_id 1 for calling the CompareMetropolisNUTSSuite obj's underlying member method code with example usage: obj.track_glm_hierarchical_ess(step) and returns: unknown