ImageVerifierCode 换一换
格式:PPT , 页数:92 ,大小:910KB ,
资源ID:14187014      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/14187014.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(sas_在财务、会计研究中的运用.ppt)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

sas_在财务、会计研究中的运用.ppt

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,会计与财务研究中常见问题的,SAS,实现,会计与财务研究中的常用软件,SAS,-,面向多数据处理,功能强大,但上手难度较大;,-,识别汉字;,-,特别适合于数据的初步整理阶段(程序可保存,容易再现历史);,STATA,-,软件小巧,便于安装,且上手较容易;,-,回归和检验功能非常强大;,-,升级快,命令包可以随时在网上下载,支持自我学习;,研究实践:,SAS,(数据整理),+STATA,(回归检验),会计与财务研究中的常用软件,会计研究中的,STATA,运用,-Clive Lennox,的个人网站,ihom

2、e.ust.hk/accl/Phd_teaching.htm,-,为中山大学会计系所授课程,课件和演示用数据,课程主要内容,SAS,的一些基本操作;,分组回归程序:计算,DA,;,CAR,程序:不使用宏和使用宏;,计算股票年度业绩,RET,的程序;,Proc SQL,:多表合并程序,-,配对程序;,参考书,高惠璇等编译,,SAS,系统,BASE SAS,软件使用手册,中国统计出版社,,1997,;,高惠璇等编译,,SAS,系统,SAS/STAT,软件使用手册,中国统计出版社,,1997,;,这两本书类似于字典,用来查,而不是用来读;,学,SAS,的最佳方法:,-,对照已有的程序和数据一步一步地

3、跑,碰到不懂的命令(有时可以不求甚解),便去查书;,SAS,的基本操作,创建新的数据集并输出,-,打开,SAS,,在编辑器中写入程序:,data wghtclub;input idno 1-4 name$6-24 team$strtwght endwght;loss=strtwght-endwght;cards;1023 David Shaw red 189 165 1049 Amelia Serrano yellow 145 124 1219 Alan Nance red210 192 1246 Ravi Sinha yellow 194 177 1078 Ashley McKnight r

4、ed127 118 1221 Jim Brown yellow 220.1095 Susan Stewart blue135 127 1157 Rose Collins green155 141 1331 Jason Schock blue187 172 1067 Kanoko Nagasakagreen135 122 1251 Richard Rose blue181 166,;,run;proc print data=wghtclub;title Fitness Center Weight Club;run;,-,结果:在,SAS,逻辑库的,Work,中,就会出现,wghtclub,数据集

5、SAS,的基本操作,将,EXCEL,数据导入,SAS,-,比如,要将,H,盘,SAS,目录中的,profit.xls,文件导入,SAS,,并命名为,profit,;,-,打开,SAS,,在编辑器中写入程序:,proc import,out=profit datafile=H:SASprofit.xls,dbms=excel2000 replace;,run;,-,结果:在,SAS,逻辑库的,Work,中,就会出现,profit,数据集;,SAS,的基本操作,右键点开,profit,数据集查看数据集情况;,将,Accper,转变成年度;,data,profit,;set,profit,;,y

6、ear,=substr(,accper,1,4)+0;,run;,Substr,:文本截取命令,即对,Accper,的第,1,个字符开始,取,4,个字符;如,accper,的一个观测值是,1991-12-31,,则,substr(accper,1,4),就为,1991,,而,Substr(accper,6,2),则为,12.,将文本变量转化为数值变量,直接让文本变量加,0,即可;,Data x2;set x1;,对,x1,数据进行加工,然后保存为,X2,;,SAS,的基本操作,数据排序,-,对,profit,数据按照,stkcd,和,year,进行排序;,proc sort,data=prof

7、it,nodupkey;,by stkcd year;,run;,变量改名,data profit1;set profit;,rename stkcd=code;,run;,SAS,的基本操作,数据横向合并,-,比如,要将,Profit,和,solvency,进行,merge:,先将,solvency.xls,文件导入,SAS,proc import,out=solvency datafile=“H:SASsolvency.xls,dbms=excel2000 replace;,run;,data,solvency;set solvency;,year=substr(accper,1,4)+0

