class_docstr: Class to hold results from a Bayesian estimation of a Mixed GLM model.
  
  Attributes
  ----------
  fe_mean : array_like
      Posterior mean of the fixed effects coefficients.
  fe_sd : array_like
      Posterior standard deviation of the fixed effects coefficients
  vcp_mean : array_like
      Posterior mean of the logged variance component standard
      deviations.
  vcp_sd : array_like
      Posterior standard deviation of the logged variance component
      standard deviations.
  vc_mean : array_like
      Posterior mean of the random coefficients
  vc_sd : array_like
      Posterior standard deviation of the random coefficients
class_docstr_tok: ["Class","to","hold","results","from","a","Bayesian","estimation","of","a","Mixed","GLM","model",".","Attributes","--","--","--","--","--","fe_mean",":","array_like","Posterior","mean","of","the","fixed","effects","coefficients",".","fe_sd",":","array_like","Posterior","standard","deviation","of","the","fixed","effects","coefficients","vcp_mean",":","array_like","Posterior","mean","of","the","logged","variance","component","standard","deviations",".","vcp_sd",":","array_like","Posterior","standard","deviation","of","the","logged","variance","component","standard","deviations",".","vc_mean",":","array_like","Posterior","mean","of","the","random","coefficients","vc_sd",":","array_like","Posterior","standard","deviation","of","the","random","coefficients"]
code: def summary(self):
      df = pd.DataFrame()
      m = self.model.k_fep + self.model.k_vcp
      df["Type"] = ["M" for k in range(self.model.k_fep)] + [
          "V" for k in range(self.model.k_vcp)
      ]
  
      df["Post. Mean"] = self.params[0:m]
  
      if self._cov_params.ndim == 2:
          v = np.diag(self._cov_params)[0:m]
          df["Post. SD"] = np.sqrt(v)
      else:
          df["Post. SD"] = np.sqrt(self._cov_params[0:m])
  
      # Convert variance parameters to natural scale
      df["SD"] = np.exp(df["Post. Mean"])
      df["SD (LB)"] = np.exp(df["Post. Mean"] - 2 * df["Post. SD"])
      df["SD (UB)"] = np.exp(df["Post. Mean"] + 2 * df["Post. SD"])
      df["SD"] = ["%.3f" % x for x in df.SD]
      df["SD (LB)"] = ["%.3f" % x for x in df["SD (LB)"]]
      df["SD (UB)"] = ["%.3f" % x for x in df["SD (UB)"]]
      df.loc[df.index < self.model.k_fep, "SD"] = ""
      df.loc[df.index < self.model.k_fep, "SD (LB)"] = ""
      df.loc[df.index < self.model.k_fep, "SD (UB)"] = ""
  
      df.index = self.model.fep_names + self.model.vcp_names
  
      summ = summary2.Summary()
      summ.add_title(
          self.model.family.__class__.__name__ + " Mixed GLM Results"
      )
      summ.add_df(df)
  
      summ.add_text(
          "Parameter types are mean structure (M) and "
          "variance structure (V)"
      )
      summ.add_text(
          "Variance parameters are modeled as log "
          "standard deviations"
      )
  
      return summ
  
imports: import numpy
  from scipy.optimize import minimize
  from scipy import sparse
  import statsmodels.base.model
  from statsmodels.iolib import summary2
  from statsmodels.genmod import families
  import pandas
  import warnings
  import patsy
label_desc: Use image node_id 3 for calling the BayesMixedGLMResults obj's underlying member method code with example usage: obj.summary() and returns: summ