⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cm_mod4_mlik.m

📁 Neural Network in Finance (神经网络在金融界:赢得预言性的优势)全部原码。内容包括预测与估计
💻 M
字号:
function [loglik, yhat, nneuron1, zzsign] = cm_mod4_mlik(beta);
global squasher data1 minx miny maxx maxy malags nwlags i neuronxarg_ygap cthres_ygap neuronxarg_inf cthres_inf neuronxarg_yvol cthres_yvol LAMBDA CMDUM;
% beta(1) = 1 / (1+exp(-beta(1)));
y = data1(:,1);
x = data1(:,2:end);
% zz = .25 * (x(4:end,2)) + .25 * (x(3:end-1,2)) + .25 * (x(2:end-2,2)) + .25 * (x(1:end-3,2));
xfilter(1:3,:) = x(1:3,2);
for j = 4:length(x), junk = hpfilter(x(1:j,2), 1600); xfilter(j,:) = junk(end,:); end;
zz = .25 * (xfilter(4:end,1)) + .25 * (xfilter(3:end-1,1)) + .25 * (xfilter(2:end-2,1)) + .25 * (xfilter(1:end-3,1));
zz1 = diff(zz);
zzm1 =   [ones(4,1); sign(zz1)];
zzm1 = sign(zzm1);
zzsign = zzm1;
[nx, cx] = size(x);
if squasher == 1,
    yy = (y - miny)/(maxy-miny);
    for i = 1:cx, xx(:,i) = (x(:,i)-minx(i))/(maxx(i)-minx(i));
    end
else yy = y; xx = x;
end
if squasher == 1,
    cxarg_yvol = (cthres_yvol-minx(neuronxarg_yvol)) / (maxx(neuronxarg_yvol)-minx(neuronxarg_yvol));
else cxarg_yvol = cthres_yvol;
end
if squasher == 1,
    cxarg_ygap = (cthres_ygap-minx(neuronxarg_ygap)) / (maxx(neuronxarg_ygap)-minx(neuronxarg_ygap));
    cxarg_inf = (cthres_inf-minx(neuronxarg_inf)) / (maxx(neuronxarg_inf)-minx(neuronxarg_inf));
else cxarg_ygap = cthres_ygap; cxarg_inf = cthres_inf;
end


ny = length(yy);
if CMDUM == 0,
neuronx1 = abs(beta(5)) .* (xx(:,neuronxarg_yvol)-cxarg_yvol);   
else neuronx1 = LAMBDA .* (xx(:,neuronxarg_yvol)-cxarg_yvol);   
 
end;
nneuron1 =  (2 ./ (1 + exp(-2 * neuronx1))-1);
if CMDUM == 0,

yhat1 =  xx(:,1:3) * abs(beta(1:3))' + ones(ny,1) * ((beta(4))) + ...
       nneuron1  .* xx(:,neuronxarg_ygap) .* abs(beta(neuronxarg_ygap)) ; 
else yhat1 =  xx(:,1:3) * abs(beta(1:3))' + ones(ny,1) * ((beta(4))) +    nneuron1 .* xx(:,neuronxarg_ygap) .* abs(beta(neuronxarg_ygap)); end;


if malags > 0,
ehat1 = zeros(malags,1);
for i = malags+1:ny, 
EXX = ehat1(i-malags:i-1,:);
yhat1(i,:) =  yhat1(i,:) + beta(6: end) * EXX;
ehat1(i,:) = yy(i,:) - yhat1(i,:);
end
end
if squasher == 1,
    yhat = yhat1 * (maxy-miny) + miny;
else yhat = yhat1;
end;
ehat = y - yhat;
nparm = cx + malags + 3;
error = ehat;  
errorsq = (error .^2);
T = length(yhat); 
sigmavar = sum(errorsq)/ (T-nparm);  
sigmastd = sqrt(sigmavar);
errornorm = error ./ sigmastd;
loglik1 = -.5 * T * log(2 * pi) - .5 * T * log(sigmavar) - .5 *  sum((errornorm).^2) ;
loglik = -loglik1;









⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -