Differences a time series.
Z Vector of length NOBSZ containing the time series. (Input)
IPER Vector of
length NDIFF
containing the periods at which Z
is to be differenced. (Input)
The elements of IPER
must be greater than or equal to one.
IORD Vector of
length NDIFF
containing the order of each difference given in IPER.
(Input)
The elements of IORD
must be greater than or equal to zero.
NOBSX Number of
observations in the differenced series X.
(Output)
NOBSX
= NOBSZ
− IMISS
* NLOST.
X Vector of length NOBSX containing the differenced series. (Output)
NOBSZ Number of
observations in the time series Z.
(Input)
NOBSZ
must be greater than or equal to one.
Default: NOBSZ = size (Z,1).
NDIFF Number of
differences to perform. (Input)
NDIFF
must be greater than or equal to one.
Default: NDIFF = size (IPER,1).
IPRINT Printing
option. (Input)
Default: IPRINT = 0.
IPRINT |
Action |
0 |
No printing is performed. |
1 |
Prints the number of observations lost because of differencing Z, the number of observations in the differenced series X, and the differenced series X |
IMISS Missing
value option. (Input)
Default: IMISS = 0.
IMISS |
Action |
0 |
Include missing values in X. |
1 |
Exclude missing values from X. |
NLOST Number of
observations lost because of differencing the time series Z.
(Output)
NLOST
= IPER(1)
* IORD(1)
+
+ IPER(NDIFF
) * IORD(NDIFF).
Generic: CALL DIFF (Z, IPER, IORD, NOBSX, X [, ])
Specific: The specific interface names are S_DIFF and D_DIFF.
Single: CALL DIFF (NOBSZ, Z, NDIFF, IPER, IORD, IPRINT, IMISS, NLOST, NOBSX, X)
Double: The double precision name is DDIFF.
Routine DIFF performs m = NDIFF successive backward differences of period si= IPER(i) and order di = IORD(i) for i = 1, , m on the n = NOBSZ observations {Zt} for t = 1, 2, , n.
Consider the backward shift operator B given by
BkZt = Zt−k, for all k
Then, the backward difference operator with period s is defined by
∇sZt = (1 − Bs)Zt = Zt − Zt−s, s ≥ 0
Note that BsZt and ∇sZt are defined only for t = (s + 1), , n. Repeated differencing with period s is simply
where d ≥ 0 is the order of differencing. Note that
is defined only for t = (sd + 1), , n.
The general difference formula used in routine DIFF is given by
where nL = NLOST represents the number of observations lost because of differencing and NaN (not a number) represents the missing value code. See the routine AMACH; in the Machine-Dependent Constants section of the Reference Material. Note that nL = Σjsjdj.
A homogeneous stationary time series may be arrived at by appropriately differencing a homogeneous nonstationary time series (Box and Jenkins 1976, page 85). Preliminary application of an appropriate transformation followed by differencing of a series may enable model identification and parameter estimation in the class of homogeneous stationary autoregressive-moving average models.
1. Workspace may be explicitly provided, if desired, by use of D2FF/DD2FF. The reference is:
CALL D2FF (NOBSZ, Z, NDIFF, IPER, IORD, IPRINT, IMISS, NLOST, NOBSX, X, XWK)
The additional argument is:
XWK Work vector of length equal to NOBSZ.
2. A value is considered to be missing if it is not itself in the data set or if it is the result of an operation involving missing value(s). In differencing, missing values occur at the beginning of the differenced series since X(i) = Z(i) − Z(i − k) is not defined for k greater than or equal to i.
Consider the Airline Data (Box and Jenkins 1976, page 531) consisting of the monthly total number of international airline passengers from January 1949 through December 1960. Routine DIFF is used to compute
Xt = ∇1∇12Xt = (Zt − Zt−12) − (Zt−1 − Zt−13)
For the first invocation of DIFF with IMISS = 0, X1, X2, , X13 are set to the missing value code (NaN) and the equation is applied for t = 14, 15, , 24. For the second invocation of DIFF with IMISS = 1, the missing values are excluded from the output array containing the differenced series.
USE GDATA_INT
USE DIFF_INT
IMPLICIT NONE
INTEGER IPRINT, NDIFF, NOBSZ
PARAMETER (IPRINT=1, NDIFF=2, NOBSZ=24)
!
INTEGER IMISS, IORD(NDIFF), IPER(NDIFF), NCOL, NLOST, NOBSX, &
NROW
REAL X(NOBSZ), Z(144, 1)
! Periods of differencing
DATA IPER/1, 12/
! Orders of differencing
DATA IORD/1, 1/
! Airline Data
CALL GDATA (4, Z, NROW, NCOL)
! Nonseasonal and seasonal difference
! first 24 observations in Z
!
! Include missing values in result X
! USE Default IMISS = 0
CALL DIFF (Z(:, 1), IPER, IORD, NOBSX, X, NOBSZ=NOBSZ, IPRINT=IPRINT)
! Exclude missing values in result X
IMISS = 1
CALL DIFF (Z(:, 1), IPER, IORD, NOBSX, X, IPRINT=IPRINT, &
NOBSZ=NOBSZ, IMISS=IMISS)
!
END
Output from DIFF/D2FF
NLOST = 13
NOBSX =
24
I Z(I) X(I)
1
112.00 NaN
2
118.00 NaN
3
132.00 NaN
4
129.00 NaN
5
121.00 NaN
6
135.00 NaN
7
148.00 NaN
8
148.00 NaN
9
136.00 NaN
10
119.00 NaN
11
104.00 NaN
12
118.00 NaN
13
115.00 NaN
14
126.00 5.000
15 141.00
1.000
16 135.00 -3.000
17
125.00 -2.000
18 149.00
10.000
19 170.00 8.000
20
170.00 0.000
21 158.00
0.000
22 133.00 -8.000
23
114.00 -4.000
24 140.00
12.000
Output from DIFF/D2FF
NLOST = 13
NOBSX =
11
I Z(I) X(I)
1
112.00 5.000
2 118.00
1.000
3 132.00 -3.000
4
129.00 -2.000
5 121.00
10.000
6 135.00
8.000
7 148.00
0.000
8 148.00
0.000
9 136.00 -8.00
10
119.00 -4.000
11 104.00
12.000
12 118.00
13 115.00
14
126.00
15 141.00
16 135.00
17
125.00
18 149.00
19 170.00
20
170.00
21 158.00
22 133.00
23
114.00
24 140.00
PHONE: 713.784.3131 FAX:713.781.9260 |