RNARM

Generates a time series from a specified ARMA model.

Required Arguments

CNST — Overall constant. (Input)
See Comments.

PAR — Vector of length NPAR containing the autoregressive parameters. (Input)

LAGAR — Vector of length NPAR containing the order of the autoregressive parameters. (Input)
The elements of LAGAR must be greater than or equal to one.

PMA — Vector of length NPMA containing the moving average parameters. (Input)

LAGMA — Vector of length NPMA containing the order of the moving average parameters. (Input)
The elements of LAGMA must be greater than or equal to one.

IADIST — Option for normally distributed innovations. (Input)

 

IADIST

Action

0

Innovations are generated from a normal distribution (white noise) with mean 0 and variance AVAR.

1

Innovations are specifed by the user.

AVAR — Variance of the normal distribution, if used. (Input)
For IADIST = 0, AVAR is input; and for IADIST = 1, AVAR is unused.

A — Vector of length NW + max(LAGMA(j)) containing the innovations. (Input or output)
For IADIST = 1, A is input; and for IADIST = 0, A is output.

WI — Vector of length max(LAGAR(i)) containing the initial values of the time series. (Input)

W — Vector of length NW containing the generated time series. (Output)

Optional Arguments

NW — Number of observations of the time series to generate. (Input)
NW must be greater than or equal to one.
Default: NW = size (W,1).

NPAR — Number of autoregressive parameters. (Input)
NPAR must be greater than or equal to zero.
Default: NPAR = size (PAR,1).

NPMA — Number of moving average parameters. (Input)
NPMA must be greater than or equal to zero.
Default: NPMA = size (PMA,1).

FORTRAN 90 Interface

Generic: CALL RNARM (CNST, PAR, LAGAR, PMA, LAGMA, IADIST, AVAR, A, WI,
W [])

Specific: The specific interface names are S_RNARM and D_RNARM.

FORTRAN 77 Interface

Single: CALL RNARM (NW, CNST, NPAR, PAR, LAGAR, NPMA, PMA, LAGMA, IADIST, AVAR, A, WI, W)

Double: The double precision name is DRNARM.

Description

Routine RNARM simulates an ARMA(p, q) process, {Wt} for t = 1, 2, n (with n = NW, p = NPAR, and q = NPMA). The model is

ɸ(B)Wt = θ0 + θ(B)At      t  ZZ

where B is the backward shift operator,

ɸ(B) = 1  ɸ1B  ɸ2B2    ɸpBp

θ(B) = 1  θ1B  θ2B2    θqBq

Let μ be the mean of the time series {Wt}. The overall constant θ0 (CNST) is

 

Comments

1. The time series is generated according to the following model:

X(i) = CNST + PAR(1) * X(i  LAGAR(1)) +  + PAR(NPAR* X(i  LAGAR(NPAR)) + A(i PMA(1) * A(i  LAGMA(1))    PMA(NPMA* A(i  LAGAR(NPMA))

where

X(t) = W(t),t = 1, 2, NW

and

W(t) = WI(t + p),t = 1  p, 2  p, ,  1, 0

with p = max(LAGAR(k)).

The constant is related to the mean of the series, WMEAN, as follows:

CNST = WMEAN * (1  PAR(1   PAR(NPAR))

2. Time series whose innovations have a nonnormal distribution may be simulated by setting IADIST = 1 and by providing the appropriate innovations in A and start values in WI.

3. The routine RNSET can be used to initialize the seed of the random number generator. The routine RNOPT can be used to select the form of the generator.

Examples

Example 1

In this example, RNARM is used to generate a time series of length five, using an ARMA model with three autoregressive parameters and two moving average parameters. The start values are 0.1000, 0.0500, and 0.0375.

 

USE RNARM_INT

USE UMACH_INT

USE RNSET_INT

 

IMPLICIT NONE

INTEGER NPAR, NPMA, NW

PARAMETER (NPAR=3, NPMA=2, NW=5)

!

INTEGER I, IADIST, ISEED, LAGAR(NPAR), LAGMA(NPMA), NOUT

REAL A(NW+2), AVAR, CNST, PAR(NPAR), PMA(NPMA), W(NW), &

WI(3)

!

CALL UMACH (2, NOUT)

LAGAR(1) = 1

LAGAR(2) = 2

LAGAR(3) = 3

PAR(1) = 0.500

PAR(2) = 0.250

PAR(3) = 0.125

LAGMA(1) = 1

LAGMA(2) = 2

PMA(1) = -0.500

PMA(2) = -0.250

IADIST = 0

CNST = 1.0

AVAR = 0.1

WI(1) = 0.1

WI(2) = 0.05

WI(3) = 0.0375

ISEED = 123457

CALL RNSET (ISEED)

CALL RNARM (CNST, PAR, LAGAR, PMA, LAGMA, &

IADIST, AVAR, A, WI, W)

WRITE (NOUT,99999) (W(I),I=1,NW)

99999 FORMAT (' Simulated ARMA(3,2) series ', 5F7.4)

END

Output

 

Simulated ARMA(3,2) series 1.4033 2.2200 2.2864 2.8878 2.8322

Example 2

In this example, 500 observations from an ARMA(2, 2) process are simulated using RNARM; and then routine NSPE is used to estimate the parameters of the model. The model is used as an example by Priestley (1981), page 139.

 

USE RNARM_INT

USE RNSET_INT

USE NSPE_INT

 

IMPLICIT NONE

INTEGER NPAR, NPMA, NW

PARAMETER (NPAR=2, NPMA=2, NW=500)

!

INTEGER IADIST, ISEED, LAGAR(NPAR), LAGMA(NPMA)

REAL A(NW+2), AVAR, AVAR1, CNST, CNST1, PAR(NPAR), &

PAR1(NPAR), PMA(NPMA), PMA1(NPMA), W(NW), WI(2), WMEAN

!

LAGAR(1) = 1

LAGAR(2) = 2

PAR(1) = -1.4

PAR(2) = -0.5

LAGMA(1) = 1

LAGMA(2) = 2

PMA(1) = 0.2

PMA(2) = 0.1

IADIST = 0

CNST = 0.0

AVAR = 1.0

WI(1) = 0.0

WI(2) = 0.0

ISEED = 123457

CALL RNSET (ISEED)

CALL RNARM (CNST, PAR, LAGAR, PMA, LAGMA, &

IADIST, AVAR, A, WI, W)

CALL NSPE (W, CNST1, PAR1, PMA1, AVAR1, IPRINT=1)

END

Output

 

Results from NSPE/N2PE

WMEAN = .02192622

CONST = .0695866

AVAR = 1.0936457

PAR

1 2

-1.533 -0.641

PMA

1 2

0.0560 0.1294