Language Reference

FARMACOV Call

computes the autocovariance function for an ARFIMA(p,d,q) process

CALL FARMACOV( cov, d <, phi, theta, sigma, p, q, lag>);

The inputs to the FARMACOV subroutine are as follows:


d
specifies a fractional differencing order. The value of d must be in the open interval (-0.5,0.5) excluding zero. This input is required.

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. All the roots of \phi(b)=0 should be greater than one in absolute value, where \phi(b) is the finite-order matrix polynomial in the backshift operator b, such that b^j y_{t}=y_{t-j}.

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.

p
specifies the subset of the AR order. The quantity m_p is defined as the number of elements of phi.

If you do not specify p, the default subset is p=\{1,2, ... ,m_p\}.

For example, consider phi=0.5.

If you specify p=1 (the default), the FARMACOV subroutine computes the theoretical autocovariance function of an ARFIMA(1,d,0) process as y_t = 0.5 y_{t-1} + \epsilon_t.

If you specify p=2, the FARMACOV subroutine computes the autocovariance function of an ARFIMA(2,d,0) process as y_t = 0.5 y_{t-2} + \epsilon_t.

q
specifies the subset of the MA order. The quantity m_q is defined as the number of elements of theta.

If you do not specify q, the default subset is q=\{1,2, ... ,m_q\}.

The usage of q is the same as that of p.

lag
specifies the length of lags, which must be a positive number. The default is lag=12.

The FARMACOV subroutine returns the following value:


cov
is a lag+1 vector containing the autocovariance function of an ARFIMA(p,d,q) process.

Consider the following ARFIMA(1,0.3,1) process:
(1-0.5b)(1-b)^{0.3}y_t = (1+0.1b){\epsilon}_t
In this process, \epsilon_t \sim nid(0, 1.2). To compute the autocovariance of this process, you can use the following code:
  
    d    = 0.3; 
    phi  = 0.5; 
    theta= -0.1; 
    sigma= 1.2; 
    call farmacov(cov, d, phi, theta, sigma) lag=5; 
    print cov;
 


For d\in (-0.5,0.5)\backslash \{0\}, the series y_{t} represented as (1-b)^dy_{t} = {\epsilon}_t is a stationary and invertible ARFIMA(0,d,0) process with the autocovariance function
\gamma_k = e(y_{t}y_{t-k}) =    { {(-1)^k \gamma (-2d+1)} \over {\gamma (k-d+1)\gamma (-k-d+1) }}
and the autocorrelation function
\rho_k = {\gamma_k \over \gamma_0} =    {{ \gamma (-d+1)\gamma (k+d)} \over {\gam...   ... (k-d+1) }}    \sim { \gamma (-d+1) \over {\gamma (d)}} k^{2d-1},  karrow \infty
Notice that \rho_k decays hyperbolically as the lag increases, rather than showing the exponential decay of the autocorrelation function of a stationary ARMA(p,q) process.

The FARMACOV subroutine computes the autocovariance function of an ARFIMA(p,d,q) process.

For d\in (0.5,0.5)\backslash \{0\}, the series y_{t} is a stationary and invertible ARFIMA(p,d,q) process represented as
\phi(b)(1-b)^dy_t = \theta(b){\epsilon}_t
where \phi(b)=1-\phi_1b-\phi_2b^2 -  ...  - \phi_pb^p and \theta(b)=1-\theta_1b-\theta_2b^2 -  ...  - \theta_qb^q and {\epsilon}_t is a white noise process; all the roots of the characteristic AR and MA polynomial lie outside the unit circle.

Let x_t = \theta(b)^{-1}\phi(b)y_t, so that x_t follows an ARFIMA(0,d,0) process; let z_t=(1-b)^dy_t, so that z_t follows an ARMA(p,q) process; let \gamma_k^x be the autocovariance function of \{x_t\} and \gamma_k^z be the autocovariance function of \{z_t\}.

Then the autocovariance function of \{y_t\} is as follows:
\gamma_k = \sum_{j=-\infty}^{j=\infty} \gamma_j^z\gamma_{k-j}^x
The explicit form of the autocovariance function of \{y_t\} is given by Sowell (1992, p. 175).

Previous Page | Next Page | Top of Page