altar.bayesian.COV

Module Contents

Classes

class altar.bayesian.COV.COV(name, locator, **kwds)

Bases: altar.component

Annealing schedule based on attaining a particular value for the coefficient of variation (COV) of the data likelihood; after Ching[2007].

The goal is to compute a proposed update δβ_m to the temperature β_m such that the vector of weights w_m given by

w_m := π(D|θ_m)^{δβ_m}

has a particular target value for

COV(w_m) := <w_m> / sqrt{<(w_m-<w_m>)^2>}

target
doc = the target value for COV
solver
doc = the δβ solver
check_positive_definiteness
doc = whether to check the positive definiteness of Σ matrix and condition it accordingly
min_eigenvalue_ratio
doc = the desired minimal eigenvalue of Σ matrix, as a ratio to the max eigenvalue
beta_resampling_start
doc = the beta threshold to start the resampling procedure
w
cov = 0.0
uniform
rng
initialize(self, application)

Initialize me and my parts given an {application} context

update(self, step)

Push {step} forward along the annealing schedule

updateTemperature(self, step)

Generate the next temperature increment

computeCovariance(self, step)

Compute the parameter covariance Σ of the sample in {step}

Σ = c_m^2 sum_{i in samples} ilde{w}_{i} θ_i θ_i^T} - bar{θ} bar{θ}^Τ

where

bar{θ} = sum_{i in samples} ilde{w}_{i} θ_{i}

The covariance Σ gets used to build a proposal pdf for the posterior

rank(self, step)

Rebuild the sample and its statistics sorted by the likelihood of the parameter values

resampling(self, step)

Rebuild the sample and its statistics sorted by the likelihood of the parameter values

conditionCovariance(self, Σ)

Make sure the covariance matrix Σ is symmetric and positive definite

computeSampleMultiplicities(self, step)

Prepare a frequency vector for the new samples given the scaled data log-likelihood in {w} for this cooling step

buildHistogramRanges(self, w)

Build histogram bins based on the scaled data log-likelihood