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

📄 carlosfun.m

📁 Neural Network in Finance (神经网络在金融界:赢得预言性的优势)全部原码。内容包括预测与估计
💻 M
字号:
function [error, yhat, pderiv,neuron3] = carlosfun(beta);
global data1 squasher maxx minx maxy miny malags;
y = data1(:,1);
x = data1(:,2:end);

[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
ny = length(yy);
yhat1(1:malags,:) = yy(1:malags,:);
neuron3(1:malags,:) = .5 * ones(malags,1);
ehat(1:malags,:) = zeros(malags,1);
xx1(1:malags,:) = xx(1:malags,:) * beta(1:cx)';
xx2(1:malags,:) = xx(1:malags,:) * beta(cx+1:2*cx)';
xx11(1:malags,:) = xx1(1:malags,:) + beta(2*cx+1);
xx21(1:malags,:) = xx2(1:malags,:) + beta(2*cx+2);
neuron1(1:malags,:) = 1 ./ (1+exp(-xx11(1:malags,:)));
neuron1(1:malags,:) = 1 ./ (1+exp(-xx21(1:malags,:)));
% for i = 13:ny,
%     neuron3(i,:) =  1 ./(1+ exp(-beta(2*cx+3) * xx(i,end-2)));
%     EXX = ehat(i-malags:i-1,:);
%     xx11(i,:) =  xx(i,:) * beta(1:cx)' + beta(2*cx+1) + beta(2*cx+4:2*cx+15) * EXX;
%     xx21(i,:) =  xx(i,:) * beta(2*cx+1)' + beta(2*cx+2) * beta(2*cx+16: 2*cx+27) * EXX;
%     neuron1(i,:) = 1 ./ (1+ exp(-xx11(i,:)));
%     neuron2(i,:) = 1 ./ (1+ exp(-xx21(i,:)));
%     yhat1(i,:) =  neuron3(i,:) * neuron1(i,:) + (1-neuron3(i,:)) * neuron2(i,:);
%     ehat(i,:) = yy(i,:) - yhat(i,:);
% end


for i = malags+1:ny,
    neuron3(i,:) =  1 ./(1+ exp(-beta(2*cx+3) * xx(i,end-2)));
    EXX = ehat(i-malags:i-1,:);
    xx11(i,:) =  xx(i,:) * beta(1:cx)' + beta(2*cx+1) + beta(2*cx+4:2*cx+3+malags) * EXX;; 
    xx21(i,:) =  xx(i,:) * beta(cx+1:2*cx)' + beta(2*cx+2) + beta(2*cx+4:2*cx+3+malags) * EXX;;
    neuron1(i,:) = 1 ./ (1+ exp(-xx11(i,:)));
    neuron2(i,:) = 1 ./ (1+ exp(-xx21(i,:)));
%   yhat1(i,:) =  neuron3(i,:) * neuron1(i,:) + (1-neuron3(i,:)) * neuron2(i,:) + 1 ./(1+ exp(-beta(2*cx+4:2*cx+3+malags) * EXX));
    yhat1(i,:) =  neuron3(i,:) * neuron1(i,:) + (1-neuron3(i,:)) * neuron2(i,:); 
%    
    ehat(i,:) = yy(i,:) - yhat1(i,:);
end
yhat1 = real(yhat1);
if squasher == 1,
    yhat = yhat1 * (maxy-miny) + miny;
else yhat = yhat1;
end;
nparm = 2 * cx + 3 + malags;
lik = yhat .^ y .* (1-yhat) .* (1-y);
loglik = sum(log(lik));
error = -loglik;
for i = 1:cx,
    pderiv(:,i) =  neuron3 .* neuron1 .* (1-neuron1) * beta(i) + (1-neuron3) .*  neuron2 .* (1-neuron2) * beta(cx+i); 
end;







⌨️ 快捷键说明

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