8、run;,proc sort,;by stkcd year;run;,在对两个或多个数据集进行,merge,时,需,要首先按照关键变量,(,如公司代码和年度),进行排序;,省略时,默认对最近的数据集进行排序;,SAS,的基本操作,数据横向合并,data fin_ratio;,merge,profit(in=a)solvency;,by stkcd year;,if a;,run;,注意:,data x1;merge tmp1(in=a)tmp2;by var1 var2;if a;run,-,表示已,tmp1,为基础进行合并,合并后的数据集样本数同,tmp1,相同;,data x1;mer

9、ge tmp1 tmp2;by var1 var2;run,-,包括了,tmp1,和,tmp2,的所有观测值;,data x1;merge tmp1(in=a)tmp2(in=b);by var1 var2;if a=1 and b=1;run,-,只包括,tmp1,和,tmp2,中共有的观测值;,SAS,的基本操作,纵向合并(,append,),data x1;set tmp1 tmp2;,Run;,-SAS,自己会去找对应的变量;,SAS,的基本操作,产生新的虚拟变量,比如,要从,fin_ratio,产生一个,2006,以后的虚拟变量,即年度在,2006,年后的,取值为,1,,否则为,0,

10、则:,data fin_ratio;set fin_ratio;,after2006=0;,if,year=2006,then,after2006=1;,run;,SAS,的基本操作,剔除变量空缺的观测值,;,CSMAR,数据集中,有些变量空缺,导入,SAS,为,“,.,”,,有些无点,为一个空格,则可以通过如下命令剔除这些数据缺失的观测值,:,比如,希望剔除,fin_ratio,数据中,,ROS,缺失的样本;,proc sort data=fin_ratio;by ros;run;,data tmp1;set fin_ratio;,if ros=.or ros=then delete;,r

11、un;,SAS,的基本操作,假如要把,ROS,ROA,ROE,的缺失样本同时删除,:,data tmp2;set fin_ratio;,if ros+roa+roe=.then delete;,run;,SAS,的一些基本算符:,*,/=,等于,=,不等于,=,SAS,的函数分类可以参见高惠璇,SAS BASE 1997 pp.70-74,SAS,的基本操作,SAS,日期函数,在,CSMAR,的数据库中,导出的日期文件一般为,yyyy-mm-dd,,如,1999-12-31,日,这是一个文本格式,那么,如何将其转化为标准的日期格式呢?,比如,我们经常要计算公司上市年龄,上市公司年龄等于各个财政

12、年度末减去,IPO,日期所间隔的天数,然后除于,365,得到上市年龄,比如,一个公司,1995-05-23,日,IPO,,则,2007,年,12,月,31,日时,他的上市年龄多少?,SAS,的基本操作,SAS,日期函数,-SAS,日期值函数:,Mdy(month,day,year);,如,mdy(12,31,1991)=11687,,,11687,代表,1991-12-31,日同,1960-1-1,所间隔的天数;,-,还原出,sas,日期值的函数:,假定,date,是一个,SAS,日期值,则,year(date),得到年,,month(date),得到月,,day(date),得到日;,-,现

13、在,我们要计算,Fin_ratio,数据集中,各公司财政年末同,1990-05-07,(假定所有公司,IPO,日期都是这天)的时间距离;,SAS,的基本操作,SAS,日期函数,data tmp1;set fin_ratio(keep=stkcd accper ros);,ipodate=mdy(5,7,1990);,run;,data tmp2;set tmp1;,fiscal_year=substr(accper,1,4)+0;,fiscal_month=substr(accper,6,2)+0;,fiscal_day=substr(accper,9,2)+0;,fiscaldate=mdy

14、fiscal_month,fiscal_day,fiscal_year);,age=(fiscaldate-ipodate)/365;,run;,对数据进行,winsorize,处理,任务:对,fin_ratio,中的,ROS,,,ROE,ROA,,,Current,和,Acid,按上下,1%,进行,winsorize,处理;,data tmp1;set fin_ratio;d=1;run;,proc means noprint;,var roa roe ros current acid;,by d;,output out=tmp2(drop=_freq_ _type_)p1=x1-x5 p

