Class MultipointHybridMCMC
java.lang.Object
dev.nm.stat.random.rng.multivariate.mcmc.metropolis.AbstractMetropolis
dev.nm.stat.random.rng.multivariate.mcmc.hybrid.AbstractHybridMCMC
dev.nm.stat.random.rng.multivariate.mcmc.hybrid.MultipointHybridMCMC
- All Implemented Interfaces:
RandomVectorGenerator
,Seedable
A multi-point Hybrid Monte Carlo is an extension of HybridMCMC, where during the
proposal generation instead of considering only the last configuration after the dynamics
simulation, we pick a proposal from a window of the last M configurations.
Consider using ErgodicHybridMCMC if you are experiencing components that deviate
little at each step.
- See Also:
-
Field Summary
Fields inherited from class dev.nm.stat.random.rng.multivariate.mcmc.hybrid.AbstractHybridMCMC
dt
-
Constructor Summary
ConstructorsConstructorDescriptionMultipointHybridMCMC
(RealScalarFunction logF, RealVectorFunction dLogF, Vector m, double dt, int L, int M, Vector w, Vector initialState, RandomLongGenerator uniform) Constructs a new instance with the given parameters.MultipointHybridMCMC
(RealScalarFunction logF, RealVectorFunction dLogF, Vector m, double dt, int L, int M, Vector initialState, RandomLongGenerator uniform) Constructs a new instance with equal weights to the M configurations. -
Method Summary
Modifier and TypeMethodDescriptionprotected boolean
isProposalAccepted
(Vector currentState, Vector proposedState) Decides whether the given proposed state should be accepted, or whether the system should remain in it's current state.protected Vector
nextProposedState
(Vector currentState) Proposes a next state for the system.Methods inherited from class dev.nm.stat.random.rng.multivariate.mcmc.hybrid.AbstractHybridMCMC
dUdx, H, k, setDeltaT
Methods inherited from class dev.nm.stat.random.rng.multivariate.mcmc.metropolis.AbstractMetropolis
acceptanceRate, nextVector, seed
-
Constructor Details
-
MultipointHybridMCMC
public MultipointHybridMCMC(RealScalarFunction logF, RealVectorFunction dLogF, Vector m, double dt, int L, int M, Vector w, Vector initialState, RandomLongGenerator uniform) Constructs a new instance with the given parameters.- Parameters:
logF
- the log of the unnormalized target density from which we wish to sampledLogF
- the derivative of the log target density for use by the LeapFrogging algorithm. You may choose a function that differs from the actual derivative of the log target density (i.e. that of a tempered version of the target density), in order to guide the leap-frogging algorithmm
- the mass of each component in the dynamics simulation. A lower mass for a given component will result in greater change over the simulated timedt
- the amount by which we advance time at each dynamics simulation stepL
- the number of dynamics simulation stepsM
- the number of configurations from which we select the candidate after the forward leap-frog iterations (M < L)w
- a vector of length M, which is used to emphasize certain steps along the leapfrog trajectory, where w(1) is the weight assigned to the to configuration at step L - M and w(M) corresponds to the configuration at step L.initialState
- the initial state of the algorithmuniform
- the random long generator to be used
-
MultipointHybridMCMC
public MultipointHybridMCMC(RealScalarFunction logF, RealVectorFunction dLogF, Vector m, double dt, int L, int M, Vector initialState, RandomLongGenerator uniform) Constructs a new instance with equal weights to the M configurations.- Parameters:
logF
- the log of the unnormalized target density from which we wish to sampledLogF
- the derivative of the log target density for use by theLeapFrogging
algorithm. You may choose a function that differs from the actual derivative of the log target density (i.e. that of a tempered version of the target density), in order to guide the leap-frogging algorithmm
- the mass of each component in the dynamics simulation. A lower mass for a given component will result in greater change over the simulated timedt
- the difference in time for each simulation step. A smaller value, will make the simulation more accurate, but a larger value will give better performance by requiring less simulation stepsL
- the number of forward leap-frog iterations at each stepM
- the number of configurations from which we select the candidate after the forward leap-frog iterations (M < L)initialState
- the initial state of the algorithmuniform
- the random long generator to be used
-
-
Method Details
-
nextProposedState
Description copied from class:AbstractMetropolis
Proposes a next state for the system.- Specified by:
nextProposedState
in classAbstractMetropolis
- Parameters:
currentState
- the current state of the system- Returns:
- the proposed next state
-
isProposalAccepted
Description copied from class:AbstractMetropolis
Decides whether the given proposed state should be accepted, or whether the system should remain in it's current state.- Specified by:
isProposalAccepted
in classAbstractMetropolis
- Parameters:
currentState
- the current state of the systemproposedState
- the proposed next state of the system- Returns:
- whether the system should accept the proposed next state
-