[程式] MATLAB GARCH模型對初始值敏感

看板Statistics作者 (黑白照片)時間14年前 (2011/10/26 00:42), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
[軟體程式類別]: 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
文章代碼(AID): #1EfkRTYF (Statistics)