Как кодировать векторную авторегрессивную модель в matlab?

Модель VAR обобщает одномерную авторегрессивную (AR) модель для нескольких временных рядов. Я хотел бы реализовать модель векторной авторегрессии, которая описывает следующую формулу на основе наблюдения времени t:

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

a (i) = параметры модели €(t) = гауссов шум

Данные, которые я использую, очень большие, поэтому я не буду их публиковать, но одна из вещей, в которых мне нужна помощь, - это вывод матрицы смежности для любых синтетических данных. Вот что у меня есть:

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 ответов

Другие вопросы по тегам