15、99=y1-y5;,Proc means:,对数据进行描述性统计;,noprint:,统计结果不在,SAS,中显示;,Var:,指定需要分析的变量;,by:,按什么条件进行分析(,e.g.,by year,分年度进行分析),;,Output out=tmp2,:将分析结果保存于,tmp2,中;,p1,:变量,1,分位数的值,p1=x1-x5:5,个变量,1,分位数的值(,-,不是减号);,p99:,变量,99,分位数的值;,对数据进行,winsorize,处理,data tmp3;,merge tmp1 tmp2;by d;,array z1:5 roa roe ros current aci

16、d;,array x1:5 x1-x5;array y1:5 y1-y5;,do i=1 to 5;,if ziyi then zi=yi;,end;drop i d x1-x5 y1-y5;,run;,Winsorize,的原理:如果一个样本某变量的值大于该变量的,99,分位数,则该样本的值被强制指定为,99,分位数的值;类似的,如果一个样本某变量的值小于该变量的,1,分位数,则该样本该变量的值被强制指定为,1,分位数的值;,Array:,指定一组变量(向量),;,如这里:,z1,便为,roa,x1,为,x1,即,roa,的,1,分位数;,y1,为,y1,即,roa99,分位数;,由于需要,

17、winsorize,五个变量,因此需要循环,5,次;,对样本进行描述性统计,希望对一组样本进行描述性统计,包括均值、中位数、标准差等,可以采用,proc means,和,proc univariate,模块;,比如,希望对,fin_ratio,进行描述性统计:,proc means,data=fin_ratio;,var,roa roe ros current acid after2006;,run;,对样本进行描述性统计,如果希望按年度或按行业分组进行描述性统计:,proc sort data=fin_ratio;,by year indcd;run;,proc means data=fin

18、ratio;,var roa roe ros current acid after2006;,by year indcd;,run;,对样本进行描述性统计,如果希望保存每组样本的某个统计量(如均值,中位数或者标准差),则可以使用如下程序:,比如,希望计算,1990-2006,年按年和行业均值(中位数)调整后的,ROA,和,ROS,,则程序如下:,*由于,indcd,行业分类太细,我们只想使用,22,个行业,即,C,类分到二级代码,其余都使用一级代码,data tmp1;set fin_ratio(keep=stkcd year indcd roa ros);,if substr(indcd,

19、1,1)=C then ind=substr(indcd,1,2);,if substr(indcd,1,1)=C then ind=substr(indcd,1,1);,drop indcd;,run;,对样本进行描述性统计,*,产生各年、各行业,ROA,和,ROS,的均值和中位数,;,proc sort data=tmp1;by year ind;run;,proc means,noprint,;,var roa ros;,by year ind;,output,out,=tmp2,mean,=mean_roa mean_ros,median,=median_roa median_ros;

20、run;,对样本进行描述性统计,*,合并,tm1,和,tmp2,,以计算均值,中位数调整后的,roa,和,ros;,data tmp3;merge tmp1 tmp2;,by year ind;,run;,data tmp4;set tmp3;,roa_mean_adj=roa-mean_roa;,roa_median_adj=roa-median_roa;,ros_mean_adj=ros-mean_ros;,ros_median_adj=ros-median_ros;,run;,对样本进行描述性统计,如果只想看看样本更全面的统计变量,可以使用,proc univariate,命令,这个命

21、令还可以顺带检验样本的均值(中位数)是否异于,0,;,proc univariate data=fin_ratio;,var ros roa;,run;,计算,Discretion accruals,修正的,Jones,模型(,see.Bartov et al.,2001,JAE,),-,首先计算总应计利润,(ACCA):ACCA=,(,t,年营业利润,t,年经营现金流量),/At-1,,然后分年度、分行业对如下模型进行回归:,计算,Discretion accruals,业绩调整的,DA,模型,计算,DA,的,SAS,程序,假定我们已经有了,1998-2008,年所有,A,股上市公司的以下数

