Overall Design
- IRIS is a collection of objects (such as models, time series, simulation plans, databases, or VAR models) and functions.
- Object-oriented both back-end and front-end: you write your own m-files combining standard Matlab functions and IRIS objects to perform the modeling tasks.
- Integrated: all IRIS objects and functions are designed to support each other; see examples at the end of this section.
- Easily extensible: with basic knowledge of Matlab programming language, you can extend IRIS functionality.
- Glass box, not black box: everything is m-files, with clear internal structure.
Novel Algorithms and Solutions
- Parallelized adaptive random-walk Metropolis posterior simulator.
- Particle swarm optimizer, PSO, a global optimization method.
- System priors, i.e. priors on the system properties of a model as a whole (such as shock responses, frequency responses, correlations or spectral densities).
- Equation-selective nonlinear simulator with Shanks acceleration.
- Symbolic/automatic differentiator, SYDNEY.
- Analyzer of block-recursive steady-state structure, BLAZER.
- Steady state calculated simultaneously for levels and growth characteristics in models with stochastic and/or deterministic trends.
- Triangular representation of rational-expectations model solution with forward expansion including anticipated shocks.
- Two patches to handle numerical failures of the Schur decomposition: Sum-of-Eigenvalues-Near-2, and Eigenvalues-Too-Close-To-Swap.
- Automatic detection and treatment of unit roots.
- Kalman filter with an exact non-linear prediction step.
- Combined conditioning and exogenizing with anticipated and unanticipated shocks in simulations and forecasts.
- Frequency-domain calculation of the Fisher information matrix.
- Multivariate distribution estimation using k-harmonic means
Model File Language
- Model files only describe the model structure, not the tasks you want to perform.
- You can use any Matlab functions or you own m-file functions in model files.
- Two types of variables and shocks:
!transition_variables
, !transition_shocks
, !measurement_variables
, !measurement_shocks
.
- Four types of equations:
!transition_equations
, !measurement_equations
, deterministic trend equations !dtrend
, dynamic !links
.
- Modular structure: you can combine any number of declaration blocks and files.
- Descriptions and labels attached to any of the variables and equations kept in the model object for future reference.
- Control over which variables to be linearized and which variables to be log-linearized.
- Flexible control commands:
!if
, !switch
, !for
, !import
, !export
.
- Steady-state reference operator:
&
.
- Steady-state versions of equations for streamlining steady-state computation:
!!
.
- Loss function for computing optimal policies under discretion,
min()
, min#()
.
- Symbols denoting equations selected for exact non-linear mode:
=#
, min#
.
- Pseudo-functions for ease of equation writing:
diff
, dot
, difflog
, movavg
, movsum
, movprod
.
- Loss function operators
min
and min#
.
- Matlab-style line and block comments.
- Any Matlab function or your own m-file function can be used in the model code.
- Syntax highlighting in the Matlab editor.
Model Objects
- Simulations and forecasts with any possible combinations of anticipated or unanticipated, reduced-form or structural, hard or soft, exactly determined or underdetermined judgment.
- Full support for balanced-growth-path models with any number of unit roots: no need to stationarize, transform, or pre-specify anything.
- Steady-state or balanced-growth-path solution: computing both levels and growth rates, exploring block-recursive structure of the model steady state, swapping the endogeneity and exogeneity of variables and parameters.
- Advanced Kalman filtering: exact non-linear prediction step, missing observations, time-varying std deviations and correlation coefficients, anticipated and unanticipated judgmental adjustments, stochastic and deterministic trends in both transition and measurement variables, k-step-ahead predictions, exclusion of some periods and/or some measurement variables from the likelihood function.
- Optimal policy under commitment or discretion, with non-negativity constraints.
- Automatic and computationally efficient handling of missing observations.
- Monte-Carlo and bootstrap resampling methods.
- Analysis of parameter identification using data-independent asymptotic Fisher information matrix.
- Classical and bayesian estimation methods: ML in time and frequency domains, prediction error minimization, posterior mode, parameters concentrated out of the likelihood function.
- Priors imposed on individual parameters, and/or combinations and transformations of system properties and parameters.
- Switch between Optim Tbx and user-supplied optimization routines.
- Serial and parallelized adaptive random-walk Metropolis posterior simulator.
- Prior distribution function package.
- Wide range of diagnostics for stochastic properties: Autocovariance/correlation functions with time- and frequency-domain filters, power spectrum functions, forecast mean square errors, forecast error variance decomposition, Beveridge-Nelson trends, frequency response functions, moving average representation.
- Support for multiple parameterizations within one model object, and for multiple data sets.
- Automatic creation of steady-state or zero input databases.
- Change parameters and re-compute model at any time.
- Easy and instant access to the inside of model objects.
- User comments and any kind of user data attached to model objects.
Multivariate Time Series Analysis
- Reduced-form and structural VARs with exogenous variables and time trends.
- Simple panel VARs with fixed effects.
- Several identification methods for SVARs, including generalized sign restrictions.
- Bayesian estimation of VARs and SVARs using prior dummy observations: Litterman, sum of coefficients, unconditional mean, covariance matrix.
- Factor-augmented VARs.
- Conditional and judgmentally adjusted simulations and forecasts.
- Wide range of diagnostics for stochastic properties: Autocorrelation functions with time- and frequency-domain filters, power spectrum functions, forecast mean square errors, forecast error variance decomposition, moving average representation.
- Support for multiple parameterizations within one
- Monte-Carlo and bootstrap resampling methods.
- Easy and instant access to the inside of VAR objects.
- User comments and any kind of user data attached to VAR objects.
Database and Time Series Management
- IRIS own time series (tseries) objects supporting eight frequencies/periodicities: yearly, half-yearly, quarterly, bi-monthly, monthly, weekly, daily, and indeterminate, tailored to macroeconomic data management.
- Support for multivariate time series (no limitation on the number of dimensions, or the size of each dimension).
- Easy and flexible indexing and assigning to tseries objects.
- Standard Matlab visualization and graphics functions implemented for tseries objects.
- Univariate filtering with judgmental adjustments: Hodrick-Prescott with tunes, local linear filter with tunes, Butterworth filter with tunes.
- Built-in X12-ARIMA program for seasonal adjustment and ARIMA based decomposition.
- User comments and user data attached
- Basic database management functions based on Matlab structs.
- Importing and exporting databases in CSV format.
- Support for batch data processing within databases.
- User comments and any kind of user data attached to tseries objects.
Reporting
- Both quick-report functions and command-oriented reporting system based on PDFLaTeX.
- Reports to include tables, graphs, matrices, arrays, texts, code listings.
- User-defined conditional formatting of individual table and array cells, rows, columns.
- User-defined graphics styles.
Integrated Design
- Reports handle and display tseries objects and the corresponding dates and date ranges.
- Databases and time series are the standard inputs and outputs in model, VAR, and FAVAR simulations and forecasts.
- You can create a VAR object for a subset of model variables based on their model-implied asymptotic stochastic properties.
- Autocovariance/correlation and power spectrum functions have the same structure and functionality in both model objects and VAR objects.
- You can assign comments (text) and userdata (any kind of data) to each of the IRIS objects, using exactly the same syntax.
Third Party Software
- X13-ARIMA-SEATS, a seasonal adjustment program. Courtesy of the US Census Bureau.
- KDE, a kernel smoothed density estimator. Courtesy of Z. Botev. See
+thirdparty/kde.m
for license.
- xls2csv, a converter of Excel files. Courtesy of Christopher West. See
thirdparty/xls2csv.js
for license