ar
Fit Autoregressive Models to Time Series
Description
Fit an autoregressive time series model to the data, by default selecting the complexity by AIC.
Usage
ar(x, aic = TRUE, order.max = NULL, method = c("yule-walker", "burg", "ols", "mle", "yw"), na.action, series, ...) ar.burg(x, ...) ## Default S3 method: ar.burg(x, aic = TRUE, order.max = NULL, na.action = na.fail, demean = TRUE, series, var.method = 1, ...) ## S3 method for class 'mts' ar.burg(x, aic = TRUE, order.max = NULL, na.action = na.fail, demean = TRUE, series, var.method = 1, ...) ar.yw(x, ...) ## Default S3 method: ar.yw(x, aic = TRUE, order.max = NULL, na.action = na.fail, demean = TRUE, series, ...) ## S3 method for class 'mts' ar.yw(x, aic = TRUE, order.max = NULL, na.action = na.fail, demean = TRUE, series, var.method = 1, ...) ar.mle(x, aic = TRUE, order.max = NULL, na.action = na.fail, demean = TRUE, series, ...) ## S3 method for class 'ar' predict(object, newdata, n.ahead = 1, se.fit = TRUE, ...)
Arguments
x | a univariate or multivariate time series. |
aic |
|
order.max | maximum order (or order) of model to fit. Defaults to the smaller of N-1 and 10*log10(N) where N is the number of non-missing observations except for |
method | character string specifying the method to fit the model. Must be one of the strings in the default argument (the first few characters are sufficient). Defaults to |
na.action | function to be called to handle missing values. Currently, via |
demean | should a mean be estimated during fitting? |
series | names for the series. Defaults to |
var.method | the method to estimate the innovations variance (see ‘Details’). |
... | additional arguments for specific methods. |
object | a fit from |
newdata | data to which to apply the prediction. |
n.ahead | number of steps ahead at which to predict. |
se.fit | logical: return estimated standard errors of the prediction error? |
Details
For definiteness, note that the AR coefficients have the sign in
x[t] - m = a[1]*(x[t-1] - m) + … + a[p]*(x[t-p] - m) + e[t]
ar
is just a wrapper for the functions ar.yw
, ar.burg
, ar.ols
and ar.mle
.
Order selection is done by AIC if aic
is true. This is problematic, as of the methods here only ar.mle
performs true maximum likelihood estimation. The AIC is computed as if the variance estimate were the MLE, omitting the determinant term from the likelihood. Note that this is not the same as the Gaussian likelihood evaluated at the estimated parameter values. In ar.yw
the variance matrix of the innovations is computed from the fitted coefficients and the autocovariance of x
.
ar.burg
allows two methods to estimate the innovations variance and hence AIC. Method 1 is to use the update given by the Levinson-Durbin recursion (Brockwell and Davis, 1991, (8.2.6) on page 242), and follows S-PLUS. Method 2 is the mean of the sum of squares of the forward and backward prediction errors (as in Brockwell and Davis, 1996, page 145). Percival and Walden (1998) discuss both. In the multivariate case the estimated coefficients will depend (slightly) on the variance estimation method.
Remember that ar
includes by default a constant in the model, by removing the overall mean of x
before fitting the AR model, or (ar.mle
) estimating a constant to subtract.
Value
For ar
and its methods a list of class "ar"
with the following elements:
order | The order of the fitted model. This is chosen by minimizing the AIC if |
ar | Estimated autoregression coefficients for the fitted model. |
var.pred | The prediction variance: an estimate of the portion of the variance of the time series that is not explained by the autoregressive model. |
x.mean | The estimated mean of the series used in fitting and for use in prediction. |
x.intercept | ( |
aic | The differences in AIC between each model and the best-fitting model. Note that the latter can have an AIC of |
n.used | The number of observations in the time series, including missing. |
n.obs | The number of non-missing observations in the time series. |
order.max | The value of the |
partialacf | The estimate of the partial autocorrelation function up to lag |
resid | residuals from the fitted model, conditioning on the first |
method | The value of the |
series | The name(s) of the time series. |
frequency | The frequency of the time series. |
call | The matched call. |
asy.var.coef | (univariate case, |
For predict.ar
, a time series of predictions, or if se.fit = TRUE
, a list with components pred
, the predictions, and se
, the estimated standard errors. Both components are time series.
Note
Only the univariate case of ar.mle
is implemented.
Fitting by method="mle"
to long series can be very slow.
If x
contains missing values, see NA
, also consider using arima()
, possibly with method = "ML"
.
Author(s)
Martyn Plummer. Univariate case of ar.yw
, ar.mle
and C code for univariate case of ar.burg
by B. D. Ripley.
References
Brockwell, P. J. and Davis, R. A. (1991). Time Series and Forecasting Methods, second edition. Springer, New York. Section 11.4.
Brockwell, P. J. and Davis, R. A. (1996). Introduction to Time Series and Forecasting. Springer, New York. Sections 5.1 and 7.6.
Percival, D. P. and Walden, A. T. (1998). Spectral Analysis for Physical Applications. Cambridge University Press.
Whittle, P. (1963). On the fitting of multivariate autoregressions and the approximate canonical factorization of a spectral density matrix. Biometrika, 40, 129–134. doi: 10.2307/2333753.
See Also
ar.ols
, arima
for ARMA models; acf2AR
, for AR construction from the ACF.
arima.sim
for simulation of AR processes.
Examples
ar(lh) ar(lh, method = "burg") ar(lh, method = "ols") ar(lh, FALSE, 4) # fit ar(4) (sunspot.ar <- ar(sunspot.year)) predict(sunspot.ar, n.ahead = 25) ## try the other methods too ar(ts.union(BJsales, BJsales.lead)) ## Burg is quite different here, as is OLS (see ar.ols) ar(ts.union(BJsales, BJsales.lead), method = "burg")
Copyright (©) 1999–2012 R Foundation for Statistical Computing.
Licensed under the GNU General Public License.