我想编一个计算pin值的SAS程序
(本来是用matlab 结果数据太大...matlab算极大似然函数的时候直接把函数值记为Inf了...貌似会算出2^2000甚至更大的数 就想试试SAS行不行)
下面是我参考论坛上某朋友的程序写的 运行后没得到结果... 不知道出了什么错误 是不是跟matlab一样会溢出...另外如何在nlp中设置几个变量的初始值?我要令 eta=314;mu=253;alhpa=0.427;delta=0.475;
因为论文时间所剩不多 也没时间细心研究了 所以上来发个贴问问具体该怎么实现比较好 或者有没有哪位朋友有其他更好的建议..(比如哪种语言可以实现这么大的数值的计算?...能直接帮忙弄好程序就更好啦T.T)
前面的数据是我得到的某只股票用于估计的每日买单数和卖单数
data buysell;
input buys sells;
cards;
5478 8114
11021 12184
7341 5045
16442 9928
32189 20470
13985 18144
9081 8783
20193 12249
8770 11959
6928 10369
10703 17096
8374 7414
15227 10970
7440 12079
7636 9049
8505 11548
5518 9217
6940 7244
4143 6495
7595 7538
6148 7248
5618 7903
19943 14273
7096 10782
6139 5932
4419 8389
13540 10542
11480 9149
20402 17942
16258 16231
;
run;
proc nlp data=buysell out=pinest(keep=alpha eta mu);
max loglik;
decvar alpha,delta,eta,mu;
M = min(buys,sells) + max(buys,sells) / 2.0 ;
x = eta / (mu + eta);
bounds 0.0 < eta mu, 0.0 <= alpha delta <= 1.0 ;
loglik = -2.0 * eta + M * log(x) + (buys + sells) * log(mu + eta) +
log( alpha * (1.0 - delta) * exp(-1.0 * mu) * (x ** (sells - M )) +
alpha * delta * exp(-1.0 * mu) * (x ** (buys - M)) +
(1.0 - alpha) * (x ** (buys + sells - M)) ) ;
run;