home *** CD-ROM | disk | FTP | other *** search
-
-
- A Program for Generalized Adaptive Filtering
- C Copyright 1984, American Association of Individual Investors
-
- Several months ago, a reader asked if we could provide a program
- listing for, "generalized adaptive filtering (GAF)." (What in the
- world, you may ask, is, GAF?... Well read on.) It took us awhile to
- find a reference that had enough information from which to
- develop a sample program listing, and in the meantime I've
- misplaced the letter. But, for that reader, and, hopefully, for
- many others, here's the program.
-
- Students of securities markets would like to be able to make
- predictions about future market prices, and there are numerous
- techniques, statistical and otherwise, for doing just that. GAF
- is one such technique; it's based on a method of optimization
- borrowed from control theory, which, in turn, is a branch of
- electrical engineering. The optimization employs what is called a
- "steepest descent algorithm" in order to generate an equation that
- makes a prediction of what future prices, or, for that matter, any
- future event which can be expressed as a numerical quantity.
- Using GAF we could just as well, for example, forecast interest
- rates or the expected inflation rate.
-
- GAF is one of a class of forecasting techniques that fall into a
- category called time-series analysis. Times-series forecasts
- use data from past observations of the time-series under
- consideration to make a forecast of future values of the
- time-series. Interest rates, stock market prices and the money
- supply are all candidates for forecasting by time-series methods.
- Moving averages and exponential smoothing are techniques often
- used by securities market technical analysts. Under many
- circumstances GAF should, in theory, provide a better forecast.
-
- In order to understand how GAF works, lets look at how a
- statistician or economist would view the problem of making a
- forecast. First, take the case of a set of numbers:
- 1,2,3,4,5,6,7,..? Based on past evidence, what is the next number
- likely to be? (Eight, you say. Good, you've passed the course.)
- If we have a completely determinate set of numbers, then we could
- forecast the next number. If our forecasting program is any good,
- it would also have come up with the number "eight." However, in
- the real world of investments, and other economic events, such as
- future interest rates, there's no necessity that the next number
- has to be "eight."
-
- If a series of numbers, or economic events, was completely
- random, then we would like to make a forecast that was closest to
- the actual number that occurs when the event actually happens. In
- the case of a completely random set of events, or numbers, it
- turns out that the "best" forecast, the one that minimizes error,
- is the value of the last known data point in the time-series.
-
- Economists and statisticians are in general agreement that there
- is a high degree of randomness in economic data. So researchers
- develop methods that will make forecasts that are as accurate as
- possible after taking into consideration the randomness of the
- data. GAF is one such method; as we previously stated it uses
- only the time series of the past data to make a prediction. The
- method searches for a forecasting equation by making a trial
- forecast equation from past data, measuring the error, then
- making a new trial forecast. This process proceeds until it is no
- longer possible to significantly reduce the error remaining after
- the forecast is compared with the actual data. The resulting
- forecasting equation is then used to make prediction of future
- values. For the investor, forecasts are most likely to be made
- for market prices.
-
- GAF represents a relatively recent development in the forecasters
- toolkit. Since the computer does the searching for the forecast
- equation by successive approximation, there is no necessity to
- impose an explicit functional form, such as with exponential
- smoothing. The general form of the forecasting equation is:
-
- X(t) = a(t-1)X(t-1) + a(t-2)X(t-2) +....+ a(t-n)X(t-n)
-
- Given the general form, a GAF equation can have several lagged
- time periods and coefficients in the forecasting equation.
- Although, in practice usually one or two periods are specified.
- In some cases the program may not converge, i.e., settle down to
- an equation with minimum error. If this is the case, you might try
- taking the first differences of the original data and then using
- the last value of the time series plus the difference forecast by
- the program for a forecast one period ahead.
-
- (GAF falls into a category of time series processes called
- auto-regression, which means that the time series is regressed
- (fitted) onto itself. The number of lagged periods being used is
- called the "order" of the process. The determination of the order
- of the process is called "model identification." Model
- identification is too complex a subject to be covered here. For a
- detailed discussion of model identification, as well as a detailed
- discussion of GAF, the reader is referred to: Forecasting Methods
- and Applications by Makridakis and Wheelwright, published by John
- Wiley, 1978.)
-
- The program is written in a subset of Microsoft BASIC, and should
- run on a wide variety of computers with little or no
- modification. When you first run the program, you are asked to
- input your data, which may have up to 150 observations. Type in
- "X" if you wish to re-enter a data point and "F" when you are
- finished entering your data. (As written, the program will not
- work with lower case letters.) Next, you are asked for the number
- of parameters, which is the order of the time series or number of
- lagged data values to include in the estimation process. As
- written, the program makes a forecast for six time periods ahead.
- The forecast period can be changed by changing the value assigned
- to "M" in statement 610 of the program.
-
- Although it may seem so, there is no magic in the forecasts
- generated by this program. If the data are highly random, as is
- likely to be the case with securities market data, the forecast
- value and the actual outcome will most likely be considerably
- different. (However, the forecast should, in theory, be better
- than with many other techniques.) Also, the accuracy of the
- forecast can be expected to deteriorate rapidly as the number of
- time periods being forecast increases.
-
- A good method of testing the forecasts generated by this program
- is to initially use fewer than the total number of data points
- that you have collected to generate a forecast. Then make a
- comparison of the actual data and the forecasts. In this way the
- accuracy of the forecast can be measured and compared with
- forecasts generated by alternative methods.
-
- As the program runs, it will go through cycles of successive
- approximations (iterations). The number of cycles has been set to
- 100, although this can be changed. At present, the program is
- really "barebones." We would like to hear about any additions
- that our readers make to the program.