docs: def compute_bic(model_object):
      """
      Compute the Bayesian Information Criteria for an estimated model.
  
      Parameters
      ----------
      model_object : an MNDC_Model (multinomial discrete choice model) instance.
          The model should have already been estimated.
          `model_object.log_likelihood` and `model_object.nobs` should be a
          number, and `model_object.params` should be a pandas Series.
  
      Returns
      -------
      bic : float.
          The BIC for the estimated model.
  
      Notes
      -----
      bic = -2 * log_likelihood + log(num_observations) * num_parameters
  
      The original BIC was introduced as (-1 / 2) times the formula above.
      However, for model comparison purposes, it does not matter if the
      goodness-of-fit measure is multiplied by a constant across all models being
      compared. Moreover, the formula used above allows for a common scale
      between measures such as the AIC, BIC, DIC, etc.
  
      References
      ----------
      Schwarz, G. (1978), 'Estimating the dimension of a model', The Annals of
          Statistics 6, 2: 461–464.
      """
      assert isinstance(model_object.params, pd.Series)
      assert isinstance(model_object.log_likelihood, Number)
      assert isinstance(model_object.nobs, Number)
  
      log_likelihood = model_object.log_likelihood
      num_obs = model_object.nobs
      num_params = model_object.params.size
  
      return -2 * log_likelihood + np.log(num_obs) * num_params