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.
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