📄 tvp_beta.m
字号:
function [beta, ferror] = tvp_beta(parm,y,x)% PURPOSE: generate tvp model betas and forecast error variance% given maximum likelihood estimates% -------------------------------------------------------------% USAGE: [beta ferror] = tvp_beta(parm,y,x)% where: parm = a vector of maximum likelihood estimates% y = data vector% x = data matrix% -------------------------------------------------------------% RETURNS: beta = (Txk) matrix of tvp beta estimates% ferror = (Tx2) matrix with forecast error and% conditional variance % -------------------------------------------------------------n = length(y);k = length(parm) - 1;start = 2*k+1;lik = 0;beta = zeros(n,k);ferror = zeros(n,2);sige = parm(1);sigb = zeros(k,1);for i=1:k;sigb(i,1) = parm(i+1,1);end;f = eye(k);rr = sige.^2;qq = diag(sigb.*sigb);betall = zeros(k,1);pll = eye(k)*50;for iter=1:n;xt = x(iter,:);yt = y(iter,1); betatl = f*betall;ptl = f*pll*f' + qq;fcast = yt - xt*betatl;ss = xt*ptl*xt' + rr;betatt = betatl + (ptl*xt'/ss)*fcast;ptt = (eye(k) - (ptl*xt'/ss)*xt)*ptl;ferror(iter,:) = [fcast ss];beta(iter,:) = betatl'; if iter >= start lik = lik + 0.5*(log(2*pi*ss) + (fcast.^2)/ss); end;betall = betatt;pll = ptt;end; lik
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -