Contents
function [lf,vc] = neglog_GLS(b,nobs,X,maxlag,x1,x2,d,treshM1,treshV1)
Parameters in variance and neurons
Omega11 = [b(1) 0 0 0 0 0 0;
b(2) b(3) 0 0 0 0 0;
b(4) b(5) b(6) 0 0 0 0;
b(7) b(8) b(9) b(10) 0 0 0;
b(11) b(12) b(13) b(14) b(15) 0 0;
b(16) b(17) b(18) b(19) b(20) b(21) 0;
b(22) b(23) b(24) b(25) b(26) b(27) b(28)];
Omega22 = [b(29) 0 0 0 0 0 0;
b(30) b(31) 0 0 0 0 0;
b(32) b(33) b(34) 0 0 0 0;
b(35) b(36) b(37) b(38) 0 0 0;
b(39) b(40) b(41) b(42) b(43) 0 0;
b(44) b(45) b(46) b(47) b(48) b(49) 0;
b(50) b(51) b(52) b(53) b(54) b(55) b(56)];
Omega33 = [b(57) 0 0 0 0 0 0;
b(58) b(59) 0 0 0 0 0;
b(60) b(61) b(62) 0 0 0 0;
b(63) b(64) b(65) b(66) 0 0 0;
b(67) b(68) b(69) b(70) b(71) 0 0;
b(72) b(73) b(74) b(75) b(76) b(77) 0;
b(78) b(79) b(80) b(81) b(82) b(83) b(84)];
Omega44 = [b(85) 0 0 0 0 0 0;
b(86) b(87) 0 0 0 0 0;
b(88) b(89) b(90) 0 0 0 0;
b(91) b(92) b(93) b(94) 0 0 0;
b(95) b(96) b(97) b(98) b(99) 0 0;
b(100) b(101) b(102) b(103) b(104) b(105) 0;
b(106) b(107) b(108) b(109) b(110) b(111) b(112)];
slopelogM = b(113);
slopelogV = b(114);
slopegamM = b(115);
slopegamV = b(116);
Not enough input arguments.
Error in neglog_GLS (line 7)
Omega11 = [b(1) 0 0 0 0 0 0;
Constracting bigX matrix
Y_t=X(maxlag+1:nobs,:);
[T,Nvar]=size(Y_t);
bigX=[];
for i=1:maxlag
bigX=[bigX X(maxlag+1-i:end-i,1:Nvar)];
end
bigX=[ones(size(bigX,1),1) bigX];
wM1 = (1/( 1 + exp(-slopelogM*(x1(maxlag+1-d:nobs-d,1) - treshM1) ) ))';
wM2 = gammainc(x2(maxlag+1-d:nobs-d,1),slopegamM);
wV1 = (1/( 1 + exp(-slopelogV*(x1(maxlag+1-d:nobs-d,1) - treshV1) ) ))';
wV2 = gammainc(x2(maxlag+1-d:nobs-d,1),slopegamV);
d1 = (1-wM1).*(1-wM2);
d2 = wM1.*(1-wM2);
d3 = wM2.*(1-wM1);
d4 = wM2.*wM1;
XM=[d1.*bigX d2.*bigX d3.*bigX d4.*bigX];
cX=size(XM,2);
GLS
num0=0;
den0=0;
for t=1:T
wgtM=(1-wV2(t,1))*((1-wV1(t,1))*(Omega11*Omega11')+...
wV1(t,1)*(Omega22*Omega22')) +...
wV2(t,1)*((1-wV1(t,1))*(Omega33*Omega33') +...
wV1(t,1)*(Omega44*Omega44'));
den0 = den0 + kron(wgtM,XM(t,:)'* XM(t,:));
num0 = num0 + vec(XM(t,:)'*Y_t(t,:)*wgtM);
vc(:,:,t) = wgtM;
detvc(t) = det(wgtM);
end
betaK=pinv(den0)*num0;
betaK1=unvec(betaK,cX,Nvar);
v=Y_t-XM*betaK1;
k=Nvar;
for t = 1:nobs-maxlag
lt(t) = - k*0.5*log(2*pi) - 0.5*log(detvc(t)) - 0.5*v(t,:)*inv(vc(:,:,t))*v(t,:)';
end
lf = - mean( lt );
end