Class LackOfFit
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).
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionstatic 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.
-
Method Details
-
compute
public 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.- Parameters:
nObservations- anintcontaining the number of observations of the stationary time series.correlations- adoublearray of lengthlagMax+1containing the correlation function.npFree- anintscalar specifying the number of free parameters in the formulation of the time series model.npfreemust be greater than or equal to zero and less thanlagMax. Woodfield (1990) recommendsnpFree = p + q.lagMax- anintscalar specifying the maximum lag of the correlation function.- Returns:
- a
doublearray of length 2 with the test statistic, Q, and its p-value, p. Under the null hypothesis, Q has an approximate chi-squared distribution withlagMax-lagMin+1-npFreedegrees of freedom.
-
compute
public 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.- Parameters:
nObservations- anintcontaining the number of observations of the stationary time series.correlations- adoublearray of lengthlagMax+1containing the correlation function.npFree- anintscalar specifying the number of free parameters in the formulation of the time series model.npfreemust be greater than or equal to zero and less thanlagMax. Woodfield (1990) recommendsnpFree = p + q.lagMax- anintscalar specifying the maximum lag of the correlation function.lagMin- anintscalar specifying the minimum lag of the correlation function.lagMincorresponds to the lower bound of summation in the lack of fit test statistic. Default value is 1.- Returns:
- a
doublearray of length 2 with the test statistic, Q, and its p-value, p. Under the null hypothesis, Q has an approximate chi-squared distribution withlagMax-lagMin+1-npFreedegrees of freedom.
-