Re: Q: Solving econometric models
- To: mathgroup at smc.vnet.net
- Subject: [mg30941] Re: Q: Solving econometric models
- From: Luci Ellis <elisha at dot.net.au>
- Date: Thu, 27 Sep 2001 02:17:05 -0400 (EDT)
- References: <9oc9bp$g90$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Dear Mark, Yes, you can definitely do this without a loop, by using a NestList or FoldList function. For example (caveat lector - I haven't tested this): With[{results = Regress[(* whatever *)]}, With{a=results[[1]], b = results[[2]]... Etc}, FoldList[{ a + b #1[[1]] + c #2, d + e #1[[2]] + f #1[[1]]}, {y0, z0}, ListOfKnownFutureXs] ]] The trick is to think of things in matrix form and preferably in state-space form. You might find some of the notebooks on generating different time series at my Mathematica and Economics web site useful inspiration: http://www.verbeia.com/mathematica/ Hope that helps, Luci Ellis in article 9oc9bp$g90$1 at smc.vnet.net, Mark S. Coleman at mcoleman at bondspace.com wrote on 20/9/01 6:28 PM: > > Greetings: > > I apologize in advance for the rather vague nature of this question, > but I am hoping that MathGroup members might be able to point me in > the right direction. > > I am working with a number of small econometric models that I have > estimated (using Regress) in Mathematica v4.0. The models support a number of > out-of-sample economic forecasting applications. As part of the > research I am conducting, I need to 'solve' these equations -- that > is, generate projections of future economic activity. This type of > functionality is generally a standard part of "conventional" > statistical/econometric packages, and I am seeking to replicate this > functionality in Mathematica. > > To illustrate the problem, consider the following very simple > two-equation model (note that I am not using Mathematica notation here): > > > y(t) = a + b*y(t-1) + c*x(t) > z(t) = d + e*z(t-1) + f*y(t-1) > > where t denotes time, y,z, and x are variables, and {a...f} are= > real > numbers (say estimated using Regress). Assume that > t=1,...,n,n+1,n+2,...,T. > > Assume that the models were estimated using the sample of data from > 1,...,n. The objective is to solve or forecast this model over the > future periods n+1, n+2,...,T. Also assume that x(t) is known over > the future periods. > > In my attempts to solve this problem in Mathematica, I've created a list of > rules (taken from the BestFit option in Regress) and then 'looped' > over the list of future periods, one period at a time, and used the > ReplaceAll function. > > This raises a couple of questions. First, to use prior solved values, > I've had to create a new equation to define each of the lagged > values, y(t-1) and z(t-1). Is there a better way to handle this? > > Second, can the model be written in Mathematica notation to solve over the > entire set of future time periods without the use of an explicit > loop? > > Any help would be greatly appreciated. > > -Mark >