Exemplo n.º 1
0
 def test_hpe_likelihood_log_likelihood_equal_ratio_zero_evidence(self):
     like = HyperparameterLikelihood(
         posteriors=self.data, hyper_prior=self.model,
         selection_function=self.selection_function,
         ln_evidences=self.ln_evidences)
     like.parameters.update(self.params)
     self.assertEqual(like.log_likelihood_ratio(), like.log_likelihood())
 def test_hpe_likelihood_set_selection(self):
     like = HyperparameterLikelihood(
         posteriors=self.data,
         hyper_prior=self.model,
         selection_function=self.selection_function,
     )
     self.assertEqual(like.selection_function("foo"), 2.0)
 def test_hpe_likelihood_set_conversion(self):
     like = HyperparameterLikelihood(
         posteriors=self.data,
         hyper_prior=self.model,
         conversion_function=self.conversion_function,
     )
     self.assertEqual(like.conversion_function("foo"), ("foo", ["bar"]))
 def test_generate_rate_posterior_sample_returns_positive(self):
     like = HyperparameterLikelihood(
         posteriors=self.data,
         hyper_prior=self.model,
         selection_function=self.selection_function,
         ln_evidences=self.ln_evidences,
     )
     self.assertGreater(like.generate_rate_posterior_sample(), 0)
Exemplo n.º 5
0
 def test_generate_rate_posterior_sample_raises_error(self):
     like = HyperparameterLikelihood(
         posteriors=self.data,
         hyper_prior=self.model,
         selection_function=self.selection_function,
         ln_evidences=self.ln_evidences,
     )
     with self.assertRaises(NotImplementedError):
         like.generate_rate_posterior_sample()
Exemplo n.º 6
0
 def test_hpe_likelihood_conversion_function_pops_parameters(self):
     like = HyperparameterLikelihood(
         posteriors=self.data, hyper_prior=self.model,
         conversion_function=self.conversion_function,
         selection_function=self.selection_function,
         ln_evidences=self.ln_evidences)
     self.params['bar'] = None
     like.parameters.update(self.params)
     like.log_likelihood_ratio()
     self.assertFalse('bar' in like.parameters)
 def test_resampling_posteriors(self):
     priors = PriorDict(
         dict(a=Uniform(0, 2), b=Uniform(0, 2), c=Uniform(0, 2)))
     samples = priors.sample(100)
     like = HyperparameterLikelihood(
         posteriors=self.data,
         hyper_prior=self.model,
         selection_function=self.selection_function,
         ln_evidences=self.ln_evidences,
     )
     new_samples = like.posterior_predictive_resample(samples=samples)
     for key in new_samples:
         self.assertEqual(new_samples[key].shape, like.data[key].shape)
 def test_likelihood_pass_sampling_prior_raises_error(self):
     with self.assertRaises(TypeError):
         _ = HyperparameterLikelihood(
             posteriors=self.data,
             hyper_prior=self.model,
             sampling_prior=lambda dataset: 5,
         )
 def test_prior_in_posteriors(self):
     for frame in self.data:
         frame["prior"] = 1
     like = HyperparameterLikelihood(posteriors=self.data,
                                     hyper_prior=self.model)
     self.assertTrue(
         xp.array_equal(like.sampling_prior, xp.ones_like(like.data["a"])))
 def test_generate_extra_statistics(self):
     like = HyperparameterLikelihood(
         posteriors=self.data,
         hyper_prior=self.model,
         selection_function=self.selection_function,
         conversion_function=self.conversion_function,
         ln_evidences=self.ln_evidences,
     )
     self.params["bar"] = None
     new_params = like.generate_extra_statistics(sample=self.params.copy())
     expected = {
         "a": 1,
         "b": 1,
         "c": 1,
         "ln_bf_0": 0.0,
         "ln_bf_1": 0.0,
         "ln_bf_2": 0.0,
         "ln_bf_3": 0.0,
         "ln_bf_4": 0.0,
         "selection": 2.0,
         "bar": None,
     }
     self.assertDictEqual(expected, new_params)
 def test_hpe_likelihood_dont_set_evidences(self):
     like = HyperparameterLikelihood(posteriors=self.data,
                                     hyper_prior=self.model)
     self.assertTrue(xp.isnan(like.total_noise_evidence))
 def test_hpe_likelihood_set_evidences(self):
     like = HyperparameterLikelihood(posteriors=self.data,
                                     hyper_prior=self.model,
                                     ln_evidences=self.ln_evidences)
     self.assertEqual(like.total_noise_evidence, 0)
 def test_not_passing_prior(self):
     like = HyperparameterLikelihood(posteriors=self.data,
                                     hyper_prior=self.model)
     self.assertEqual(like.sampling_prior, 1)
Exemplo n.º 14
0
 def test_likelihood_pass_sampling_prior_works(self):
     like = HyperparameterLikelihood(
         posteriors=self.data, hyper_prior=self.model,
         sampling_prior=lambda x: 5)
     self.assertEqual(like.sampling_prior, 5)
 def test_hpe_likelihood_log_likelihood_ratio(self):
     like = HyperparameterLikelihood(posteriors=self.data,
                                     hyper_prior=self.model)
     like.parameters.update(self.params)
     self.assertEqual(like.log_likelihood_ratio(), 0.0)
Exemplo n.º 16
0
 def test_hpe_likelihood_set_conversion(self):
     like = HyperparameterLikelihood(
         posteriors=self.data, hyper_prior=self.model,
         conversion_function=self.conversion_function)
     self.assertEqual(like.conversion_function('foo'), ('foo', ['bar']))
Exemplo n.º 17
0
 def test_hpe_likelihood_converts_nan_to_neginf(self):
     like = HyperparameterLikelihood(posteriors=self.data,
                                     hyper_prior=self.model)
     like._get_selection_factor = lambda *args, **kwargs: np.nan
     like.parameters.update(self.params)
     self.assertEqual(like.log_likelihood_ratio(), np.nan_to_num(-np.inf))
 def test_hpe_likelihood_set_max_samples(self):
     like = HyperparameterLikelihood(posteriors=self.data,
                                     hyper_prior=self.model,
                                     max_samples=10)
     self.assertEqual(like.data["a"].shape, (5, 10))
 def test_hpe_likelihood_requires_posteriors(self):
     with self.assertRaises(TypeError):
         _ = HyperparameterLikelihood(hyper_prior=self.model)
def get_agn_spin_likelihood(posteriors):
    return HyperparameterLikelihood(
        posteriors=posteriors,
        hyper_prior=agn_spin
    )
 def test_hpe_likelihood_requires_hyper_prior(self):
     with self.assertRaises(TypeError):
         _ = HyperparameterLikelihood(posteriors=self.data)