Source code for snowdrop.src.model.settings
# -*- coding: utf-8 -*-
"""
Created on Thu Dec 5 11:35:18 2019
@author: A.Goumilevski
"""
from enum import unique
from enum import Enum
[docs]
@unique
class SolverMethod(Enum):
"""Solver algorithms."""
LBJ = 1 # Juillard, Laxton, McAdam, Pioro algorithm
ABLR = 2 # Armstrong, Black, Laxton, Rose algorithm
Villemot = 3 # Villemot Sebastien (DYNARE Toolbox algorithm)
Klein = 4 # Paul Klein (IRIS Toolbox algorithm)
BinderPesaran = 5 # Binder and Pesaran algorithm
AndersonMoore = 6 # Anderson and Moore algorithm
[docs]
@unique
class FilterAlgorithm(Enum):
"""Kalman filter algorithms."""
Diffuse = 1 # Diffuse Kalman filter (multivariate and univariate) with missing observations
Durbin_Koopman = 2 # Non-diffuse variant of Kalman filter
Non_Diffuse_Filter = 3 # Non Diffuse variant of Durbin-Koopman Kalman filter
Particle = 4 # Particle filter
Unscented = 5 # Unscented Kalman filter
[docs]
@unique
class SmootherAlgorithm(Enum):
"""Kalman smoother algorithms."""
BrysonFrazier = 1 # Bryson, Frazier
Diffuse = 2 # Diffuse Kalman Smoother (multivariate and univariate) with missing observations
Durbin_Koopman = 3 # Non-diffuse variant of Kalman smoother
[docs]
@unique
class InitialCondition(Enum):
"""Endogenous variables starting values algorithms."""
StartingValues = 1 # Starting values are used
SteadyState = 2 # Steady-state values are used as starting values
History = 3 # Starting values are read from a history file
[docs]
@unique
class PriorAssumption(Enum):
"""Assumptions about starting value of error covariance matrix."""
Diffuse = 1 # Diffuse prior for covariance matrices (Pinf and Pstar)
StartingValues = 2 # Starting values for covariance matrices (Pinf with diagonal values of 1.E6 on diagonl and Pstar=TQT')
Equilibrium = 3 # Equilibrium error covariance matrices obtained by discrete Lyapunov solver by using stable part ot transition and shock matrices
Asymptotic = 4 # Asymptotic values for error covariance matrices; it is obtained by solving discrete Riccati equation.
[docs]
@unique
class SamplingAlgorithm(Enum):
"""Assumptions about sampling methods."""
Emcee = 1 # Affine Invariant Markov chain Monte Carlo Ensemble sampler
Pymcmcstat = 2 # Adaptive Metropolis based sampling techniques include:
Pymcmcstat_mh = 21 # Metropolis-Hastings (MH): Primary sampling method.
Pymcmcstat_am = 22 # Adaptive-Metropolis (AM): Adapts covariance matrix at specified intervals.
Pymcmcstat_dr = 23 # Delayed-Rejection (DR): Delays rejection by sampling from a narrower distribution. Capable of n-stage delayed rejection.
Pymcmcstat_dram = 24 # Delayed Rejection Adaptive Metropolis (DRAM): DR + AM
Pymc3 = 3 # Markov Chain Monte Carlo (MCMC) and variational inference (VI) algorithms
Particle_pmmh = 41 # Particle Marginal Metropolis Hastings sampling
Particle_smc = 42 # Particle Sequential Quasi-Monte Carlo sampling
Particle_gibbs = 43 # Particle Generic Gibbs sampling
[docs]
@unique
class BoundaryConditions(Enum):
"""Boundary Conditions."""
FixedBoundaryCondition = 1 # Fixed condition at right boundary
ZeroDerivativeBoundaryCondition = 2 # Zero derivative condition at right boundary
[docs]
class BoundaryCondition:
Condition = BoundaryConditions.ZeroDerivativeBoundaryCondition
#Condition = BoundaryConditions.FixedBoundaryCondition