public class AR
extends java.lang.Object
implements java.io.Serializable
Contrary to the moving-average (MA) model, the autoregressive model is not always stationary as it may contain a unit root.
The notation AR(p)
indicates an autoregressive
model of order p. For an AR(p)
model to be weakly stationary,
the inverses of the roots of the characteristic polynomial must be less
than 1 in modulus.
Two general approaches are available for determining the order p. The first approach is to use the partial autocorrelation function, and the second approach is to use some information criteria.
Autoregression is a good start point for more complicated models. They often fit quite well (don’t need the MA terms). And the fitting process is fast (MLEs require some iterations). In applications, easily fitting autoregressions is important for obtaining initial values of parameters and in getting estimates of the error process. Least squares is a popular choice, as is the Yule-Walker procedure. Unlike the Yule-Walker procedure, least squares can produce a non-stationary fitted model. Both the Yule-Walker and least squares estimators are non-iterative and consistent, so they can be used as starting values for iterative methods like MLE.
Modifier and Type | Class and Description |
---|---|
static class |
AR.Method
The fitting method.
|
Constructor and Description |
---|
AR(double[] x,
double[] ar,
double b,
AR.Method method)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
double |
adjustedRSquared()
Returns adjusted R2 statistic.
|
double[] |
ar()
Returns the linear coefficients of AR (without intercept).
|
int |
df()
Returns the degree-of-freedom of residual standard error.
|
static AR |
fit(double[] x,
int p)
Fits an autoregressive model with Yule-Walker procedure.
|
double[] |
fittedValues()
Returns the fitted values.
|
double |
forecast()
Returns 1-step ahead forecast.
|
double[] |
forecast(int l)
Returns l-step ahead forecast.
|
double |
intercept()
Returns the intercept.
|
double |
mean()
Returns the mean of time series.
|
static AR |
ols(double[] x,
int p)
Fits an autoregressive model with least squares method.
|
static AR |
ols(double[] x,
int p,
boolean stderr)
Fits an autoregressive model with least squares method.
|
int |
p()
Returns the order of AR.
|
double[] |
residuals()
Returns the residuals, that is response minus fitted values.
|
double |
RSquared()
Returns R2 statistic.
|
double |
RSS()
Returns the residual sum of squares.
|
java.lang.String |
toString() |
double[][] |
ttest()
Returns the t-test of the coefficients (including intercept).
|
double |
variance()
Returns the residual variance.
|
double[] |
x()
Returns the time series.
|
public AR(double[] x, double[] ar, double b, AR.Method method)
x
- the time seriesar
- the estimated weight parameters of AR(p).b
- the intercept.method
- the fitting method.public double[] x()
public double mean()
public int p()
public double[][] ttest()
public double[] ar()
public double intercept()
public double[] residuals()
public double[] fittedValues()
public double RSS()
public double variance()
public int df()
public double RSquared()
In the case of ordinary least-squares regression, R2 increases as we increase the number of variables in the model (R2 will not decrease). This illustrates a drawback to one possible use of R2, where one might try to include more variables in the model until "there is no more improvement". This leads to the alternative approach of looking at the adjusted R2.
public double adjustedRSquared()
public static AR fit(double[] x, int p)
x
- the time series.p
- the order.public static AR ols(double[] x, int p)
x
- the time series.p
- the order.public static AR ols(double[] x, int p, boolean stderr)
x
- the time series.p
- the order.stderr
- the flag if estimate the standard errors of parameters.public double forecast()
public double[] forecast(int l)
public java.lang.String toString()
toString
in class java.lang.Object