Home > tsa > mvar.m

# mvar

## PURPOSE

MVAR estimates Multi-Variate AutoRegressive model parameters

## SYNOPSIS

function [ARF,RCF,PE,DC,varargout] = mvar(Y, Pmax, Mode);

## DESCRIPTION

``` MVAR estimates Multi-Variate AutoRegressive model parameters
Several estimation algorithms are implemented, all estimators
can handle data with missing values encoded as NaNs.

[AR,RC,PE] = mvar(Y, p);
[AR,RC,PE] = mvar(Y, p, Mode);

INPUT:
Y     Multivariate data series
p     Model order
Mode     determines estimation algorithm

OUTPUT:
AR    multivariate autoregressive model parameter
RC    reflection coefficients (= -PARCOR coefficients)
PE    remaining error variance

All input and output parameters are organized in columns, one column
corresponds to the parameters of one channel.

Mode determines estimation algorithm.
1:  Correlation Function Estimation method using biased correlation function estimation method
also called the "multichannel Yule-Walker" [1,2]
6:  Correlation Function Estimation method using unbiased correlation function estimation method

2:  Partial Correlation Estimation: Vieira-Morf [2] using unbiased covariance estimates.
In [1] this mode was used and (incorrectly) denominated as Nutall-Strand.
Its the DEFAULT mode; according to [1] it provides the most accurate estimates.
5:  Partial Correlation Estimation: Vieira-Morf [2] using biased covariance estimates.
Yields similar results than Mode=2;

3:  Partial Correlation Estimation: Nutall-Strand [2] (biased correlation function)
7:  Partial Correlation Estimation: Nutall-Strand [2] (unbiased correlation function)
8:  Least-Squares

10:  ARFIT [3]
11:  BURGV [4]

REFERENCES:
[1] A. Schl\"ogl, Comparison of Multivariate Autoregressive Estimators.
Signal processing, Elsevier B.V. (in press).
available at http://dx.doi.org/doi:10.1016/j.sigpro.2005.11.007
[2] S.L. Marple "Digital Spectral Analysis with Applications" Prentice Hall, 1987.
[3] Schneider and Neumaier)
[4] Stijn de Waele, 2003

A multivariate inverse filter can be realized with
[AR,RC,PE] = mvar(Y,P);
e = mvfilter([eye(size(AR,1)),-AR],eye(size(AR,1)),Y);