Language Reference

FARMASIM Call

generates an ARFIMA(p,d,q) process

CALL FARMASIM( series, d <, phi, theta, mu, sigma, n, p, q, initial, seed>);

The inputs to the FARMASIM subroutine are as follows:


d
specifies a fractional differencing order. This argument is required; the value of d should be in the open interval (-1,1) excluding zero.

phi
specifies an m_p-dimensional vector containing the autoregressive coefficients, where m_p is the number of the elements in the subset of the AR order. The default is zero.

theta
specifies an m_q-dimensional vector containing the moving-average coefficients, where m_q is the number of the elements in the subset of the MA order. The default is zero.

mu
specifies a mean value. The default is zero.

sigma
specifies a variance of the innovation series. The default is one.

n
specifies the length of the series. The value of n should be greater than or equal to the AR order. The default is n=100 is used.

p
specifies the subset of the AR order. See the FARMACOV subroutine for additional details.

q
specifies the subset of the MA order. See the FARMACOV subroutine for additional details.

initial
specifies the initial values of random variables. The initial value is used for the nonstationary process. If initial=a_0, then y_{-p+1}, ... ,y_{0} take the same value a_0. If the initial option is not specified, the initial values are set to zero.

seed
is a scalar containing the random number seed. At the first execution of the subroutine, the seed variable is used as follows:

If seed > 0, the input seed is used for generating the series.

If seed = 0, the system clock is used to generate the seed.

If seed < 0, the value (-1)x(seed) is used for generating the series.

If the seed is not supplied, the system clock is used to generate the seed.

On subsequent calls of the subroutine in the DO loop - like environment, the seed variable is used as follows: If seed > 0, the seed remains unchanged. In other cases, after each execution of the subroutine, the current seed is updated internally.

The FARMASIM subroutine returns the following value:


series
is an n vector containing the generated ARFIMA(p,d,q) process.

Consider the following ARFIMA(1,0.3,1) process:
(1-0.5b)(1-b)^{0.3}(y_t-10) = (1+0.1b){\epsilon}_t
In this process, \epsilon_t \sim nid(0, 1.2). To generate this process, you can use the following code:
  
    d    = 0.3; 
    phi  = 0.5; 
    theta= -0.1; 
    mu   = 10; 
    sigma= 1.2; 
    call farmasim(yt, d, phi, theta, mu, sigma, 100); 
    print yt;
 

The FARMASIM subroutine generates a time series of length n from an ARFIMA(p,d,q) model. If the process is stationary and invertible, the initial values y_{-p+1}, ... ,y_{0} are produced by using covariance matrices obtained from FARMACOV. If the process is nonstationary, the time series is recursively generated by using the user-defined initial value or the zero initial value.

To generate an ARFIMA(p,d,q) process with d\in [0.5,1), x_t is first generated for d'\in (-0.5, 0), where d'=d-1 and then y_{t} is generated by y_t = y_{t-1} + x_t.

To generate an ARFIMA(p,d,q) process with d\in (-1,-0.5], a two-step approximation based on a truncation of the expansion (1-b)^d is used; the first step is to generate an ARFIMA(0,d,0) process x_t=(1-b)^{-d}{\epsilon}_t, with truncated moving-average weights; the second step is to generate y_t =\phi(b)^{-1}\theta(b)x_t.

Previous Page | Next Page | Top of Page