Пример #1
0
def run_simulation(stepsize, target_pdf, proposal, generator, nsample, x0):
    all_samples = []
    all_accepted = []
    for i in range(0, len(stepsize)):
        samples, accepted = mh.metropolis_hastings(target_pdf, proposal, generator, stepsize[i], nsample=nsample, x0=x0)
        all_samples.append(samples)
        all_accepted.append(accepted)
    all_samples = numpy.array(all_samples)
    all_accepted = numpy.array(all_accepted)
    acceptance = 100.0*all_accepted/nsample
    return all_samples, acceptance
Пример #2
0
axis.plot(x, [target_pdf(j) for j in x])

# %%

nsample = 100000
npts = 25
stepsize = 10**numpy.linspace(-3.0, 2, npts)
x0 = 0.5

# %%
# perform mimulations that scan the step size

all_samples = []
all_accepted = []
for i in range(0, len(stepsize)):
    samples, accepted = mh.metropolis_hastings(target_pdf, mh.normal_proposal, mh.normal_generator, stepsize[i], nsample=nsample, x0=x0)
    all_samples.append(samples)
    all_accepted.append(accepted)

all_samples = numpy.array(all_samples)
all_accepted = numpy.array(all_accepted)
acceptance = 100.0*all_accepted/nsample

# %%

title = f"Arcsine Distribution, Normal Proposal"
mh.acceptance(title, stepsize, acceptance, [0.005, 20.0])

# %%

sample_idx = 0