财务会计与财务研究管理知识分析(93页PPT).pptx
《财务会计与财务研究管理知识分析(93页PPT).pptx》由会员分享,可在线阅读,更多相关《财务会计与财务研究管理知识分析(93页PPT).pptx(93页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、会计与财务研究中常见问题的SAS实现会计与财务研究中的常用软件SAS-面向多数据处理,功能强大,但上手难度较大;面向多数据处理,功能强大,但上手难度较大;-识别汉字;识别汉字;-特别适合于数据的初步整理阶段(程序可保存,容易再现特别适合于数据的初步整理阶段(程序可保存,容易再现历史);历史);STATA -软件小巧,便于安装,且上手较容易;软件小巧,便于安装,且上手较容易;-回归和检验功能非常强大;回归和检验功能非常强大;-升级快,命令包可以随时在网上下载,支持自我学习;升级快,命令包可以随时在网上下载,支持自我学习;研究实践:研究实践:SASSAS(数据整理)(数据整理)+STATA+STA
2、TA(回归检验)(回归检验)会计与财务研究中的常用软件会计研究中的会计研究中的STATASTATA运用运用 -Clive Lennox-Clive Lennox的个人网站的个人网站 -为中山大学会计系所授课程为中山大学会计系所授课程 课件和演示用数据课件和演示用数据课程主要内容SASSAS的一些基本操作;的一些基本操作;分组回归程序:计算分组回归程序:计算DADA;CARCAR程序:不使用宏和使用宏;程序:不使用宏和使用宏;计算股票年度业绩计算股票年度业绩RETRET的程序;的程序;Proc SQLProc SQL:多表合并程序:多表合并程序 -配对程序;配对程序;参考书高惠璇等编译,高惠璇等
3、编译,SASSAS系统系统 BASE SASBASE SAS软件使用手册,中国软件使用手册,中国统计出版社,统计出版社,19971997;高惠璇等编译,高惠璇等编译,SASSAS系统系统 SAS/STATSAS/STAT软件使用手册,中软件使用手册,中国统计出版社,国统计出版社,19971997;这两本书类似于字典,用来查,而不是用来读;这两本书类似于字典,用来查,而不是用来读;学学SASSAS的最佳方法:的最佳方法:-对照已有的程序和数据一步一步地跑,碰到不懂的命对照已有的程序和数据一步一步地跑,碰到不懂的命令(有时可以不求甚解),便去查书;令(有时可以不求甚解),便去查书;SAS的基本操作
4、创建新的数据集并输出创建新的数据集并输出-打开打开SASSAS,在编辑器中写入程序:,在编辑器中写入程序:datawghtclub;inputidno1-4name$6-24team$strtwghtendwght;loss=strtwght-endwght;cards;1023DavidShawred1891651049AmeliaSerranoyellow1451241219AlanNancered2101921246RaviSinhayellow1941771078AshleyMcKnightred1271181221JimBrownyellow220.1095SusanStewartb
5、lue1351271157RoseCollinsgreen1551411331JasonSchockblue1871721067KanokoNagasakagreen1351221251RichardRoseblue181166;run;procprintdata=wghtclub;titleFitnessCenterWeightClub;run;-结果:在结果:在SASSAS逻辑库的逻辑库的WorkWork中,就会出现中,就会出现wghtclub数据集;数据集;SAS的基本操作将将EXCELEXCEL数据导入数据导入SASSAS -比如,要将比如,要将H H盘盘SASSAS目录中的目录中的p
6、rofit.xlsprofit.xls文件导入文件导入SASSAS,并命名为,并命名为profitprofit;-打开打开SASSAS,在编辑器中写入程序:,在编辑器中写入程序:proc import out=profit datafile=H:SASprofit.xls dbms=excel2000 replace;run;-结果:在结果:在SASSAS逻辑库的逻辑库的WorkWork中,就会出现中,就会出现profitprofit数据数据集;集;SAS的基本操作右键点开右键点开profitprofit数据集查看数据集情况;数据集查看数据集情况;将将AccperAccper转变成年度;转变成
7、年度;data data profitprofit;set;set profitprofit;yearyear=substr(=substr(accperaccper,1,4)+0;,1,4)+0;run;run;Substr:文本截取命令,即对Accper的第1个字符开始,取4个字符;如accper的一个观测值是1991-12-31,则substr(accper,1,4)就为1991,而Substr(accper,6,2)则为12.将文本变量转化为数值变量,直接让文本变量加0即可;Datax2;setx1;对x1数据进行加工,然后保存为X2;SAS的基本操作数据排序 -对profit数据按照
8、stkcd和year进行排序;proc sort data=profit 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 s
9、olvency;year=substr(accper,1,4)+0;run;proc sort;by stkcd year;run;在对两个或多个数据集进行在对两个或多个数据集进行mergemerge时,需时,需要首先按照关键变量要首先按照关键变量(如公司代码和年度)如公司代码和年度)进行排序;进行排序;省略时,默认对最近的数省略时,默认对最近的数据集进行排序;据集进行排序;SAS的基本操作数据横向合并数据横向合并 data fin_ratio;merge profit(in=a)solvency;by stkcd year;if a;run;注意:注意:data x1;merge tmp1(
10、in=a)tmp2;by var1 var2;if a;run data x1;merge tmp1(in=a)tmp2;by var1 var2;if a;run -表示已表示已tmp1tmp1为基础进行合并,合并后的数据集样本数同为基础进行合并,合并后的数据集样本数同tmp1tmp1相同;相同;data x1;merge tmp1 tmp2;by var1 var2;run data x1;merge tmp1 tmp2;by var1 var2;run -包括了包括了tmp1tmp1和和tmp2tmp2的所有观测值;的所有观测值;data x1;merge tmp1(in=a)tmp2(
11、in=b);by var1 var2;if a=1 and b=1;run data x1;merge tmp1(in=a)tmp2(in=b);by var1 var2;if a=1 and b=1;run -只包括只包括tmp1tmp1和和tmp2tmp2中共有的观测值;中共有的观测值;SAS的基本操作纵向合并(纵向合并(appendappend)data x1;set tmp1 tmp2;data x1;set tmp1 tmp2;Run;Run;-SAS-SAS自己会去找对应的变量;自己会去找对应的变量;SAS的基本操作产生新的虚拟变量产生新的虚拟变量 比如,要从比如,要从fin_ra
12、tio产生一个产生一个2006以后的虚拟变量,即年度在以后的虚拟变量,即年度在2006年后的,取值年后的,取值为为1,否则为,否则为0;则:则:data fin_ratio;set fin_ratio;after2006=0;if year=2006 then after2006=1;run;SAS的基本操作剔除变量空缺的观测值剔除变量空缺的观测值;CSMARCSMAR数据集中,有些变量空缺,导入数据集中,有些变量空缺,导入SASSAS为为“.”,有些无点,为,有些无点,为一个空格,则可以通过如下命令剔除这些数据缺失的观测值一个空格,则可以通过如下命令剔除这些数据缺失的观测值:比如,希望剔除比
13、如,希望剔除fin_ratiofin_ratio数据中,数据中,ROSROS缺失的样本;缺失的样本;proc sort data=fin_ratio;by ros;run;proc sort data=fin_ratio;by ros;run;data tmp1;set fin_ratio;data tmp1;set fin_ratio;if ros=.or ros=then delete;if ros=.or ros=then delete;run;run;SAS的基本操作假如要把假如要把ROS,ROA,ROEROS,ROA,ROE的缺失样本同时删除的缺失样本同时删除:data tmp2;s
14、et fin_ratio;if ros+roa+roe=.then delete;run;SASSAS的一些基本算符:的一些基本算符:*/=等于等于 =不等于不等于 =SAS的函数分类可以参见高惠璇的函数分类可以参见高惠璇SAS BASE 1997 pp.70-74SAS的基本操作SASSAS日期函数日期函数在在CSMARCSMAR的数据库中,导出的日期文件一般为的数据库中,导出的日期文件一般为yyyy-mm-ddyyyy-mm-dd,如,如1999-12-311999-12-31日,这是一个文本格式,那么,如何将其转化为日,这是一个文本格式,那么,如何将其转化为标准的日期格式呢?标准的日期格
15、式呢?比如,我们经常要计算公司上市年龄,上市公司年龄等于各个财比如,我们经常要计算公司上市年龄,上市公司年龄等于各个财政年度末减去政年度末减去IPOIPO日期所间隔的天数,然后除于日期所间隔的天数,然后除于365365得到上市年龄,得到上市年龄,比如,一个公司比如,一个公司1995-05-231995-05-23日日IPOIPO,则,则20072007年年1212月月3131日时,他的上日时,他的上市年龄多少?市年龄多少?SAS的基本操作SASSAS日期函数日期函数-SAS日期值函数:日期值函数:Mdy(month,day,year);如如mdy(12,31,1991)=11687,11687
16、代表代表1991-12-31日同日同1960-1-1所间隔的天数;所间隔的天数;-还原出还原出sas日期值的函数:日期值的函数:假定假定date是一个是一个SAS日期值,则日期值,则year(date)得到年,得到年,month(date)得到月,得到月,day(date)得到日;得到日;-现在,我们要计算现在,我们要计算Fin_ratio数据集中,各公司财政年末同数据集中,各公司财政年末同1990-05-07(假定所有公司(假定所有公司IPO日期都是这天)的时间距离;日期都是这天)的时间距离;SAS的基本操作SASSAS日期函数日期函数data tmp1;set fin_ratio(keep
17、=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(fiscal_month,fiscal_day,fiscal_year);age=(fiscaldate-ipodate)/365;run;对数据进行winsorize处理任务:对任务:对fin_ratiofin_ratio中的中的ROSROS
18、,ROE,ROAROE,ROA,CurrentCurrent和和AcidAcid按上下按上下1%1%进进行行winsorizewinsorize处理;处理;data tmp1;set fin_ratio;d=1;run;data tmp1;set fin_ratio;d=1;run;proc means noprint;proc means noprint;var roa roe ros current acid;var roa roe ros current acid;by d;by d;output out=tmp2(drop=_freq_ _type_)p1=x1-x5 p99=y1-y
19、5;output out=tmp2(drop=_freq_ _type_)p1=x1-x5 p99=y1-y5;Proc means:Proc means:对数据进行描述性统计;对数据进行描述性统计;noprint:noprint:统计结果不在统计结果不在SASSAS中显示;中显示;Var:Var:指定需要分析的变量;指定需要分析的变量;by:by:按什么条件进行分析(按什么条件进行分析(e.g.,by year,e.g.,by year,分年度进行分析)分年度进行分析);Output out=tmp2Output out=tmp2:将分析结果保存于将分析结果保存于tmp2tmp2中;中;p1
20、p1:变量:变量1 1分位数的值分位数的值 p1=x1-x5:5p1=x1-x5:5个变量个变量1 1分位数的值(分位数的值(-不是减号);不是减号);p99:p99:变量变量9999分位数的值;分位数的值;对数据进行winsorize处理data tmp3;merge tmp1 tmp2;by d;array z1:5 roa roe ros current acid;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的原理:如果一个样的
21、原理:如果一个样本某变量的值大于该变量的本某变量的值大于该变量的99分位数,则该样本的值被强制指分位数,则该样本的值被强制指定为定为99分位数的值;类似的,分位数的值;类似的,如果一个样本某变量的值小于该如果一个样本某变量的值小于该变量的变量的1分位数,则该样本该变分位数,则该样本该变量的值被强制指定为量的值被强制指定为1分位数的分位数的值;值;Array:指定一组变量(向量)指定一组变量(向量);如这里:如这里:z1便为便为roa,x1为为x1,即即roa的的1分位数;分位数;y1为为y1,即即roa99分位数;分位数;由于需要由于需要winsorize五个变量,五个变量,因此需要循环因此需
22、要循环5次;次;对样本进行描述性统计希望对一组样本进行描述性统计,包括均值、中位数、标准差等,可希望对一组样本进行描述性统计,包括均值、中位数、标准差等,可以采用以采用proc means proc means 和和proc univariateproc univariate模块;模块;比如,希望对比如,希望对fin_ratiofin_ratio进行描述性统计:进行描述性统计:proc meansproc means data=fin_ratio;data=fin_ratio;var var roa roe ros current acid after2006;roa roe ros curr
23、ent acid after2006;run;run;对样本进行描述性统计如果希望按年度或按行业分组进行描述性统计:如果希望按年度或按行业分组进行描述性统计:proc sort data=fin_ratio;by year indcd;run;proc means data=fin_ratio;var roa roe ros current acid after2006;by year indcd;run;对样本进行描述性统计如果希望保存每组样本的某个统计量(如均值,中位数或者标准差),则可以使用如如果希望保存每组样本的某个统计量(如均值,中位数或者标准差),则可以使用如下程序:下程序:比如,
24、希望计算比如,希望计算1990-2006年按年和行业均值(中位数)调整后的年按年和行业均值(中位数)调整后的ROA和和ROS,则程序如下:则程序如下:*由于由于indcd行业分类太细,我们只想使用行业分类太细,我们只想使用22个行业,即个行业,即C类分到二级代码,其余都类分到二级代码,其余都使用一级代码使用一级代码 data tmp1;set fin_ratio(keep=stkcd year indcd roa ros);if substr(indcd,1,1)=C then ind=substr(indcd,1,2);if substr(indcd,1,1)=C then ind=subs
25、tr(indcd,1,1);drop indcd;run;对样本进行描述性统计*产生各年、各行业产生各年、各行业ROAROA和和ROSROS的均值和中位数的均值和中位数;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;run;对样本进行描述性统计*合并tm1和tmp2,以计算均值中位数调整后的roa和ros;data tmp3;merge tmp1 t
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 财务会计 财务 研究 管理知识 分析 93 PPT
限制150内