LANGUAGEFortran 66 DESCRIPTION AND PURPOSE The algorithm presented here enables the exact likelihood function of a stationary autoregressive-moving average (ARM A) process to be calculated by means ofthe Kalman filter; see Harvey andPhillips (1976, 1979). Two subroutines are basic to the algorithm. The first, subroutine STARMA, casts the ARMA model into the "state space" form necessary for Kalman filtering, and computes the covariance matrix associated with the initial value ofthe state vector. The second subroutine, KARMA, carries out the recursions and produces a set of standardized prediction errors, together with the determinant of the covariance matrix of the observations. These two quantities together yield the exact likelihood, and this may be maximized by an iterative procedure based on a numerical optimization algorithm which does not require analytic derivatives.Subroutine KARMA contains a device whereby the likelihood may be approximated to a level of accuracy which is under the control of the user. This enables a considerable amount of computing time to be saved, with very little attendant loss in precision.Finally, another subroutine, KALFO R, may be used to compute predictions offuture values of the series, together with the associated conditional mean square errors. THEORY An autoregressive-moving average process is defined by (1) where the sr's are normally and independently distributed with mean zero and variance (J2, and WI is observable. Such a process will be referred to as an ARMA(p, q) process and the set of parameters (¢1>""¢P, O!, ...,8 q ) will be denoted by (¢,O).An ARMA(p, q) process may be put in "state space" form by defining an r x 1 vector, lXI' which obeys the "transition equation"where r = max(p,q+ 1) and 312 T= APPLIED STATISTICS , and R = (3) Note that, unless p = q + 1, some of the