vbvarsel.elbo
=============

.. py:module:: vbvarsel.elbo


Classes
-------

.. autoapisummary::

   vbvarsel.elbo.ELBO_Computation


Module Contents
---------------

.. py:class:: ELBO_Computation

   A class to contain the Evidence Lower Bound (ELBO) computation.

   This class has no attributes, aside from Python's built-ins, and contains
   only methods, the majority of which are private.


   .. py:method:: _ln_pi(alphaK, k)

      Private method to calculate Pi natural log.

      Params
          alphaK: np.ndarray
              Calculated variational Paramter alphaK
          k: int
              The Kth target cluster
      Returns: float
          Calculated ln(π)




   .. py:method:: _ln_precision(akj, B)

      Private method for calculating precision natural log.

      Params
          akj: float
              Calculated variational parameter Alphakj
          B: np.ndarray
              Calculated variational parameter B
      Returns: np.ndarray
              Calculated precision natural log




   .. py:method:: _log_resp_annealed(exp_ln_tau, exp_ln_sigma, f0, N, K, C, T)

      Private function to calculate log resp annealed.

      Params
          exp_ln_tau: list
              Expected ln(tau) array
          exp_ln_sigma: np.ndarray
              Expected ln(sigma) array
          f0: np.ndarray
              Calculated f0 value
          N: int
              The Nth observation
          K: int
             The Kth cluster
          C: np.ndarray
              Calculated variational parameter C, the Covariate selection indicators
          T: float
              The annealing temperature
      Returns
          log_resp: np.ndarray
              array of calculated values




   .. py:method:: _ln_delta_annealed(C, j, d, T)

      Private function to calculate the annealed value of delta natural log.

      Params
          C: np.ndarray
              Covariate selection indicators
          j: int
              Iteration count
          d: np.ndarray
              Shape parameter of the Beta distribution on the probability.
          T: float
              The annealing temperature
      Returns
          ln_delta_ann: np.ndarray
              calculated array of natural log of annealed delta values




   .. py:method:: _ln_delta_minus_annealed(C, j, d, T)

      Private function to calculate the minus of annealed delta natural log.

      Params
          C: np.ndarray
              Covariate selection indicators
          j: int
              Iteration count
          d: np.ndarray
              Shape parameter of the Beta distribution on the probability.
          T: float
              The annealing temperature
      Returns
          ln_delta_ann_minus: np.ndarray
              calculated array of natural log of annealed delta values




   .. py:method:: _entropy_wishart(k, j, b, a)

      Private function to calculate wishart entropy.

      Params
          K: int
              The Kth cluster of the observation
          j: int
              Iteration count
          b: np.ndarray
              calculated value for variational parameter, betakj
          a: float
              calculated value for variational parameter, alphakj
      Returns
          e_w: np.ndarray
              array of entropy wishart values




   .. py:method:: compute(XDim, K, N, C, Z, d, delta, beta, beta0, alpha, alpha0, a, a0, b, b0, m, m0, exp_ln_tau, exp_ln_sigma, f0, T=1) -> float

      Function to compute the Evidence Lower Bound (ELBO). The ELBO is
      the useful lower-bound on the log-likelihood of observed data.

      Params
          XDim: int
              Number of variables (columns)
          K: int
              The Kth cluster of the observation
          N: int
              The Nth observation
          C: np.ndarray
              Covariate selection indicators
          Z: np.ndarray
              cluster assignment matrix
          d: np.ndarray
              Shape parameter of the Beta distribution on the probability.
          delta: int
              Calculated variational parameter, delta
          beta: np.ndarray
              Calculated variational parameter, betakj
          beta0: float
              Shrinkage parameter of the Gaussian conditional prior on the cluster means
          alpha: np.ndarray
              Calculated variational parameter, alphak
          alpha0: float
              Prior coefficient count
          a: float
              Calculated variational parameter, alphakj
          a0: np.ndarray
              Degrees of freedom for the Gamma prior on the cluster precision
          b: np.ndarray
              Calculated variational parameter, B
          b0: np.ndarray
              Prior covariance
          m: np.ndarray
              Calculated variational parameter, m
          m0: np.ndarray
              Prior mean
          exp_ln_tau: list
              expected ln(tau) array
          exp_ln_sigma: np.ndarray
              expected ln(sigma) array
          f0: np.ndarray
              Calculated variational parameter, f0
          T: float
              The annealing temperature

      :returns:

                float
                    Calculated ELBO value
      :rtype: elbo