22、据:总资产,TA,,营业收入,REV,固定资产,PPE,,应收账款,REC,,营业利润,Earnings,和经营现金流量,OCF,,以及公司代码、年度和行业,这些数据已经做成名为,raw_em,的,SAS,数据集。,计算,DA,的程序:,step1:,调入,raw_em,数据集,libname,dd,“,H:SAS;,data tmp1;set dd.raw_em;run;,Step2:,计算相关变量:,-,先产生,TA,,,REV,和,REC,的滞后(上年度)变量(滞后变量的结果将导致样本量减少,1,年);,-,然后合并,计算相关变量;,计算,DA,的,SAS,程序,data tmp2;se

23、t tmp1(keep=stkcd year ta rev rec);,year=year+1;,rename ta=pre_ta rev=pre_rev rec=pre_rec;run;,data tmp3;merge tmp1(in=a)tmp2;,by stkcd year;if a;run;,data tmp3;set tmp3;,acca=(earnings-ocf)/pre_ta;,a1=1/pre_ta;,delt_rev=(rev-pre_rev)/pre_ta;,ppe_ta=ppe/pre_ta;,delt_rec=(rec-pre_rec)/pre_ta;,run;,产生

24、滞后变量,合并,计算相关变量,计算,DA,的,SAS,程序,Step 3,:对计算好的变量进行,winsorize,处理(上下,1%,),:,data tmp4;set tmp3(keep=stkcd year indcode acca a1 delt_rev ppe_ta delt_rec roa);,d=1;where year1998;run;,proc means,noprint;,var acca a1 delt_rev ppe_ta delt_rec roa;by d;,output out=tmp5(drop=_freq_ _type_)p1=x1-x6 p99=y1-y6;,d

25、ata tmp6;,merge tmp4 tmp5;by d;,array z1:6 acca a1 delt_rev ppe_ta delt_rec roa;,array x1:6 x1-x6;array y1:6 y1-y6;,do i=1 to 6;,if ziyi then zi=yi;,end;drop i d x1-x6 y1-y6;,run;,计算,DA,的,SAS,程序,Step 4,:计算估计的,Jones,模型的系数,proc sort;by year indcode;run;,proc reg,data=tmp6,outest,=tmp7;,model,acca=a1 d

26、elt_rev ppe_ta/,noint,adjrsq;,by year indcode;,run;,outest:,把回归模型的估计结果(参数)保存在,tmp7,文件之中;,noint:,不带截距项回归;,by year indcode,:按年,-,行业分组进行回归;,计算,DA,的,SAS,程序,data tmp8;set tmp7;,ea1=a1;,ea2=delt_rev;,ea3=ppe_ta;,n=_p_+_edf_;,keep year indcode ea1 ea2 ea3 n _adjrsq_;,run;,data tmp8;set tmp8;,where n=5;run;

27、proc sort;by year indcode;run;,proc sort data=tmp6;by year indcode;run;,data tmp9;merge tmp6(in=a)tmp8;by year indcode;if a;run;,Tmp7,中,已经包括了各组各变量的回归系数,现在把这些估计的回归系数找出来,并存为,tmp8.,计算每组回归的样本数,因为样本数太少的回归是无效的回归。,把回归系数同各个公司各年的变量(,tmp4,)进行合并,通过相乘得到正常的应,计利润;,计算,DA,的,SAS,程序,Step5:,根据估计得到的系数计算修正的,Jones,的,DA,

28、data tmp10;set tmp9;,nda=ea1*a1+ea2*(delt_rev-delt_rec)+ea3*ppe_ta;,da_jones=acca-nda;,run;,data da_jones;set tmp10;,abs_da_jones=,abs,(da_jones);,keep stkcd year indcode da_jones abs_da_jones;,run;,proc sort;by stkcd year;run;,计算,DA,的,SAS,程序,Step6:,计算业绩调整的,DA,proc reg data=tmp6;,model acca=a1 del

