code: def _simulate_coef_from_bootstraps(
              self, n_draws, coef_bootstraps, cov_bootstraps):
          
          # Sample indices uniformly from {0, ..., n_bootstraps - 1}
          # (Wood pg. 199 step 6)
          random_bootstrap_indices = np.random.choice(
              np.arange(len(coef_bootstraps)), size=n_draws, replace=True)
  
          # Simulate `n_draws` many random coefficient vectors from a
          # multivariate normal distribution with mean and covariance given by
          # the bootstrap samples (indexed by `random_bootstrap_indices`) of
          # `coef_bootstraps` and `cov_bootstraps`. Because it's faster to draw
          # many samples from a certain distribution all at once, we make a dict
          # mapping bootstrap indices to draw indices and use the `size`
          # parameter of `np.random.multivariate_normal` to sample the draws
          # needed from that bootstrap sample all at once.
          bootstrap_index_to_draw_indices = defaultdict(list)
          for draw_index, bootstrap_index in enumerate(random_bootstrap_indices):
              bootstrap_index_to_draw_indices[bootstrap_index].append(draw_index)
  
          coef_draws = np.empty((n_draws, len(self.coef_)))
  
          for bootstrap, draw_indices in bootstrap_index_to_draw_indices.items():
              coef_draws[draw_indices] = np.random.multivariate_normal(
                  coef_bootstraps[bootstrap], cov_bootstraps[bootstrap],
                  size=len(draw_indices))
  
          return coef_draws
docs: Simulate coefficients using bootstrap samples.