CIR模型初始参数的对数似然估计

时间:2013-09-25 19:20:57

标签: matlab

这个

% Optimization using fminsearch
if ~isfield(Model, 'MatlabDisp'), Model.MatlabDisp = 'off'; end;

options = optimset('LargeScale', 'off', 'MaxIter', 300, 'MaxFunEvals',300,'Display',Model.MatlabDisp, 'TolFun', 1e-4, 'TolX', 1e-4, 'TolCon', 1e-4); 
if ~isfield(Model, 'Method'), Model.Method = 'besseli'; end;
if strcmp(Model.Method, 'ncx2pdf')
    [Params, Fval, Exitflag] =  fminsearch(@(Params) CIRobjective2(Params, Model), InitialParams, options);   
else
    [Params, Fval, Exitflag] =  fminsearch(@(Params) CIRobjective1(Params, Model), InitialParams, options);   
end
%tol = 1e-6;
%lb = [ tol,  tol, tol];
%ub = [ inf,  inf, inf];    
%[Params, Fval, Exitflag] = fmincon(@(Params) CIRobjective1(Params, Model),                                                                  
InitialParams, [], [], [], [], lb, ub, [], options);

Results.Params = Params;
Results.Fval = -Fval/Nobs;
Results.Exitflag = Exitflag;

if strcmp(Model.Disp, 'y')
    fprintf('\n alpha = %+3.6f\n mu    = %+3.6f\n sigma = %+3.6f\n', Params(1), Params(2), Params(3));
    fprintf(' log-likelihood = %+3.6f\n', -Fval/Nobs);
end

我有

未定义的函数或方法'mtimes'用于'struct'类型的输入参数。

Error in ==> CIRobjective2 at 26
u = c*exp(-alpha*TimeStep)*DataL;

Error in ==> @(Params)CIRobjective2(Params,Model)


Error in ==> fminsearch at 205
fv(:,1) = funfcn(x,varargin{:});

这是实际的源文件

http://www.mathworks.com/matlabcentral/fileexchange/37297-maximum-likelihood-estimation-of-the-cox-ingersoll-ross-process-the-matlab-implementation/content/CIRestimation.m

你能帮我解释为什么我会收到这些错误吗?

此致 马苏德

1 个答案:

答案 0 :(得分:0)

你确定你把所有的功能都正确并定义得很好吗? 也许你的功能不是正确的道路。

首先尝试初始化参数,定义InitialParams,使其在变量中出现。然后做CIRobjective1然后2然后你可以使用fminsearch进行优化。希望有所帮助。我是matlab的新用户,但在我的论文中使用它。

关心,丽塔。