diff --git a/src/bayesvalidrox/bayes_inference/bayes_model_comparison.py b/src/bayesvalidrox/bayes_inference/bayes_model_comparison.py index a12e493ddc16c28b6986ea8d8e80dee4ca2f3312..693afc82dd95e9a44072e504b45d09c794cb3097 100644 --- a/src/bayesvalidrox/bayes_inference/bayes_model_comparison.py +++ b/src/bayesvalidrox/bayes_inference/bayes_model_comparison.py @@ -38,7 +38,7 @@ class BayesModelComparison: ) output = { - 'Bayes factor': bayes_dict_bf, + 'Bayes objects BF': bayes_dict_bf, 'Model weights BF': model_weights_dict_bf } @@ -48,7 +48,7 @@ class BayesModelComparison: model_dict, opts_dict, justifiability=True ) - output['Justifiability analysis'] = bayes_dict_ja + output['Bayes objects JA'] = bayes_dict_ja output['Model weights JA'] = model_weights_dict_ja return output @@ -70,12 +70,11 @@ class BayesModelComparison: # ----- Generate data ----- # Find n_bootstrap - if not justifiability: + if self.perturbed_data is None: n_bootstarp = self.n_bootstarp else: - # find the smallest n_samples - n_bootstarp = min([len(MetaModel.ExpDesign.X) for MetaModel - in modelDict.values()]) + n_bootstarp = self.perturbed_data.shape[0] + # Create dataset justData = self.generate_dataset( modelDict, justifiability, n_bootstarp=n_bootstarp) @@ -106,7 +105,7 @@ class BayesModelComparison: # Compute model weights BME_Dict = dict() for modelName, bayesObj in bayesDict.items(): - BME_Dict[modelName] = np.exp(bayesObj.log_BME) + BME_Dict[modelName] = np.exp(bayesObj.log_BME, dtype=np.float128) # BME correction in BayesInference class model_weights = self.cal_modelWeight( @@ -169,8 +168,7 @@ class BayesModelComparison: # Use surrogate runs for data-generating process for key, metaModel in modelDict.items(): model_data = np.array( - [runs[key][out][i] for out in out_names] - ).reshape(y_data.shape) + [runs[key][out][i] for out in out_names]).reshape(y_data.shape) justData = np.vstack(( justData, np.tril(np.repeat(model_data, model_data.shape[1], axis=0))