pymcmcstat.samplers package¶
pymcmcstat.samplers.Adaptation module¶
Created on Thu Jan 18 11:14:11 2018
@author: prmiles
-
class
pymcmcstat.samplers.Adaptation.
Adaptation
[source]¶ Bases:
object
Adaptive Metropolis (AM) algorithm based on [HST+01].
- Attributes:
-
run_adaptation
(covariance, options, isimu, iiadapt, rejected, chain, chainind, u, npar, alpha)[source]¶ Run adaptation step
- Args:
covariance (
CovarianceProcedures
): Covariance methods and variablesoptions (
SimulationOptions
): Options for MCMC simulationisimu (
int
): Simulation counteriiadapt (
int
): Adaptation counterrejected (
dict
): Rejection counterchain (
ndarray
): Sampling chainchainind (
ind
): Relative point in chainu (
ndarray
): Latest random sample pointsnpar (
int
): Number of parameters being sampledalpha (
float
): Latest Likelihood evaluation
- Returns:
covariance (
CovarianceProcedures
): Updated covariance object
-
pymcmcstat.samplers.Adaptation.
adjust_cov_matrix
(upcov, R, npar, qcov_adjust, qcov_scale, rejected, iiadapt, verbosity)[source]¶ Adjust covariance matrix if found to be singular.
- Args:
upcov (
ndarray
): Parameter covariance matrix.R (
ndarray
): Cholesky decomposition of covariance matrix.npar (
int
): Number of parameters.qcov_adjust (
float
): Covariance adjustment factor.qcov_scale (
float
): Scale parameterrejected (
dict
): Rejection counters.iiadapt (
int
): Adaptation counter.verbosity (
int
): Verbosity of display output.
- Returns:
R (
ndarray
): Cholesky decomposition of covariance matrix.
-
pymcmcstat.samplers.Adaptation.
below_burnin_threshold
(rejected, iiadapt, R, burnin_scale, verbosity)[source]¶ Update Cholesky Matrix using below burnin thershold
-
pymcmcstat.samplers.Adaptation.
check_for_singular_cov_matrix
(upcov, R, npar, qcov_adjust, qcov_scale, rejected, iiadapt, verbosity)[source]¶ Check if singular covariance matrix
- Args:
upcov (
ndarray
): Parameter covariance matrix.R (
ndarray
): Cholesky decomposition of covariance matrix.npar (
int
): Number of parameters.qcov_adjust (
float
): Covariance adjustment factor.qcov_scale (
float
): Scale parameterrejected (
dict
): Rejection counters.iiadapt (
int
): Adaptation counter.verbosity (
int
): Verbosity of display output.
- Returns:
R (
ndarray
): Adjusted Cholesky decomposition of covariance matrix.
-
pymcmcstat.samplers.Adaptation.
initialize_covariance_mean_sum
(x, w)[source]¶ Initialize covariance chain, local mean, local sum
-
pymcmcstat.samplers.Adaptation.
is_semi_pos_def_chol
(x)[source]¶ Check if matrix is semi-positive definite using Cholesky Decomposition
-
pymcmcstat.samplers.Adaptation.
scale_cholesky_decomposition
(Ra, qcov_scale)[source]¶ Scale Cholesky decomposition
-
pymcmcstat.samplers.Adaptation.
setup_cholupdate
(R, oldwsum, wsum, oldmean, xi)[source]¶ Setup input arguments to the Cholesky update function
- Args:
- Returns:
-
pymcmcstat.samplers.Adaptation.
setup_w_R
(w, oldR, n)[source]¶ Setup weights and Cholesky matrix
- Args:
- Returns:
-
pymcmcstat.samplers.Adaptation.
unpack_covariance_settings
(covariance)[source]¶ Unpack covariance settings
- Args:
covariance (
CovarianceProcedures
): Covariance methods and variables
- Returns:
last_index_since_adaptation (
int
): Last index since adaptation occured.R (
ndarray
): Cholesky decomposition of covariance matrix.oldcovchain (
ndarray
): Covariance matrix history.oldmeanchain (
ndarray
): Current mean chain values.oldwsum (
ndarray
): Weightsno_adapt_index (
numpy.ndarray
): Indices of parameters not being adapted.qcov_scale (
float
): Scale parameterqcov (
ndarray
): Covariance matrix
-
pymcmcstat.samplers.Adaptation.
unpack_simulation_options
(options)[source]¶ Unpack simulation options
- Args:
options (
SimulationOptions
): Options for MCMC simulation
- Returns:
burnintime (
int
):burnin_scale (
float
): Scale for burnin.ntry (
int
): Number of tries to take before rejection. Default is method dependent.drscale (
ndarray
): Reduced scale for sampling in DR algorithm. Default is [5,4,3].alphatarget (
float
): Acceptance ratio target.etaparam (
float
):qcov_adjust (
float
): Adjustment scale for covariance matrix.doram (
int
): Flag to perform'ram'
algorithm (Obsolete).verbosity (
int
): Verbosity of display output.
-
pymcmcstat.samplers.Adaptation.
update_cov_from_covchain
(covchain, qcov, no_adapt_index)[source]¶ Update covariance matrix from covariance matrix chain
- Args:
covchain (
ndarray
): Covariance matrix history.qcov (
ndarray
): Parameter covariance matrixno_adapt_index (
numpy.ndarray
): Indices of parameters not being adapted.
- Returns:
upcov (
ndarray
): Updated covariance matrix
-
pymcmcstat.samplers.Adaptation.
update_cov_via_ram
(u, isimu, etaparam, npar, alphatarget, alpha, R)[source]¶ Update covariance matrix via RAM
- Args:
- Returns:
upcov (
ndarray
): Updated parameter covariance matrix.
-
pymcmcstat.samplers.Adaptation.
update_covariance_mean_sum
(x, w, oldcov, oldmean, oldwsum, oldR=None)[source]¶ Update covariance chain, local mean, local sum
- Args:
- Returns:
pymcmcstat.samplers.DelayedRejection module¶
Created on Thu Jan 18 10:42:07 2018
@author: prmiles
-
class
pymcmcstat.samplers.DelayedRejection.
DelayedRejection
[source]¶ Bases:
object
Delayed Rejection (DR) algorithm based on [HLMS06].
-
classmethod
initialize_next_metropolis_step
(npar, old_theta, sigma2, RDR)[source]¶ Take metropolis step according to DR
- Args:
- Returns:
next_set (
ParameterSet
): New proposal setu (
numpy.ndarray
): Numbers sampled from standard normal distributions (u.shape = (1,npar)
)
-
run_delayed_rejection
(old_set, new_set, RDR, ntry, parameters, invR, sosobj, priorobj, custom=None)[source]¶ Perform delayed rejection step - occurs in standard metropolis is not accepted.
- Args:
old_set (
ParameterSet
): Features ofnew_set (
ParameterSet
): Features ofRDR (
ndarray
): Cholesky decomposition of parameter covariance matrix for DR stepsntry (
int
): Number of DR steps to perform until rejectionparameters (
ModelParameters
): Model parametersinvR (
ndarray
): Inverse Cholesky decomposition matrixsosobj (
SumOfSquares
): Sum-of-Squares functionpriorobj (
PriorFunction
): Prior function
- Returns:
accept (
int
): 0 - reject, 1 - acceptout_set (
ParameterSet
): If accept == 1, then latest DR set; Else,outbound (
int
): 1 - rejected due to sampling outside of parameter bounds
-
classmethod
-
pymcmcstat.samplers.DelayedRejection.
extract_state_elements
(iq, stage, trypath)[source]¶ Extract elements from tried paths.
-
pymcmcstat.samplers.DelayedRejection.
log_posterior_ratio
(x1, x2)[source]¶ Calculate the logarithm of the posterior ratio.
- Args:
x1 (
ParameterSet
): Old set -x2 (
ParameterSet
): New set -
- Returns:
zq (
float
): Logarithm of posterior ratio.
-
pymcmcstat.samplers.DelayedRejection.
nth_stage_log_proposal_ratio
(iq, trypath, invR)[source]¶ Gaussian nth stage log proposal ratio.
Logarithm of
-
pymcmcstat.samplers.DelayedRejection.
update_set_based_on_acceptance
(accept, old_set, next_set)[source]¶ Define output set based on acceptance
- Args:
accept (
int
): 0 - reject, 1 - acceptold_set (
ParameterSet
): Features ofnext_set (
ParameterSet
): New proposal set
- Returns:
out_set (
ParameterSet
): If accept == 1, then latest DR set; Else,
pymcmcstat.samplers.Metropolis module¶
Created on Thu Jan 18 10:30:29 2018
@author: prmiles
-
class
pymcmcstat.samplers.Metropolis.
Metropolis
[source]¶ Bases:
object
Pseudo-Algorithm:
Sample
Construct candidate
Compute
Compute
- If
Set
- Else
Set
- If
- Attributes:
acceptance_test()
-
classmethod
calculate_posterior_ratio
(ss1, ss2, sigma2, newprior, oldprior)[source]¶ Calculate acceptance ratio
where the Gaussian likelihood function is
and Gaussian prior function is
For the Gaussian likelihood and prior, this yields the acceptance ratio
For more details regarding the prior function, please refer to the
PriorFunction
class.Note
The default behavior of the package is to use Gaussian likelihood and prior functions (as of v1.8.0). Future releases will expand the functionality to allow for alternative likelihood and prior definitions.
- Args:
- Returns:
alpha (
float
): Result of likelihood function
-
run_metropolis_step
(old_set, parameters, R, prior_object, sos_object, custom=None)[source]¶ Run Metropolis step.
- Args:
old_set (
ParameterSet
): Features ofparameters (
ModelParameters
): Model parametersR (
ndarray
): Cholesky decomposition of parameter covariance matrixpriorobj (
PriorFunction
): Prior functionsosobj (
SumOfSquares
): Sum-of-Squares function
- Returns:
accept (
int
): 0 - reject, 1 - acceptnewset (
ParameterSet
): Features ofoutbound (
int
): 1 - rejected due to sampling outside of parameter boundsnpar_sample_from_normal (
ndarray
): Latet random sample points
pymcmcstat.samplers.SamplingMethods module¶
Created on Thu Jan 18 10:11:40 2018
@author: prmiles
pymcmcstat.samplers.utilities module¶
Created on Wed Jun 27 12:07:11 2018
Utility functions used by different samplers
@author: prmiles
-
pymcmcstat.samplers.utilities.
calculate_log_posterior_ratio
(loglikestar, loglike, logpriorstar, logprior)[source]¶ Calculate log posterior ratio:
For more details regarding the prior and likelihood functions, please refer to the
PriorFunction
andLikelihoodFunction
class, respectively.Note
The default behavior of the package is to use Gaussian likelihood and prior functions (as of v1.8.0). Future releases will expand the functionality to allow for alternative likelihood and prior definitions.
-
pymcmcstat.samplers.utilities.
is_sample_outside_bounds
(theta, lower_limits, upper_limits)[source]¶ Check whether proposal value is outside parameter limits
-
pymcmcstat.samplers.utilities.
log_posterior_ratio_acceptance_test
(alpha)[source]¶ Run log posterior ratio acceptance test
-
pymcmcstat.samplers.utilities.
posterior_ratio_acceptance_test
(alpha)[source]¶ Run posterior ratio acceptance test
-
pymcmcstat.samplers.utilities.
sample_candidate_from_gaussian_proposal
(npar, oldpar, R)[source]¶ Sample candidate from Gaussian proposal distribution
-
pymcmcstat.samplers.utilities.
set_outside_bounds
(next_set)[source]¶ Assign set features based on being outside bounds
- Args:
next_set (
ParameterSet
):
- Returns:
next_set (
ParameterSet
): with updated featuresoutbound (
bool
): True