29、t_rev ppe_ta roa/adjrsq;,by year indcode;,output out=tmp11 r=da_perf;,run;,output out:,把回归结果保存于,tmp11,中,,r,是回归残差的意思,r=da_perf,,即把回归残差命名为,da_perf,;,计算,DA,的,SAS,程序,data tmp11;set tmp11;,keep stkcd year indcode da_perf;,run;,proc means,noprint;,var,da_perf;,by,year indcode;,output out=tmp12(drop=_freq_

30、 _type_ where=(nx=5),n,=nx;run;,data tmp13;,merge,tmp12(in=a)tmp11;,by year indcode;,if a;,run;,proc sort;by stkcd year;run;,要求各年各行业的样本数至少不小于,5,n,是一个统计量,统计各组的观测值个数;,计算,DA,的,SAS,程序,Step 7,合并和保存两种,DA,:,data da;merge da_jones tmp13(drop=nx);,by stkcd year;,run;,Data dd.da;set da;run;,CAR,程序,在事件研究(,even

31、t study),中,计算累计非正常报酬(,CAR,)是个常见问题;,两种计算,CAR,的方法:,-,市场均值调整,事件日的个股回报减去当天的市场回报;,-,市场调整法,首先要估算个股的,Beta,系数,然后根据,CAMP,模型计算事件日的,CAR,;,-,参考文献,:Chen,Su and Zhao,2000,CAR;,CAR,程序,CAR,程序,假定我们已经有了计算,CAR,的两个数据集,一个是日个股回报数据,(RET),一个是个股年报宣告日数据(,Andate):,RET,数据集包括:,stkcd,:股票代码,Traddt,:股票交易日;,Raw_ret:,每只股票每个交易日的日个股回报

32、考虑,现金红利再投资的日个股回报率);,Market_ret,:每日的市场回报(,考虑现金红利再投,资的日市场回报率(流通市值加权平均法),),Andate,数据集包括:,stkcd,:股票代码,year:,年报年度;,annodt:,年报宣告日;,CAR,程序,任务:计算,2000,和,2001,年年报宣告日前后共,3,天的,CAR;,-,方法一:不使用宏,但需要每年计算一次;,-,方法二:使用宏,可以一次得到多年宣告日的,CAR,;,CAR,程序:不使用宏,以计算,2000,年年报宣告日前后,3,天的,CAR,为例,Step1:,导入数据并日期加工,libname cc H:sas;,d

