recserar
==============================================
Purpose
----------------
Computes a vector of autoregressive recursive series.
Format
----------------
.. function:: y = recserar(x, y0, rho)
:param x: If simulating an AR process, this would contain the error term and constant if included in the model.
:type x: NxK matrix
:param y0: The starting values for the series.
:type y0: PxK matrix
:param rho: The AR parameters.
:type rho: PxK matrix
:return y: Contains the series.
:rtype y: NxK matrix
Examples
----------------
AR(1) without constant
++++++++++++++++++++++
::
// Starting value for the time series
y0 = 0;
// AR(1) parameter
rho = 0.6;
// Innovations
eps = rndn(10, 1);
// Simulate AR(1) model
y = recserar(eps, y0, rho);
AR(2) with constant
+++++++++++++++++++
::
// Starting value for the time series
y0 = { 0, 0 };
// AR(2) parameters
rho = { 0.6, -0.3 };
// Constant term
const = 1.3;
// Innovations
eps = rndn(10, 1);
// Simulate AR(2) model with constant
y = recserar(eps + const, y0, rho);
Example 3
+++++++++
::
n = 10;
sig = { 1 -.3, -.3 1 };
mu = { 0, 0 };
e = rndMVn(n, mu, sig);
x = ones(n, 1)~rndn(n, 3);
b = 1|2|3|4;
rho = { 0.5, 0.3 };
y0 = zeros(1, 2);
y = recserar(x*b+e, y0, rho);
In this example, two autoregressive series are formed using
simulated data. The general form of the series can be written:
::
y[1,t] = rho[1,1]*y[1,t-1] + x[t,.]*b + e[1,t];
y[2,t] = rho[2,1]*y[2,t-1] + x[t,.]*b + e[2,t];
The error terms (:math:`e[1,t]` and :math:`e[2,t]`) are not individually serially correlated, but
they are contemporaneously correlated with each other. The variance-covariance matrix is :math:`\sigma`.
Remarks
-------
:func:`recserar` is particularly useful in dealing with time series.
Typically, the result would be thought of as :math:`K` vectors of length :math:`N`.
*y0* contains the first :math:`P` values of each of these vectors (thus, these are
prespecified). The remaining elements are constructed by computing a :math:`P^{th}`
order "autoregressive" recursion, with weights given by *a*, and then by
adding the result to the corresponding elements of *x*. That is, the :math:`t^{th}`
row of *y* is given by:
::
y[t,.] = x[t,.] + a[1,.] * y[t-1,.] +...+ a[P,.] * y[t-p,.], t = P + 1,...N
and
::
y[t,.] = y0[t,.], t = 1,...,P
Note that the first :math:`P` rows of *x* are not used.
.. seealso:: Functions :func:`recserVAR`, :func:`recsercp`, :func:`recserrc`