12#include "TimeSeriesSet.h"
376 bool SetProperty(
const string &varname,
const string &value);
467 bool step(
int k,
int chain_counter);
573 double posterior(vector<double> par,
int chain_counter);
583 void model(T *Model1 , vector<double> par);
717 TimeSeriesSet<double>
model(vector<double> par);
858 int_value_pair Min(
const vector<double> &vec,
int current_counter,
int n_chains);
869 int_value_pair Max(
const vector<double> &vec,
int current_counter,
int n_chains);
Collection of time series with labels and observed values.
Markov Chain Monte Carlo sampler for Bayesian parameter estimation.
vector< double > logp1
Log-posterior values for proposed states.
double accepted_count
Count of accepted proposals.
_MCMC_file_names FileInformation
File paths for MCMC input/output.
void model(T *Model1, vector< double > par)
Evaluate model with given parameters.
int get_time_series(int i)
Get time series index for parameter (legacy, may be unused)
CMBTimeSeriesSet predicted
Model predictions as time series set.
vector< double > pertcoeff
Perturbation coefficients for each parameter.
vector< vector< TimeSeriesSet< double > > > BTCout_obs
Posterior predictive samples for observations.
vector< T > CopiedModels
Copies of model object for parallel chain evaluation.
vector< CVector > temp_predicted
Temporary storage for predicted model outputs.
bool SetProperty(const string &varname, const string &value)
Set MCMC properties from string key-value pairs.
vector< vector< TimeSeriesSet< double > > > BTCout_obs_noise
Posterior predictive samples with simulated measurement noise.
vector< vector< TimeSeriesSet< double > > > BTCout_obs_prcntle
Percentiles of posterior predictive distribution.
double total_count
Count of total proposals (accepted + rejected)
TimeSeriesSet< double > prior_distribution(int n_bins)
Generate histogram of prior distributions.
void ProduceRealizations(TimeSeriesSet< double > &MCMCout)
Generate posterior predictive realizations.
Observation * observation(int i)
Get pointer to specific observation.
vector< Parameter > * parameters
Pointer to vector of Parameter objects.
vector< double > purturb(int k)
Generate proposed parameter values by perturbing current state.
CMCMC(int nn, int nn_chains)
Constructor with chain configuration.
vector< double > logp
Log-posterior values for current state of each chain.
CMCMC(void)
Default constructor.
vector< bool > apply_to_all
Flags indicating if parameter applies to all entities.
bool step(int k, int chain_counter)
Perform single MCMC step for one chain.
Parameter * parameter(int i)
Get pointer to specific parameter.
int get_act_paramno(int i)
Get active parameter number (legacy, may be unused)
TimeSeriesSet< double > MData
Measured data (observations) for likelihood calculation.
vector< vector< TimeSeriesSet< double > > > BTCout_obs_prcntle_noise
Percentiles of posterior predictive distribution with noise.
T * Model
Pointer to the model object being calibrated.
int_value_pair Max(const vector< double > &vec, int current_counter, int n_chains)
Find maximum value and its chain index.
double posterior(vector< double > par, int chain_counter)
Calculate log-posterior probability for given parameters.
void Perform()
Main entry point to run complete MCMC analysis.
_MCMC_settings MCMC_Settings
MCMC algorithm configuration settings.
void initialize(CMBTimeSeriesSet *results, bool random=false)
Initialize MCMC chains with starting parameter values.
int_value_pair Min(const vector< double > &vec, int current_counter, int n_chains)
Find minimum value and its chain index.
CVector sensitivity(double d, vector< double > par)
Calculate sensitivity of model output to parameters.
ProgressWindow * rtw
Pointer to progress window for GUI updates.
void get_outputpercentiles(TimeSeriesSet< double > &MCMCout)
Calculate percentiles of model outputs from MCMC samples.
CMatrix sensitivity_mat_lumped(double d, vector< double > par)
Calculate lumped sensitivity matrix.
void writeoutput(string filename)
Write MCMC results to output file.
vector< Observation > * observations
Pointer to vector of Observation objects.
int getparamno(int i, int ts) const
Get parameter index for a specific variable and time series.
CVector sensitivity_ln(double d, vector< double > par)
Calculate log-space sensitivity (for lognormal parameters)
vector< double > u
Uniform random values for Metropolis-Hastings accept/reject.
vector< vector< double > > Params
Parameter values for all samples and chains.
TimeSeriesSet< double > realized_paramsList
Parameter samples for posterior predictive realizations.
vector< CMatrix > global_sens_lumped
Global sensitivity analysis results (lumped)
int readfromfile(string filename)
Read MCMC state from file to continue previous run.
vector< int > params
Parameter indices for model evaluation.
T Model_out
Output model state after MCMC completion.
void SetRunTimeWindow(ProgressWindow *_rtw)
Set progress window for GUI updates.
TimeSeriesSet< double > paramsList
List of all parameter samples from MCMC.
vector< double > calc_output_percentiles
Percentiles to calculate for output distributions.
string last_error
Last error message from MCMC execution.
Represents a model parameter with prior distribution and constraints.
File paths for MCMC input/output operations.
string outputpath
Directory path for output files.
string outputfilename
Base filename for MCMC results (without extension)
Configuration parameters for Markov Chain Monte Carlo sampling.
double acceptance_rate
Target acceptance rate for Metropolis-Hastings algorithm.
unsigned int number_of_chains
Number of parallel MCMC chains to run.
string continue_filename
Filename to continue a previous MCMC run.
bool continue_mcmc
Continue from a previous MCMC run.
unsigned int number_of_post_estimate_realizations
Number of posterior predictive realizations to generate.
double dp_sens
Finite difference step size for sensitivity analysis.
double purturbation_factor
Perturbation factor for proposal distribution during sampling.
unsigned int numberOfThreads
Number of parallel threads for MCMC computation.
bool noinipurt
Skip initial random perturbation of starting values.
bool dissolve_chains
Merge all chains into single posterior sample.
double purt_change_scale
Scale factor for adaptive perturbation adjustment.
bool global_sensitivity
Perform global sensitivity analysis during MCMC.
unsigned int number_of_parameters
Number of model parameters to estimate.
double ini_purt_fact
Initial perturbation factor for proposal distribution.
bool sensbasedpurt
Use sensitivity-based adaptive proposal distribution.
unsigned int burnout_samples
Number of initial samples to discard as burn-in.
unsigned int total_number_of_samples
Total number of MCMC samples to generate per chain.
bool noise_realization_writeout
Write out posterior predictive realizations with observation noise.
int save_interval
Interval for saving MCMC samples to output.
Utility structure pairing an integer counter with a double value.
double value
Associated value (likelihood, parameter, etc.)
int counter
Chain or sample index.