proc nlp tech=NEWRAP outest=nss1 maxtime=120 maxiter=5000000000 maxfunc=12500000000 noprint;
lsq
bd1
bd2
bd3
bd4
bd5
bd6
bd7
bd8
bd9
bd10
bd11
bd12
bd13
bd14
bd15
bd16
bd17
bd18
bd19
bd20
bd21
bd22
bd23
bd24
bd25
bd26
bd27
bd28
bd29
;
parms b0 b1 b2 b3 t1 t2;
bounds
2<=t1<=50,2<=t2<=30,-0.1<b0<0.2,-0.1<b1<0.1,-1<b2<1,-1<b3<1;
Bd1=1/0.2492*102.7*exp(-0.2575*(b0+b1*(1-exp(-0.2575/t1))/(0.2575/t1)+b2*((1-exp(-0.2575/t1))/(0.2575/t1)-exp(-0.2575/t1))+b3*((1-exp(-0.2575/t2))/(0.2575/t2)-exp(-0.2575/t2))))-101.8271*1/0.2492;
…
Bd29=1/0.3606*102.38*exp(-0.3726*(b0+b1*(1-exp(-0.3726/t1))/(0.3726/t1)+b2*((1-exp(-0.3726/t1))/(0.3726/t1)-exp(-0.3726/t1))+b3*((1-exp(-0.3726/t2))/(0.3726/t2)-exp(-0.3726/t2))))-101.1286*1/0.3606;
run;
quit;
上面这个程序,跑不出来结果,初步判断可能原因是:1、代码写错了;2、有些债券的现金流贴现太长了,整个代码有300多行;第一个原因我比对了模板公式,没发现什么问题,第二个原因我暂时无法判断,求助大神。
另:在NSS模型拟合中,采用的是久期导数占总和的比重作为权重,但是这个公式中没有写出总和的比重,想问下是不是需要修改?