class_docstr: RANDOM-WALK METROPOLIS-HASTINGS MCMC
  
  Parameters
  ----------
  posterior : function
      A posterior function
  
  scale : float
      The scale for the random walk
  
  nsims : int
      The number of iterations to perform
  
  initials : np.array
      Where to start the MCMC chain
  
  cov_matrix : np.array
      (optional) A covariance matrix for the random walk
  
  thinning : int
      By how much to thin the chains (2 means drop every other point)
  
  warm_up_period : boolean
      Whether to discard first half of the chain as 'warm-up'
  
  model_object : TSM object
      A model object (for use in SPDK sampling)
  
  quiet_progress : boolean
      Whether to print progress to console or stay quiet
docstr: Tunes scale for M-H algorithm
  
  Parameters
  ----------
  acceptance : float
      The most recent acceptance rate
  
  scale : float
      The current scale parameter
  
  Returns
  ----------
  scale : float
      An adjusted scale parameter
  
  Notes
  ----------
  Ross : Initially did this by trial and error, then refined by looking at other
  implementations, so some credit here to PyMC3 which became a guideline for this.
code: def tune_scale(acceptance, scale):
      """Tunes scale for M-H algorithm
  
      Parameters
      ----------
      acceptance : float
          The most recent acceptance rate
  
      scale : float
          The current scale parameter
  
      Returns
      ----------
      scale : float
          An adjusted scale parameter
  
      Notes
      ----------
      Ross : Initially did this by trial and error, then refined by looking at other
      implementations, so some credit here to PyMC3 which became a guideline for this.
      """
  
      if acceptance > 0.8:
          scale *= 2.0
      elif acceptance <= 0.8 and acceptance > 0.4:
          scale *= 1.3
      elif acceptance < 0.234 and acceptance > 0.1:
          scale *= 1 / 1.3
      elif acceptance <= 0.1 and acceptance > 0.05:
          scale *= 0.4
      elif acceptance <= 0.05 and acceptance > 0.01:
          scale *= 0.2
      elif acceptance <= 0.01:
          scale *= 0.1
      return scale
  
file_path: pyflux/pyflux/inference/metropolis_hastings.py
imports: import numpy
  import sys
  from scipy.stats import multivariate_normal
  from .metropolis_sampler import metropolis_sampler
label_desc: Use image node_id 2 for calling the MetropolisHastings obj's underlying member method code with example usage: obj.tune_scale(acceptance, scale) and returns: scale