我已把原始数据及代码都放在附件里了,改下路径可以直接运行,在work.out看到结果。
我用proc Model Solve 的时候,发现只有前面大概五十个观察值对应可以Solve出值,之后解出的值都是相同的,这显然是不正确的。
基本程序大概如下:数据集test的观察值大概有2000个。问题是最终大概第60个观察值之后解出来的R值都一样(错误的),但Execution Error Count 又没显示错误。不知是什么问题,那位大师请赐教。。。
Data test;
input code P ROA1 BPS0 ROA2 BPS1 ROA3 BPS2;
Cards;
1 10.2 0.12 3 0.13 3.5 0.12.5 3.6
......
......
;
Run;
Proc Model FORECAST Data=test noprint;
eq.r=-P+(ROA1-R)*BPS0/((1+R)**1)+(ROA2-R)*BPS1/((1+R)**2)+(ROA3-R)*BPS2/((1+R)**3);
solve R/out=Out Outall;
id code;
run;
quit;