docs: def model_average(X, penalization):
      """Run ModelAverage in default mode (QuicGraphicalLassoCV) to obtain proportion
      matrix.
  
      NOTE:  This returns precision_ proportions, not cov, prec estimates, so we
             return the raw proportions for "cov" and the threshold support
             estimate for prec.
      """
      n_trials = 100
      print("ModelAverage with:")
      print("   estimator: QuicGraphicalLasso (default)")
      print("   n_trials: {}".format(n_trials))
      print("   penalization: {}".format(penalization))
  
      # if penalization is random, first find a decent scalar lam_ to build
      # random perturbation matrix around.  lam doesn't matter for fully-random.
      lam = 0.5
      if penalization == "random":
          cv_model = QuicGraphicalLassoCV(
              cv=2, n_refinements=6, n_jobs=1, init_method="cov", score_metric=metric
          )
          cv_model.fit(X)
          lam = cv_model.lam_
          print("   lam: {}".format(lam))
  
      model = ModelAverage(
          n_trials=n_trials, penalization=penalization, lam=lam, n_jobs=1
      )
      model.fit(X)
      print("   lam_: {}".format(model.lam_))
      return model.proportion_, model.support_, model.lam_