请选择 进入手机版 | 继续访问电脑版
楼主: zhangyanecho
2239 13

[SAS EM] 请教SAS一个程序怎么编 [推广有奖]

  • 1关注
  • 2粉丝

讲师

12%

还不是VIP/贵宾

-

威望
0
论坛币
429 个
通用积分
17.9269
学术水平
2 点
热心指数
2 点
信用等级
1 点
经验
1803 点
帖子
178
精华
0
在线时间
435 小时
注册时间
2009-11-21
最后登录
2024-3-28

zhangyanecho 发表于 2017-6-14 18:12:09 |显示全部楼层 |坛友微信交流群
相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
各位大侠,我想编一个程序。y=(B001101000(t+3)-B001101000(t))/B001201000,该式子在sas中怎么编。B001101000为营业利润指标,B001201000为总资产指标。数据中包括不同年份,不同股票。请问怎么实现?附上我的数据。希望有人帮助解决一下。非常感谢。
二维码

扫码加我 拉你入群

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

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

关键词:非常感谢 各位大侠 营业利润 总资产 程序

a.txt

3.19 MB

zhangyanecho 发表于 2017-6-14 18:13:00 |显示全部楼层 |坛友微信交流群
希望有人能给点提示,非常感谢

使用道具

zhangyanecho 发表于 2017-6-14 18:13:55 |显示全部楼层 |坛友微信交流群
y=(B001101000(t+3)-B001101000(t))/B001201000(t)。是要编这个公式

使用道具

zhangyanecho 发表于 2017-6-15 10:32:35 |显示全部楼层 |坛友微信交流群
顶一下 等待中

使用道具

lava_mb 发表于 2017-6-15 15:44:05 |显示全部楼层 |坛友微信交流群
你的需求再明确一下,看了你的数据,应该是每只股票的季报,2002年以前只有半年报和年报,那你这个t+3到底是什么时间?当年4季度-1季度,还是相隔3个季度,半年报和年报要怎么处理……
方法呢,我想个简陋的,用proc sql进行left join,stkcd相等,时间等于你的业务需求,是可以完成的……
已有 1 人评分经验 论坛币 收起 理由
admin_kefu + 10 + 10 热心帮助其他会员

总评分: 经验 + 10  论坛币 + 10   查看全部评分

使用道具

sqlai 发表于 2017-6-15 20:29:24 |显示全部楼层 |坛友微信交流群
  1. /*1 导入数据*/
  2. proc import datafile="C:\data.csv" dbms=csv out=a;run;

  3. /*2 取出季度标示*/
  4. data a;set a;
  5.         y=year(accper);
  6.         q=qtr(accper);
  7.         run;

  8. /*3 数据对齐:
  9.         因原始数据存在较多缺失,时间间断的情况,需要准备一份完整的时间表,完整的罗列股票代码、年度、季度
  10.         再重新和原始数据进行merge,在时间上重新对齐数据*/
  11. proc sort data=a(Keep=stkcd y)  out=y NODUPKEY; by stkcd y;run;
  12. data date_list;
  13.         set y (in=i1) y(in=i2) y(in=i3) y(in=i4);
  14.         if i1 then Q=1;
  15.         if i2 then Q=2;
  16.         if i3 then Q=3;
  17.         if i4 then Q=4;
  18.         run;
  19. proc sort data=date_list;by stkcd y q;run;

  20. /*4 在数据对齐的基础上,再进行计算就是很轻松的事情了*/
  21. data date_list;
  22.         merge date_list a;by stkcd y q;
  23.         if first.stkcd         then yoy=.;
  24.                                         else do;
  25.                                                 if B001201000 in(., 0) then yoy=.;else yoy=(B001201000-lag3(B001201000 ) )/B001201000-1;
  26.                                                 end;run;
复制代码
已有 1 人评分经验 论坛币 收起 理由
admin_kefu + 20 + 20 热心帮助其他会员

总评分: 经验 + 20  论坛币 + 20   查看全部评分

使用道具

zhangyanecho 发表于 2017-6-15 21:25:12 |显示全部楼层 |坛友微信交流群
sqlai 发表于 2017-6-15 20:29
非常感谢,我试试去

使用道具

zhangyanecho 发表于 2017-6-15 21:30:14 |显示全部楼层 |坛友微信交流群
lava_mb 发表于 2017-6-15 15:44
你的需求再明确一下,看了你的数据,应该是每只股票的季报,2002年以前只有半年报和年报,那你这个t+3到底是 ...
你好,我用后面的季度数据,是相隔3个季度。如果自己和自己合并的话,是不是时间需要标准化啊?期待您的解答。谢谢

使用道具

zhangyanecho 发表于 2017-6-15 21:54:36 |显示全部楼层 |坛友微信交流群
sqlai 发表于 2017-6-15 20:29
你好,非常感谢您的解答。我想用想x(t)与这个式子y=(B001101000(t+3)-B001101000(t))/B001201000(t)得到数作为t年的被解释变量回归分析。按照您的做法算的是滞后的数据,那我是不是还需要重新标准化时间,还是怎么处理啊。还有一个问题就是,我按您给的代码运行算出的Y与我手算的对不上,不知道是不是 yoy=(B001201000-lag3(B001201000 ) )/B001201000-1中B001201000-1的原因。期待您的回复,非常感谢。

使用道具

lava_mb 发表于 2017-6-16 10:50:17 |显示全部楼层 |坛友微信交流群
你看一下这种结果是否符合你的要求……
test.png

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-3-28 19:28