全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2380 2
2014-04-11
悬赏 10 个论坛币 未解决
我想编一个计算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;

二维码

扫码加我 拉你入群

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

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

全部回复
2014-4-11 22:35:32
看了另一个帖子说他的nlp报错 https://bbs.pinggu.org/thread-1059711-1-1.html 我估计我的也是同样的问题...错误是一样的
二维码

扫码加我 拉你入群

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

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

2014-4-12 00:13:31
初值的设置问题学会了...T.T 就是这个变量的取值大小怎么办?
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群