class_docstr: A mixin providing generic (not family-specific) methods for
  variational Bayes mean field fitting.
class_docstr_tok: ["A","mixin","providing","generic","(","not","family-specific",")","methods","for","variational","Bayes","mean","field","fitting","."]
code: def _elbo_common(
      self, fep_mean, fep_sd, vcp_mean, vcp_sd, vc_mean, vc_sd
  ):
      iv = 0
  
      # p(vc | vcp) contributions
      m = vcp_mean[self.ident]
      s = vcp_sd[self.ident]
      iv -= (
          np.sum((vc_mean**2 + vc_sd**2) * np.exp(2 * (s**2 - m)))
          / 2
      )
      iv -= np.sum(m)
  
      # p(vcp) contributions
      iv -= 0.5 * (vcp_mean**2 + vcp_sd**2).sum() / self.vcp_p**2
  
      # p(b) contributions
      iv -= 0.5 * (fep_mean**2 + fep_sd**2).sum() / self.fe_p**2
  
      return iv
  
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 5 for calling the _VariationalBayesMixedGLM obj's underlying member method code with example usage: obj._elbo_common(fep_mean, fep_sd, vcp_mean, vcp_sd, vc_mean, vc_sd) and returns: iv