The smallest sampling unit: SamplingUnit
The struct
DiffusionMCMCTools.SamplingUnit — Typestruct SamplingUnit{TGP,TGPb,TW,TWn,TX}
PP::Vector{TGP}
PPb::Vector{TGPb}
WW::Vector{TW}
Wnr::TWn
XX::Vector{TX}
endSmallest composite unit with containers needed for sampling of conditioned diffusions via Guided Proposals.
Fields
PP: a vector ofGuidPropPPb: a vector ofGuidPropthat can be used in a blocking schemes asGuidProps on terminal subintervalsWW: a vector of containers for sampled Wiener processWnr: a flag for sampling Wiener processesXX: a vector of containers for a sampled processSamplingUnit( auxlaws, recording, tts, args=tuple(); auxlawsblocking=auxlaws, artificialnoise=1e-11, solverchoice_blocking=args )
Base constructor.
Arguments
aux_laws:recording:tts:args:aux_laws_blocking:artificial_noise:solver_choice_blocking:
is the main building block of all remaining units implemented in this package. It has a couple of methods implemented for it:
GuidedProposals.recompute_guiding_term! — MethodGP.recompute_guiding_term!(u::SamplingUnit)Recompute the guiding term assuming u.PP is a vector with guided proposal laws
GuidedProposals.loglikhd — MethodGP.loglikhd(u::SamplingUnit)Return log-likelihood evaluated at a sampled path
DiffusionMCMCTools.draw_proposal_path! — Methoddraw_proposal_path!(u::SamplingUnit)Sample a proposal path, compute log-likelihood along the way. Assumes u.XX[1].x[1] is a starting point. No preconditioned Crank-Nicolson scheme is used.
However, because it does not contain proposal-accepted pair it is rarely used on its own for sampling. Instead, it most often appears as a member of other struct.