eval_AR_perf.m
上传用户:mozhenmi
上传日期:2008-02-18
资源大小:13k
文件大小:1k
- function [ypred, ll, mse] = eval_AR_perf(coef, C, y, model)
- % Evaluate the performance of an AR model.
- %
- % Inputs
- % coef(:,:,k,m) - coef. matrix to use for k steps back, model m
- % C(:,:,m) - cov. matrix for model m
- % y(:,t) - observation at time t
- % model(t) - which model to use at time t (defaults to 1 if not specified)
- %
- % Outputs
- % ypred(:,t) - the predicted value of y at t based on the evidence thru t-1.
- % ll - log likelihood
- % mse - mean squared error = sum_t d_t . d_t, where d_t = pred(y_t) - y(t)
- [s T] = size(y);
- k = size(coef, 3);
- M = size(coef, 4);
- if nargin<4, model = ones(1, T); end
- ypred = zeros(s, T);
- ypred(:, 1:k) = y(:, 1:k);
- mse = 0;
- ll = 0;
- for j=1:M
- c(j) = log(normal_coef(C(:,:,j)));
- invC(:,:,j) = inv(C(:,:,j));
- end
- coef = reshape(coef, [s s*k M]);
- for t=k+1:T
- m = model(t-k);
- past = y(:,t-1:-1:t-k);
- ypred(:,t) = coef(:, :, m) * past(:);
- d = ypred(:,t) - y(:,t);
- mse = mse + d' * d;
- ll = ll + c(m) - 0.5*(d' * invC(:,:,m) * d);
- end
- mse = mse / (T-k+1);