[程式] MATLAB GARCH模型對初始值敏感
[軟體程式類別]:
MATLAB
[程式問題]:
GARCH(1,1) variance equation加入u與h的交叉項作未變量
再用mle 最優化求解,
[軟體熟悉度]:
低(1~3個月)
[問題敘述]:
再用mle 最優化求解,
可是最優參數解對初始值設定非常敏感
只要變動一些些 參數的符號也會跟著變動
有些初始值的設定還會導致無法求解
所以我想問問 是我的程式寫錯了嗎?
其中r,d都是已知的變量
[程式範例]:
function [llf,LogLikelihood]=LLF(para,r,d)
T=length(r);
h=zeros(T,1);
c=para(1);
h(1)=mean((r-ones(T,1)*mean(r)).^2);
u(1:3)=r(1:3)-ones(3,1)*c;
for t=4:T
u(t)=r(t)-c-r(t-1:-1:t-3)'*para(2:4)-para(R+2)*r(t-3)*d(t);
h(t)=para(5)+para(6)*u(t-1)^2+para(7)*h(t-1)+para(8)*d(t)+
para(9)*d(t)*u(t-1)^2+para(10)*d(t)*h(t-1)+
para(11)*d(t)*u(t-1)^2*h(t-1);
end
llf = -sum(log(h(4:T))+((u(4:T)).^2)'./h(4:T));
end
objectionfun = @(para) -LLF(para,r,d);
para0=[-0.001688;0.010819;-0.129009;-0.057876;0;0.15;0.75];
options = optimset('MaxFunEvals',10000000,'MaxIter',100000,'Hessian',
'bfgs','Algorithm','interior-point');
[parae,llfs,exitflag,output] = fminsearch(objectionfun,para0,options);
-----------------------------------------------------------------------------
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 222.29.34.140