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: diffdotdifflogmovavgmovsummovprod.
  • 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