public class LackOfFit extends Object
LackOfFit
may be used to diagnose lack of fit in both ARMA
and transfer function models. Typical arguments for these situations are:
Model | lagMin |
lagMax |
npFree |
ARMA (p, q) | 1 | \(\sqrt{\texttt{nObservations}} \) | p + q |
Transfer function | 0 | \(\sqrt{\texttt{nObservations}} \) | r + s |
LackOfFit
performs a portmanteau lack of fit test for a time
series or transfer function containing nObservations
observations given the appropriate sample correlation function
\(\hat{\rho}(k)\) for
k = L, L+1,...,K where L =
lagMin
and K = lagMax
.
The basic form of the test statistic Q is $$Q=n(n+2)\sum_{k=L}^{K}(n-k)^{-1}\hat{\rho}(k) $$
with L = 1 if \(\hat{\rho}(k)\)
is an autocorrelation function. Given that the model is adequate, Q
has a chi-squared distribution with \(K-L+1-m\) degrees of
freedom where m = npFree
is the number of parameters
estimated in the model. If the mean of the time series is estimated,
Woodfield (1990) recommends not including this in the count of the parameters
estimated in the model. Thus, for an ARMA(p, q) model set
npFree
= p + q regardless of whether the mean is
estimated or not. The original derivation for time series models is due to
Box and Pierce (1970) with the above modified version discussed by Ljung and
Box (1978). The extension of the test to transfer function models is
discussed by Box and Jenkins (1976, pages 394-395).
Modifier and Type | Method and Description |
---|---|
static double[] |
compute(int nObservations,
double[] correlations,
int npFree,
int lagMax)
Performs lack-of-fit test for a univariate time series or transfer
function given the appropriate correlation function using a minimum lag
of 1.
|
static double[] |
compute(int nObservations,
double[] correlations,
int npFree,
int lagMax,
int lagMin)
Performs lack-of-fit test for a univariate time series or transfer
function given the appropriate correlation function.
|
public static double[] compute(int nObservations, double[] correlations, int npFree, int lagMax)
nObservations
- an int
containing the number of
observations of the stationary time series.correlations
- a double
array of length lagMax+1
containing the correlation function.npFree
- an int
scalar specifying the number of free
parameters in the formulation of the time series model.
npfree
must be greater than or equal to zero
and less than lagMax
. Woodfield (1990)
recommends npFree = p + q
.lagMax
- an int
scalar specifying the maximum lag of
the correlation function.double
array of length 2 with the test statistic,
Q, and its p-value, p. Under the null hypothesis, Q
has an approximate chi-squared distribution with
lagMax-lagMin+1-npFree
degrees of freedom.public static double[] compute(int nObservations, double[] correlations, int npFree, int lagMax, int lagMin)
nObservations
- an int
containing the number of
observations of the stationary time series.correlations
- a double
array of length lagMax+1
containing the correlation function.npFree
- an int
scalar specifying the number of free
parameters in the formulation of the time series model.
npfree
must be greater than or equal to zero
and less than lagMax
. Woodfield (1990)
recommends npFree = p + q
.lagMax
- an int
scalar specifying the maximum lag of
the correlation function.lagMin
- an int
scalar specifying the minimum lag of
the correlation function. lagMin
corresponds
to the lower bound of summation in the lack of fit test
statistic. Default value is 1.double
array of length 2 with the test statistic,
Q, and its p-value, p. Under the null hypothesis, Q
has an approximate chi-squared distribution with
lagMax-lagMin+1-npFree
degrees of freedom.Copyright © 2020 Rogue Wave Software. All rights reserved.