How to code Vector Auto-Regressive Model in matlab?

1.2k views Asked by At

The VAR model generalizes the univariate auto-regressive (AR) model to multiple time series. I would like to implement a Vector Auto-Regression Model that outlines the following formula based on the observation of time t:

x(t) = c + (t-1)∑(i = t + T)* a(i)x(i) + €(t)

a(i) = parameters of the model €(t) = Gaussian noise

The data I'm using is very big so I won't post it, but one of the things I need help with is outputting the adjacency matrix for any synthetic data. This is what I have:

function [ beta, adj,results ] = granger( id, t, X, lambda, lag, param )
%GRANGER Graphical Granger Modeling
% INPUTS:  id = Column with n elements of unique subject identifiers used to indicate
%               measurements from the same subjects.
%           t = Column with n elements of measurement times corresponding to id.
%               NB: AT THE MOMENT ASSUMING EQUISPACED DATA.
%           X = n-by-(p+1) Matrix of covariates corresponding to id and t. 
%          lambda = tunning parameter for the penalty terms.
%          param = Struct of any other parameters you want to pass to your
%               code.
%          lag = value of time lag to look backward from current time.
% OUTPUTS:   bhat  = estimated effects parameters corresponding to X.
%            adj = adjacency matrix among the columns of X.
%            results = Struct of any other results you want to send out
%               from your code.

if nargin<5; param={}; end;

% if ~isfield(param,'maxIt'); param.maxIt = 1000; end %For example, set max iterations as 1000.
% if ~isfield(param,'tol'); param.tol = 0.00001; end; % Convergence tolerance;


a = ucf.x;
b = ucf.y;
end
0

There are 0 answers