好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

财务会计与财务研究管理知识分析.ppt

92页
  • 卖家[上传人]:F****n
  • 文档编号:97800807
  • 上传时间:2019-09-06
  • 文档格式:PPT
  • 文档大小:752KB
  • / 92 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 会计与财务研究中常见问题的SAS实现,,,,,,,,会计与财务研究中的常用软件,SAS - 面向多数据处理,功能强大,但上手难度较大; - 识别汉字; - 特别适合于数据的初步整理阶段(程序可保存,容易再现历史); STATA - 软件小巧,便于安装,且上手较容易; - 回归和检验功能非常强大; - 升级快,命令包可以随时在网上下载,支持自我学习; 研究实践:SAS(数据整理)+STATA(回归检验),会计与财务研究中的常用软件,会计研究中的STATA运用 - Clive Lennox的个人网站 http://ihome.ust.hk/~accl/Phd_teaching.htm - 为中山大学会计系所授课程 · 课件和演示用数据,课程主要内容,SAS的一些基本操作; 分组回归程序:计算DA; CAR程序:不使用宏和使用宏; 计算股票年度业绩RET的程序; Proc SQL:多表合并程序 - 配对程序;,参考书,高惠璇等编译,SAS系统 BASE SAS软件使用手册,中国统计出版社,1997; 高惠璇等编译,SAS系统 SAS/STAT软件使用手册,中国统计出版社,1997; 这两本书类似于字典,用来查,而不是用来读; 学SAS的最佳方法: - 对照已有的程序和数据一步一步地跑,碰到不懂的命令(有时可以不求甚解),便去查书;,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 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 print data=wghtclub; title 'Fitness Center Weight Club'; run; - 结果:在SAS逻辑库的Work中,就会出现wghtclub数据集;,SAS的基本操作,将EXCEL数据导入SAS - 比如,要将H盘SAS目录中的profit.xls文件导入SAS,并命名为profit; - 打开SAS,在编辑器中写入程序: proc import out=profit datafile=“H:\SAS\profit.xls“ dbms=excel2000 replace; run; - 结果:在SAS逻辑库的Work中,就会出现profit数据集;,SAS的基本操作,右键点开profit数据集查看数据集情况; 将Accper转变成年度; data profit;set profit; year=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=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:\SAS\solvency.xls“ dbms=excel2000 replace; run; data solvency;set solvency; year=substr(accper,1,4)+0; 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;merge 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; 则: 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; run;,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日,这是一个文本格式,那么,如何将其转化为标准的日期格式呢? 比如,我们经常要计算公司上市年龄,上市公司年龄等于各个财政年度末减去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)得到日; - 现在,我们要计算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(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 p99=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 z{1:5} roa roe ros current acid; array x{1:5} x1-x5;array y{1:5} y1-y5; do i=1 to 5; if z[i]y[i] then z[i]=y[i]; end;drop i d x1-x5 y1-y5; run;,Winsorize的原理:如果一个样本某变量的值大于该变量的99分位数,则该样本的值被强制指定为99分位数的值;类似的,如果一个样本某变量的值小于该变量的1分位数,则该样本该变量的值被强制指定为1分位数的值; Array: 指定一组变量(向量); 如这里:z[1]便为roa, x[1]为x1,即roa的1分位数; y[1]为y1, 即roa99分位数; 由于需要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_ratio; var roa roe ros current acid after200。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.