## Occasional Staff StudiesThe Anderson-Moore Algorithm (AMA)

## An example calling the MATLAB Implementation of AIM

This example uses a simple two-equation model to demonstrate how to use the MATLAB implementation of the Anderson-Moore Algorithm.###

The Firm Value Model

We investigate the solution of a simple linear model which describes the value of a firm. We investigate the solution of a simple linear model which describes the value of a firm.

The model consists of two equations:

where V is the value of the firm, D is the dividend, r is the interest rate, is the growth rate of the dividend (here, negative). E is the error term for stochastic shocks.

### Using the Anderson Moore Algorithm

The AIM routine requires three input files:

- A model file in syntax called MODELEZ
- A parameter file.
- The setup script to execute AIM.

###

Model Representation in MDLEZ

MODEL> FIRMVALUE ENDOG> V DIV e_ one EQUATION> VALUE EQ> LEAD(V,1) = (1+R)*V - LEAD(DIV,1) EQUATION> DIVIDEND EQ> DIV = (1-DELTA)*LAG(DIV,1) EQUATION> e_ EQ> e_ = 0 * one EQUATION> ONE EQ> one = LAG(one,1) END`Here is what the MODELEZ file for our example looks like.`

Below we will explain each line of the file.

**MODEL>**

The name of the model.

**ENDOG>**

The names of the endogenous variables. In the AIM formulation, models must completely describe the long-run behavior of the system. Thus all variables are endogenous. "Exogenous variables must have, at least, a trivial forecasting equation.

**EQUATION>**

The name of the equation.

**EQ>**

The model equation definition.

`The parameter file for our example is called firmparms.m: `

R = 0.10; DELTA = 0.60;

`The following script, which we call runfirm.m, executes AIM for the firmvalue model: `

dirnam='./'; % directory of this example parnam='firmparms'; modnam='firmvalue'; [cof, scof, cofb, param_, eqname_,... endog_, eqtype_, vtype_, neq, nlag, nlead, rts, lgrts,aimcode]=... SPSolve(dirnam, modnam, parnam);

`Sample run of the firmvalue model on Unix: `

**Change the directory to the directory where the script resides:
The script to run aim is: runfirm.m
The model file name is: firmvalue
The parameter file name is: firmparms.m
**

mqmx3(174)% cd ~/yourPathTo/examples/firm

** Call matlab and execute the run script**

msulx1(124)% matlab -nodesktop < M A T L A B > Copyright 1984-2005 The MathWorks, Inc. Version 7.0.4.352 (R14) Service Pack 2 January 29, 2005 To get started, type one of these: helpwin, helpdesk, or demo. For product information, visit www.mathworks.com. >> addpath('~/sp_solve') addpath('~/sp_solve') >> runfirm runfirm SPSolve version:($Name: $,$Revision: 1.4 $) ans = found Aim on system classpath initializing parsers Aim Java Parser Version 1.03: Reading from file ./firmvalue... Aim Java Parser Version 1.03: No syntactic errors found. Checking for errors...... No semantic errors found. chose modelez parser >>

** Displaying the results:
In the output below:
"cof" is the structural coefficients matrix (neqs by neqs*(nlag+nlead+1))
"cofb" is the reduced form coefficients matrix (neqs by neqs * nlag)
"scof" is the observable structure matrix (neqs by neqs*(nlag+1))
"rts" returns the eigenvector
"aimerr(aimcode)" returns a diagnostic message about the model
**

where: "neq" = number of equations "nlag" =number of lags "nlead" =number of leads

> cof cof cof = Columns 1 through 7 0 0 0 0 -1.1000 0 0 0 -0.4000 0 0 0 1.0000 -1.0000 0 0 0 0 0 0 1.0000 0 0 0 -1.0000 0 0 0 Columns 8 through 12 0 1.0000 1.0000 0 0 0 0 0 0 0 0 0 0 0 0 1.0000 0 0 0 0 > cofb cofb cofb = 0 0.2286 0 0 0 0.4000 0 0 0 0 0 0 0 0 0 1.0000 > scof scof scof = Columns 1 through 7 0 0 0 0 -1.1000 0.6286 0 0 -0.4000 0 0 0 1.0000 -1.0000 0 0 0 0 0 0 1.0000 0 0 0 -1.0000 0 0 0 Column 8 0 0 0 1.0000 > rts rts rts = 1.1000 1.0000 0.4000 > aimerr(aimcode) aimerr(aimcode) ans = Aim: unique solution.

###

References

1 Gary Anderson. A reliable and computationally efficient algorithm for imposing the saddle point property in dynamic models. Unpublished Manuscript, Board of Governors of the Federal Reserve System, 1997.

2 Gary Anderson and George Moore. A linear algebraic procedure for solving linear perfect foresight models. *Economics Letters*, 17, 1985.

3 Michael W. Berry. Large scale sparse singular value computations. University of Tennessee, Department of Computer Science, 1996.

4 Olivier Jean Blanchard and C. Kahn. The solution of linear difference models under rational expectations. *Econometrica*, 48, 1980.

5 Gene H. Golub and Charles F. van Loan. *Matrix Computations*. Johns Hopkins, 1989.

6 E. V. Krishnamurthy. *Parallel Processing: Principles and Practice*. Addison-Wesley, 1989.

7 David G. Luenberger. Time-invariant descriptor systems. *Automatica*, 14:473-480, 1978.

8 Ben Noble. *Applied Linear Algebra*. Prentice-Hall, Inc., 1969.

9 J. Taylor. Conditions for unique solutions in stochastic macroeconomic models with rational expectations. *Econometrica*, 45:1377-1385, |SEP| 77.

10 C. H. Whiteman. *Linear Rational Expectations Models: A User's Guide*. University of Minnesota, 1983.