楼主: shengshaoxu4
1567 1

[问答] matlab程序 最大似然法 CIR估计 [推广有奖]

  • 0关注
  • 0粉丝

高中生

7%

还不是VIP/贵宾

-

威望
0
论坛币
134 个
通用积分
0.0172
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
126 点
帖子
3
精华
0
在线时间
42 小时
注册时间
2017-4-3
最后登录
2020-8-6

楼主
shengshaoxu4 发表于 2020-5-13 13:41:40 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
哪位大神能帮着看一下对不对
用最大似然法求CIR参数
Model.dett = 1/360;
Nobs = length (Model.Data);
r = Model.Data(1:Nobs-1);
dr = diff(Model.Data)./r.^0.5;
reg = [Model.dett./r.^0.5, Model.dett.*r.^0.5];
drift = reg\dr;
res = reg*drift-dr;
alpha = -drift(2);
mu = -drift(1)/drift(2);
sigma = sqrt(var(res, 1)/ Model.dett);
Params = [alpha mu sigma];

Data = Model.Data;
Nobs = length(Data);
DataA = Data(2:Nobs);
DataB = Data(1:Nobs-1);

dett=Model.dett;
alpha = Params(1);
mu = Params (2);
sigma = Params(3);
c=2*alpha/(sigma^2*(1-exp(-alpha*dett)));
q=2*alpha*mu/sigma^2-1;
u=c*exp(-alpha*dett)*DataB;
v=c*DataA;

nc=2*u;
df=2*q+2;
s=2*v;

gpdf = ncx2pdf(s, df, nc);
ppdf = 2*c*gpdf;
lnL = sum(-log(ppdf));

Nobs = length (Model.Data);
z=2*sqrt(u.*v);
bf=besseli(q,z,1);
lnM=-(Nobs-1)*log(c)+sum(u+v-0.5*q*log(v./u)-log(bf)-z);

InitialParams = Params;
if ~isfield(Model,'MatlabDisp'), Model.MatlabDisp = 'off';end;
options = optimset('LargeScale','off', 'MaxIter', 300, 'MaxFunEvals',300, 'Display', Model.MatlabDisp, 'TolFun', 1e-6, 'TolX', 1e-4, 'TolCon', 1e-6);
if ~isfield(Model,'Method'), Model.Method = 'besseli';end;
if strcmp(Model.Method, 'ncx2pdf')
    [Params, Fval, Exitflag] = fminsearch(@(Params) lnL, InitialParams,options);
else
    [Params, Fval, Exitflag] = fminsearch(@(Params) lnM, InitialParams,options);
end
Objvalue = [Fval, Exitflag];
outParams = [Params(1),Params(2),Params(3)];

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝


沙发
黄明宇 学生认证  发表于 2024-9-29 08:41:04
您好,请问您有原始数据吗?

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-16 17:04