财务会计与财务研究管理知识分析.pptx
《财务会计与财务研究管理知识分析.pptx》由会员分享,可在线阅读,更多相关《财务会计与财务研究管理知识分析.pptx(92页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、会计与财务研究中常见问题的SAS实现会计与财务研究中的常用软件 SAS - - 面向多数据处理,功能强大,但上手难度较大;面向多数据处理,功能强大,但上手难度较大; - - 识别汉字;识别汉字; - - 特别适合于数据的初步整理阶段(程序可保存,容易再特别适合于数据的初步整理阶段(程序可保存,容易再现历史);现历史); STATA - - 软件小巧,便于安装,且上手较容易;软件小巧,便于安装,且上手较容易; - - 回归和检验功能非常强大;回归和检验功能非常强大; - - 升级快,命令包可以随时在网上下载,支持自我学习;升级快,命令包可以随时在网上下载,支持自我学习; 研究实践:研究实践:SA
2、SSAS(数据整理)(数据整理)+STATA+STATA(回归检验)(回归检验)会计与财务研究中的常用软件 会计研究中的会计研究中的STATASTATA运用运用 - Clive Lennox- Clive Lennox的个人网站的个人网站http:/ihome.ust.hk/accl/Phd_teaching.htm - - 为中山大学会计系所授课程为中山大学会计系所授课程 课件和演示用数据课件和演示用数据课程主要内容 SASSAS的一些基本操作;的一些基本操作; 分组回归程序:计算分组回归程序:计算DADA; CARCAR程序:不使用宏和使用宏;程序:不使用宏和使用宏; 计算股票年度业绩计算
3、股票年度业绩RETRET的程序;的程序; Proc SQLProc SQL:多表合并程序:多表合并程序 - - 配对程序;配对程序;参考书 高惠璇等编译,高惠璇等编译,SASSAS系统系统 BASE SASBASE SAS软件使用手册,软件使用手册,中国统计出版社,中国统计出版社,19971997; 高惠璇等编译,高惠璇等编译,SASSAS系统系统 SAS/STATSAS/STAT软件使用手册,软件使用手册,中国统计出版社,中国统计出版社,19971997; 这两本书类似于字典,用来查,而不是用来读;这两本书类似于字典,用来查,而不是用来读; 学学SASSAS的最佳方法:的最佳方法: - -
4、对照已有的程序和数据一步一步地跑,碰到对照已有的程序和数据一步一步地跑,碰到不懂的命令(有时可以不求甚解),便去查书;不懂的命令(有时可以不求甚解),便去查书;SAS的基本操作创建新的数据集并输出创建新的数据集并输出- - 打开打开SASSAS,在编辑器中写入程序:,在编辑器中写入程序: 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
5、 124 1219 Alan Nance red 210 192 1246 Ravi Sinha yellow 194 177 1078 Ashley McKnight red 127 118 1221 Jim Brown yellow 220 . 1095 Susan Stewart blue 135 127 1157 Rose Collins green 155 141 1331 Jason Schock blue 187 172 1067 Kanoko Nagasaka green 135 122 1251 Richard Rose blue 181 166 ; run; proc pr
6、int data=wghtclub; title Fitness Center Weight Club; run; - - 结果:在结果:在SASSAS逻辑库的逻辑库的WorkWork中,就会出现中,就会出现wghtclub数据集;数据集;SAS的基本操作 将将EXCELEXCEL数据导入数据导入SASSAS - - 比如,要将比如,要将H H盘盘SASSAS目录中的目录中的profit.xlsprofit.xls文件导文件导入入SASSAS,并命名为,并命名为profitprofit; - - 打开打开SASSAS,在编辑器中写入程序:,在编辑器中写入程序: proc import out=
7、profit datafile=H:SASprofit.xls dbms=excel2000 replace; run; - - 结果:在结果:在SASSAS逻辑库的逻辑库的WorkWork中,就会出现中,就会出现profitprofit数据集;数据集;SAS的基本操作 右键点开右键点开profitprofit数据集查看数据集情况;数据集查看数据集情况; 将将AccperAccper转变成年度;转变成年度; data data profitprofit;set ;set profitprofit; ; yearyear=substr(=substr(accperaccper,1,4)+0;,1
8、,4)+0; run; 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=profit nodupkey; by stkcd year; run; 变量改名 data profit1
9、;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; run; proc sort; by stkcd year;run;在对两个
10、或多个数据集进行在对两个或多个数据集进行mergemerge时,需时,需要首先按照关键变量要首先按照关键变量( (如公司代码和年度)如公司代码和年度)进行排序;进行排序;省略时,默认对最近的数省略时,默认对最近的数据集进行排序;据集进行排序;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 data x1;merge tmp1(in=a) tmp2;
11、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(in=b) ;by var1 var2; if a=1 and b=1;run data x1;merge
12、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_ratio产生一个产生一个2006以后的虚拟变量,即年度在以后的虚拟变量,即年度
13、在2006年年后的,取值为后的,取值为1,否则为,否则为0; 则:则: data fin_ratio;set fin_ratio; after2006=0; if year=2006 then after2006=1; run;SAS的基本操作 剔除变量空缺的观测值剔除变量空缺的观测值; ; CSMARCSMAR数据集中,有些变量空缺,导入数据集中,有些变量空缺,导入SASSAS为为“. .”,有些无,有些无点,为一个空格,则可以通过如下命令剔除这些数据缺失点,为一个空格,则可以通过如下命令剔除这些数据缺失的观测值的观测值: 比如,希望剔除比如,希望剔除fin_ratiofin_ratio数据
14、中,数据中,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;set fin_ratio;
15、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日,这是一个文本格式,那么,如何将其转日,这是一个文本格式,那么,如何将其转化为标准的日期格式呢?化为标准的日期格式呢?
16、比如,我们经常要计算公司上市年龄,上市公司年龄等于比如,我们经常要计算公司上市年龄,上市公司年龄等于各个财政年度末减去各个财政年度末减去IPOIPO日期所间隔的天数,然后除于日期所间隔的天数,然后除于365365得到上市年龄,比如,一个公司得到上市年龄,比如,一个公司1995-05-231995-05-23日日IPOIPO,则,则20072007年年1212月月3131日时,他的上市年龄多少?日时,他的上市年龄多少?SAS的基本操作 SASSAS日期函数日期函数- SAS日期值函数:日期值函数:Mdy(month,day,year); 如如mdy(12,31,1991)=11687,11687
17、代表代表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(k
18、eep=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中的中的
19、ROSROS,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_) p
20、1=x1-x5 p99=y1-y5; 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=t
21、mp2: 将分析结果保存于将分析结果保存于tmp2tmp2中;中;p1p1:变量:变量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;
22、end;drop i d x1-x5 y1-y5; run;Winsorize的原理:如果一个样的原理:如果一个样本某变量的值大于该变量的本某变量的值大于该变量的99分位数,则该样本的值被强制分位数,则该样本的值被强制指定为指定为99分位数的值;类似的,分位数的值;类似的,如果一个样本某变量的值小于如果一个样本某变量的值小于该变量的该变量的1分位数,则该样本该分位数,则该样本该变量的值被强制指定为变量的值被强制指定为1分位数分位数的值;的值;Array: 指定一组变量(向量)指定一组变量(向量); 如这里:如这里:z1便为便为roa, x1为为x1,即即roa的的1分位数;分位数;y1为为y1
23、, 即即roa99分位数;分位数;由于需要由于需要winsorize五个变量,五个变量,因此需要循环因此需要循环5次;次;对样本进行描述性统计 希望对一组样本进行描述性统计,包括均值、中位数、标希望对一组样本进行描述性统计,包括均值、中位数、标准差等,可以采用准差等,可以采用proc means proc means 和和proc univariateproc univariate模块;模块; 比如,希望对比如,希望对fin_ratiofin_ratio进行描述性统计:进行描述性统计: proc meansproc means data=fin_ratio; data=fin_ratio; v
24、ar var roa roe ros current acid after2006;roa roe ros current 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;对样本进行描述性统计如果希望保存每组样本的某个统计量(如
25、均值,中位数或者标准差),如果希望保存每组样本的某个统计量(如均值,中位数或者标准差),则可以使用如下程序:则可以使用如下程序:比如,希望计算比如,希望计算1990-2006年按年和行业均值(中位数)调整后的年按年和行业均值(中位数)调整后的ROA和和ROS,则程序如下:,则程序如下:*由于由于indcd行业分类太细,我们只想使用行业分类太细,我们只想使用22个行业,即个行业,即C类分到二级代类分到二级代码,其余都使用一级代码码,其余都使用一级代码 data tmp1;set fin_ratio(keep=stkcd year indcd roa ros); if substr(indcd,1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 财务会计 财务 研究 管理知识 分析
限制150内