请教个问题,例如在如下的full_bekk_mvgarch模型中
function [parameters, loglikelihood, Ht, likelihoods, stdresid, stderrors, A, B, scores] = full_bekk_mvgarch(data,p,q, BEKKoptions)
if size(data,2) > size(data,1)
data=data';
end
[t k]=size(data);
k2=k*(k+1)/2;
scalaropt=optimset('fminunc');
scalaropt=optimset(scalaropt,'TolFun',1e-1,'Display','iter','Diagnostics','on','DiffMaxChange',1e-2);
startingparameters=scalar_bekk_mvgarch(data,p,q,scalaropt);
CChol=startingparameters(1:(k*(k+1))/2);
%C=ivech(startingparameters(1:(k*(k+1))/2))*ivech(startingparameters(1:(k*(k+1))/2))';
newA=[];
newB=[];
for i=1:p
newA=[newA diag(ones(k,1))*startingparameters(((k*(k+1))/2)+i)]; %#ok<AGROW>
end
for i=1:q
newB=[newB diag(ones(k,1))*startingparameters(((k*(k+1))/2)+i+p)]; %#ok<AGROW>
end
newA=reshape(newA,k*k*p,1);
newB=reshape(newB,k*k*q,1);
startingparameters=[CChol;newA;newB];
if nargin<=3 || isempty(BEKKoptions)
options=optimset('fminunc');
options.Display='iter';
options.Diagnostics='on';
options.TolX=1e-4;
options.TolFun=1e-4;
options.MaxFunEvals=5000*length(startingparameters);
options.MaxIter=5000*length(startingparameters);
else
options=BEKKoptions;
end
parameters=fminunc('full_bekk_mvgarch_likelihood',startingparameters,options,data,p,q,k,k2,t);
[loglikelihood,likelihoods,Ht]=full_bekk_mvgarch_likelihood(parameters,data,p,q,k,k2,t); %这里的parameters是输入的,也就是说在这之前已经估计出来了,那如果
..........(后面省略) 我自己编了一个似然函数,前面的程序肯定不行了,那该怎么解决呢?
还有就是,参数估计不是在使似然函数最大时估计出来的吗?程序中怎么就没发现max 的痕迹呢?



雷达卡



京公网安备 11010802022788号







