public class Difference extends Object implements Serializable, Cloneable
Class Difference
performs m = periods.length
successive backward differences of period \(s_i = {\rm {periods}}
[i - 1]\) and order \(d_i = {\rm {orders}} [i - 1] \,\,
{\rm{for}} \,\, i = 1, \dots, m\) on the n =
z.length
observations \(\left\{ Z_t \right\} \,\,
{\rm{for}} \,\, t = 1, 2, \dots, n\).
Consider the backward shift operator B given by
$$B^kZ_t = Z_{t-k}$$
for all k. Then, the backward difference operator with period s is defined by the following:
$$\Delta _s Z_t = \left( {1 - B^s } \right)Z_t = Z_t - Z_{t - s} \,\,\,\,\,\,{\rm{for}}\,s \ge 0$$
Note that \(B_sZ_t\) and \(\Delta_sZ_t\) are defined only for \(t = (s + 1), \dots, n\). Repeated differencing with period s is simply
$$\Delta _s^d Z_t = \left( {1 - B^s } \right)^d Z_t = \sum\limits_{j = 0}^d {\frac{{d!}}{{j!\left( {d - j} \right)!}}} \left( { - 1} \right)^j B^{sj} Z_t$$
where \(d \ge 0\) is the order of differencing. Note that
$$ \Delta _s^d Z_t$$
is defined only for \(t = (sd + 1), \dots, n\).
The general difference formula used in the class Difference
is given by
$$W_T = \left\{ \begin{array}{ll} \rm{NaN} & {\rm for}\,\, t = 1, \ldots, n_L \\ \Delta _{s_1 }^{d_1 } \Delta _{s_2 }^{d2} \ldots \Delta _{s_m }^{d_m } Z_t & {\rm for}\,\, t = n_L + 1,\ldots, n \end{array} \right.$$
where \(n_L\) represents the number of observations "lost" because of differencing and NaN represents the missing value code. Note that
$$n_L = \sum\limits_j {s_j d_j }$$
A homogeneous, stationary time series can be arrived at by appropriately differencing a homogeneous, nonstationary time series (Box and Jenkins 1976, p. 85). Preliminary application of an appropriate transformation followed by differencing of a series can enable model identification and parameter estimation in the class of homogeneous stationary autoregressive moving average models.
Constructor and Description |
---|
Difference()
Constructor for
Difference . |
Modifier and Type | Method and Description |
---|---|
double[] |
compute(double[] z,
int[] periods)
Computes a Difference series.
|
void |
excludeFirst(boolean exclude)
If set to true, the observations lost due to differencing will be excluded.
|
int |
getObservationsLost()
Returns the number of observations lost because of differencing the time
series.
|
void |
setOrders(int[] orders)
Sets the orders for the Difference object
|
public void setOrders(int[] orders)
orders
- an int
array of length equal to length of periods
,
containing the order of each difference given in periods. The elements of orders
must be greater than or equal to 0.public int getObservationsLost()
compute
method must be invoked
first before invoking this method. Otherwise, the return value is
0
.int
containing the number of observations
lost because of differencing the time series z
.public void excludeFirst(boolean exclude)
exclude
- a boolean
specifying whether or not to exclude
lost observations due to differencing.public final double[] compute(double[] z, int[] periods) throws IllegalArgumentException
z
- a double
array containing the time series.periods
- an int
array containing the periods at which
z is to be differenced.double
array containing the differenced series.IllegalArgumentException
Copyright © 2020 Rogue Wave Software. All rights reserved.