33、ata ret;set cc.ret;,tr_date=substr(trddt,1,4)*10000,+substr(trddt,6,2)*100,+substr(trddt,9,2);,drop trddt;run;,data ret2000;set ret(where=(20000430tr_date20010530);,year=2000;run;,CAR,程序:不使用宏,data andate2000;set cc.andate(where=(year=2000);,an_date=substr(annodt,1,4)*10000+substr(annodt,6,2)*100+sub

34、str(annodt,9,2);,drop annodt;,run;,data tmp1;merge andate2000(in=a)ret2000;,by stkcd year;,if a;run;,data tmp2;set tmp1;,t=tr_date-an_date;,run;,合并交易数据和宣告日数据,CAR,程序:不使用宏,step 2:,确定个股年报宣告日之前计算,beta,的窗口,;,data tmp3;set tmp2;,where t0;,run;,proc rank,data=tmp3 out=tmp4,descending,;,var t;,ranks t1;,by

35、stkcd;,run;,data tmp5;set tmp4;,t1=-t1;,run;,确保交易日在宣告日之前,Proc rank:,排序命令;,Descending:,逆排序(从大到小),t1,都是正的,取负号,使其为负,以确定(,-150,,,-30,)窗口;,CAR,程序:不使用宏,step3:,使用(,-150,,,-30,)窗口计算,beta,系数,data tmp6;set tmp5(where=(-150=t1-30);,proc sort;by stkcd;run;,proc reg,noprint,outest,=beta2000;,model raw_ret=market

36、ret/adjrsq;,by stkcd;run;,data beta2000;set beta2000;,alpha=intercept;,beta=market_ret;,n=_p_+_edf_;,adjrsq=_adjrsq_;,keep stkcd alpha beta n adjrsq;run;,CAR,程序:不使用宏,step4:,计算(,-30,,,+30,)窗口中,每日的非正常报酬,*,-,在,tmp5,中,已经确定了宣告日之前的窗口,因此,-;,data pre;set tmp5(where=(-30=t1=0,;run;,proc rank,out=after;,var

37、t;,ranks t1;,by stkcd;run;,data after;set after;,t1=t1-1,;run;,data car;set pre after;,proc sort;by stkcd t1;run;,由于,t1,的最小值也是,1,,因此,在确定事件窗口,时,应该减去,1,,以确定,0,30,的窗口;,合并,-30,,,-1,和,0,+30,窗口,CAR,程序:不使用宏,step 5:,合并,CAR,和,beta2000,data car2000;merge car beta2000;,by stkcd;,run;,step 6:,计算(-30,30)每天的AR,da

38、ta car2000;set car2000;,ar=raw_ret-(alpha+beta*market_ret);,mr=raw_ret-market_ret;,run;,CAR,程序:不使用宏,step7:,计算,-1,,,+1,三天的,CAR,data tmp10;set car2000(where=(-1=t1=0;,run;,data uprt,CAR,:使用宏,*,-,计算宣告日之前的窗口,-;,proc rank data=tmp,var t;,ranks t1;,by stkcd;,where t0;,run;,data downrt,*-,纵向合并宣告日之前和之后的窗口,-

39、data art,proc sort;,by stkcd tr_date;,run;,CAR,:使用宏,*-,使用(,-150,,,-30,)窗口估计,beta-;,data es,proc reg,noprint,outest,=beta,model raw_ret=market_ret/adjrsq;,by stkcd;,run;,data abeta,alpha=intercept;,beta=market_ret;,n=_p_+_edf_;,adjrsq=_adjrsq_;,keep stkcd alpha beta n adjrsq;,proc sort;by stkcd;run

40、CAR,:使用宏,*-,确定(,-30,,,+30,)的窗口,-;,data aart,if-30=t1=30;,proc sort;by stkcd;run;,*-,合并,beta,系数,-;,data abr,by stkcd;,if a=1;run;,CAR,:使用宏,*-,计算每日的非正常报酬,-;,data abr,ur=raw_ret-(alpha+beta*market_ret);,mr=raw_ret-market_ret;,run;,%mend;,%abr1(2000);,%abr1(2001);,CAR,:使用宏,*-,把,2000,年和,2001,年的,AR,合并,-

41、data public;set abr2000 abr2001;run;,*-,计算各年,-1,,,+1,的,CAR-;,%macro,sumcar(yr);,data car,if year=,proc means data=car,var mr ur;,by stkcd;,output out=sumcar,data sumcar,year=,%mend;,%sumcar(2000);,%sumcar(2001);,data sumcar;set sumcar2000 sumcar2001;run;,RET,程序,在计算公司的股票业绩时,常用的一个变量时,RET,,即经市场调整后的、以

42、月度计算的股票年度回报率。,一种算法是从,5,月开始到第,2,年,4,月,作为计算,BHAR,的期间;,另一种算法是从,1,月开始到,12,月,作为计算,BHAR,的期间;,Ri,指考虑现金红利再投资的月个股回报率(,CSMAR:,考虑现金红利再投资的月个股回报率),,Rm,指月度市场回报率(,CSMAR:,考虑现金再投资的月市场回报率,(,流通市值加权平均法,),)。,RET,程序,连乘的基本算法:,由于,Logx+logy=logxy,因此,,xy=exp(logx+logy),;,假定我们已经有了,stockret,数据集,该数据包括了,A,股,1991,年,4,月到,2008,年,12

43、月的如下数据:股票代码(,stkcd),、交易月份(,trdmnt,)、月度个股回报(,raw_ret,)、月度市场回报(,market_ret),;,任务:计算,1991,年到,2008,年各年从,5,月到次年,4,月的,RET,:,-,由于没有,2009,年,1-4,月的交易数据,因此计算的,2008,年,RET,是不完整的,到时应该删除;,RET,程序,libname cc H:sas;,data tmp1;set cc.stockret;,month=substr(trdmnt,6,2)+0;,lgret=log(1+raw_ret);,lgmret=log(1+market_ret

44、);,if month=5 then year=substr(trdmnt,1,4)+0;,run;,proc sort;by stkcd year;run;,RET,程序,proc means,noprint;,var,lgret lgmret;,by,stkcd year;,output out=ret0504,sum,=tlgret tlgmret;run;,data ret0504;set ret0504;,ret0504_raw=exp(tlgret)-1;,ret0504_adj=exp(tlgret)-exp(tlgmret);,run;,data ret0504;set ret

45、0504(keep=stkcd year _freq_ ret0504_raw ret0504_adj);,where 1991year2008;,run;,RET,程序,练习:,自行计算,1992-2008,年从,1,月到,12,月计算的年度,RET,。,Proc SQL,Proc sql,是一个功能非常强大的多表操作模块;,-,能从多个数据集中按照制定的条件创建新的数据集;,-,比如,在,Francis et al.(2005,JAE,The market pricing of accruals quality),中,他们首先使用,DD,模型计算每年操控性应计利润的残差,DAC,,然后,使

46、用之前,5,年的,DAC,的标准差计算盈余质量(,Accruals quality,AQ,),;,如何解决这一标准差的计算问题?,-,题外话:为什么国内从来没有人使用多年,DAC,的标准差计算,AQ,?,Proc sql,基本结构,比如,希望从,tmp1,和,tmp2,中按照一定条件生成一张新表,tmp3,;,proc sql;,creat tmp3 as select distinct,a.var1,a.var2,b.var3,b.var4,from tmp1 as a,tmp2 as b,where,a.var1=b.var1 and,a.var2b.var2,order by var1

47、var2;quit;,Distinct,表示删除重复的观测值,可省略,Tmp3,的构成,指定,tmp1,为,a,tmp2,为,b,Where,:指定,tmp3,的生成条件;,Order by:,对,tmp3,排序,Proc SQL,假定现有有一个数据集,DAC,,包括了,1974-2004,年美国所有上市公司各年按,DD,模型计算的,DAC,,现在要使用之前,5,年的,DAC,的标准差来计算各年的,AQ;,解决思路:,-,得先构造一个数据集,在这个数据集中,应该这样排列:,00001 1999 DAC1995,00001 1999 DAC1996,00001 1999 DAC1997,0000

48、1 1999 DAC1998,00001 1999 DAC1999,-,然后,就可以使用,std,命令分组求标准差了;,Proc SQL,导入数据,libname x H:sas;,data dac1;set x.dac;run;,data dac2;set x.dac;run;,之所以倒两次,是因为等下一个要做基本数据,,一个是要把之前年度的数据添加过去;,Proc SQL,proc sql;,create table AQ(where=(1970=year=2004)as select,distinct,put(b.gvkey,6.0)|.|put(b.year,4.0)as comb,n

49、a.dac)as dum,b.gvkey,b.fyenddt,b.year,std(a.dac)as aq,from dac1 as a,dac2 as b,where,a.gvkey=b.gvkey and,0=b.year-a.year=4,group by comb,having dum=5,order by gvkey,fyenddt,year;quit;,下面是逐条分解说明:,put(b.gvkey,6.0)|.|put(b.year,4.0)as comb,put sth as sth,,是指将某变量输出存为另一变量;,put(b.gvkey,6.0,)是指:输出表,b,中列变量

50、gvkey,,输出格式为,6,位,不带小数点,假定,1997,年的公司代码是,3978,,则,put(b.gvkey,6.0)|“.”|put(b.year,4.0)as comb,comb,的数值为,3978.1997,;,|,连接两个字符值,),n(a.dac)as dum,b.gvkey,b.fyenddt,b.year,这里,,n(a.dac),是指对数据表,a,中的,dac,个数;,std(a.dac)as aq,这里,对数据表求标准差,存为,aq,from dac1 as a,dac2 as b,dac1,作为,a,dac2,作为,b,where,a.gvkey=b.gvkey

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服