У fminsearch слишком много параметров?

Я запускаю этот код в matlab, чтобы минимизировать параметры моей функции real_egarchpartial с помощью fminsearch:

data = xlsread('return_cc_in.xlsx');
SPY = data(:,25);

    dailyrange = xlsread('DR_in.xlsx');
    drSPY= dailyrange(:,28);
    startingVals = [mean(SPY); 0.041246; 0.70121; 0.05; 0.04; 0.45068; -0.1799; 1.0375; 0.06781; 0.070518];
    T = size(SPY,1);

    options = optimset('fminsearch');
    options.Display = 'iter';

    estimates = fminsearch(@real_egarchpartial, startingVals, options, SPY, drSPY);

    [ll, lls, u]=real_egarchpartial(estimates, SPY, drSPY);

И я получаю это сообщение:

Exiting: Maximum number of function evaluations has been exceeded
         - increase MaxFunEvals option. 

Я поставил исходные начальные значения. Поэтому я предположил, что они исправляют. Я использовал fminsearch, а не fmincon, потому что моя функция не имеет ограничений, а с fminunc моя функция получает много красных сообщений. функция real_egarchpartial выглядит следующим образом:

function [ll,lls,lh] = real_egarchpartial(parameters, data, x_rk)
mu = parameters(1);
omega = parameters(2);
beta = parameters(3);
tau1 = parameters(4);
tau2 = parameters(5);
gamma = parameters(6);
csi = parameters(7);
phi = parameters(8);
delta1 = parameters(9);
delta2 = parameters(10);

%Data and h are T by 1 vectors
T = size(data,1);
eps = data-mu;
lh = zeros(T,1);
h = zeros(T,1);
u = zeros(T,1);

%Must use a back Cast to start the algorithm
h(1)=var(data);
lh(1) = log(h(1));
z= eps/sqrt(h(1));
u(1) = rand(1);

lxRK = log(x_rk);
for t = 2:T;
   lh(t) = omega + beta*lh(t-1) + tau1*z(t-1) + tau2*((z(t-1).^2)-1)+ gamma*u(t-1);
   h(t)=exp(lh(t));
   z = eps/sqrt(h(t));
end
for t = 2:T
    u(t)= lxRK(t) - csi - phi*h(t) - delta1*z(t) - delta2*((z(t).^2)-1);
end 
lls = 0.5*(log(2*pi) + lh + eps.^2./h);
ll = sum(lls);

Может кто-нибудь объяснить, что не так? Есть ли другая функция, более эффективная для моей оценки? Любая помощь будет оценена! Спасибо.

0 ответов

Другие вопросы по тегам