コード例 #1
0
ファイル: test_mcmc_algorithms.py プロジェクト: SURGroup/UQpy
def test_mmh_2d_joint_proposal():
    target = Distributions.MultivariateNormal([0., 0.]).pdf
    proposal = Distributions.JointIndependent(marginals=[Distributions.Normal(scale=0.2),
                                                         Distributions.Normal(scale=0.2)])
    x = ModifiedMetropolisHastings(dimension=2, pdf_target=target, n_chains=1, proposal=proposal, random_state=123,
                                   nsamples=10)
    assert [round(float(x.samples[-1][0]), 3), round(float(x.samples[-1][1]), 3)] == [-0.783, -0.195]
コード例 #2
0
ファイル: test_mcmc_algorithms.py プロジェクト: SURGroup/UQpy
def test_unconcatenate_chains_mcmc():
    target = Distributions.Normal().pdf
    x = ModifiedMetropolisHastings(dimension=1, pdf_target=target, burn_length=10, jump=2, n_chains=2,
                                   save_log_pdf=True, random_state=123)
    x.run(nsamples=5)
    x.run(nsamples=5)
    assert (round(float(x.samples[-1]), 3) == -0.744)
コード例 #3
0
ファイル: test_mcmc_algorithms.py プロジェクト: SURGroup/UQpy
def test_mmh_1d_burn_jump():
    target = Distributions.Normal().pdf
    x = ModifiedMetropolisHastings(dimension=1, pdf_target=target, burn_length=10,
                                   jump=2, n_chains=1, random_state=123, nsamples=10)
    assert round(float(x.samples[-1]), 3) == 0.497
コード例 #4
0
ファイル: test_mcmc_algorithms.py プロジェクト: SURGroup/UQpy
def test_mh_1d_asymmetric_proposal_pdf():
    target = Distributions.Normal().pdf
    proposal = Distributions.Normal()
    x = MetropolisHastings(dimension=1, pdf_target=target, proposal=proposal, proposal_is_symmetric=False,
                           n_chains=1, random_state=123, nsamples=10)
    assert round(float(x.samples[-1]), 3) == -1.291
コード例 #5
0
ファイル: test_mcmc_algorithms.py プロジェクト: SURGroup/UQpy
def test_mh_1d_target_pdf():
    target = Distributions.Normal().pdf
    x = MetropolisHastings(dimension=1, pdf_target=target, n_chains=1, random_state=123, nsamples=10)
    assert round(float(x.samples[-1]), 3) == -1.291
コード例 #6
0
ファイル: test_mcmc_algorithms.py プロジェクト: SURGroup/UQpy
def test_mh_1d_acceptance_rate():
    target = Distributions.Normal().pdf
    x = MetropolisHastings(dimension=1, pdf_target=target, n_chains=1, random_state=123, nsamples=100)
    assert round(float(x.acceptance_rate[0]), 3) == 0.707
コード例 #7
0
ファイル: test_mcmc_algorithms.py プロジェクト: SURGroup/UQpy
def test_stretch_1d_burn_jump():
    target = Distributions.Normal().pdf
    x = Stretch(pdf_target=target, burn_length=10, jump=2, dimension=1, n_chains=2, random_state=123,
                nsamples=10)
    assert round(float(x.samples[-1]), 3) == -0.961
コード例 #8
0
ファイル: test_mcmc_algorithms.py プロジェクト: SURGroup/UQpy
def test_dream_1d_adapt_chains():
    target = Distributions.Normal().pdf
    x = DREAM(pdf_target=target, burn_length=1000, jump=2, save_log_pdf=True, dimension=1,
              crossover_adaptation=(1000, 1), n_chains=20, random_state=123, nsamples=2000)
    assert (round(float(x.samples[-1]), 3) == -0.446)
コード例 #9
0
ファイル: test_mcmc_algorithms.py プロジェクト: SURGroup/UQpy
def test_dream_1d_burn_jump():
    target = Distributions.Normal().pdf
    x = DREAM(pdf_target=target, burn_length=10, jump=2, dimension=1, n_chains=10, random_state=123,
              nsamples=20)
    assert round(float(x.samples[-1]), 3) == 0.0
コード例 #10
0
ファイル: test_mcmc_algorithms.py プロジェクト: SURGroup/UQpy
def test_mmh_2d_list_proposal_log_target():
    target = [Distributions.Normal().log_pdf, Distributions.Normal().log_pdf]
    proposal = [Distributions.Normal(scale=0.2), Distributions.Normal(scale=0.2)]
    x = ModifiedMetropolisHastings(dimension=2, log_pdf_target=target, n_chains=1, proposal=proposal,
                                   random_state=123, nsamples=10)
    assert [round(float(x.samples[-1][0]), 3), round(float(x.samples[-1][1]), 3)] == [-0.783, -0.195]
コード例 #11
0
ファイル: test_mcmc_algorithms.py プロジェクト: SURGroup/UQpy
def test_mh_1d_samples_per_chain():
    target = Distributions.Normal().pdf
    x = MetropolisHastings(dimension=1, pdf_target=target, n_chains=2, random_state=123,
                           nsamples_per_chain=5)
    assert round(float(x.samples[-1]), 3) == 0.474
コード例 #12
0
ファイル: test_mcmc_algorithms.py プロジェクト: SURGroup/UQpy
def test_mmh_2d_list_target_log_pdf():
    target = [Distributions.Normal().log_pdf, Distributions.Normal().log_pdf]
    x = ModifiedMetropolisHastings(dimension=2, log_pdf_target=target, n_chains=1, random_state=123,
                                   nsamples=10)
    assert [round(float(x.samples[-1][0]), 3), round(float(x.samples[-1][1]), 3)] == [-0.810, 0.173]