SAS教程(金融)


六、SAS软件简况
发展历史:
1966年开始研制 1976年由美国SAS公司实现商业化 1985年推出PC版本 2006推出版本为V9 客观评价
国际公认的最优秀统计软件
最昂贵的统计软件 应用领域:统计、金融、商业、经济、社 会、医学、生物、教育等。
SAS V9主要产品
SAS/BASE(基础)——初步的统计分析 SAS/STAT(统计)——广泛的统计分析 SAS/QC(质量控制)——质量管理方面的专门分析计算 SAS/OR(规划)——运筹决策方面的专门分析计算 SAS/ETS(预测)——计量经济的时间序列方面的专门分析计算 SAS/IML(矩阵运算)——提供了交互矩阵语言 SAS/GRAPH(图形)——提供了许多产生图形过程并支持众多图形设备 SAS/ACCESS(外部数据库接口)——提供了与大多数流行数据库管理系统
例1-1:散户投资者股票收益的均值检验。
例1-2:散户投资者与大户投资者股 票收益的均值检验
SAS 系统 22:24 Monday, July 22, 2010 1
Variable Method
Variances
DF t Value Pr > |t|
x
Pooled
Equal
18
1.74
0.0996
x
Satterthwaite Unequal
17
1.74
0ances
Variable Method
Num DF Den DF F Value Pr > F
x
Folded F
9
9
1.62 0.4838
五、常用的统计软件
1.常用的统计软件 SAS SPSS BMDP Stata EPINFO Minitab Statistica S-PLUS R
5. 环境窗口
该窗口用于显示程序所在系统的文件目录 结构。此外,该窗口还记录了每次程序的运行 结果。
例:熟悉SAS窗口参考程序example
三、SAS程序的结构与语法
1.程序结构: SAS程序采用模块化结构,模块间相
互独立,每个模块完成一个任务。 模块分两种类型,数据模块和程序模
块。数据模块以英文单词Data为起始,程 序模块以Proc(Pprocedure的缩写)为起始。 模块通常用语句 “run;” 作为结束。
3. 输出窗口
该窗口用于显示程序的统计分析结果,还 可以在该窗口对计算结果进行输入、输出、编 辑、修改,以及文件格式转换等操作。该窗口 由被执行的SAS程序自动调出。
4. 图形窗口
该窗口用于显示程序的图形分析结果,还 可以在该窗口对计算结果进行输入、输出、编 辑、修改等操作。该窗口由被执行的SAS程序 自动调出。
1.程序窗口
这是一个全屏幕程序编辑窗口,用 户在这个窗口输入要运行的程序,使用 SAS系统提供的编辑工具对程序进行修改、 运行、调试。当执行运行(提交)程序 命令时,该窗口的程序被执行。
2. 监视窗口
该窗口记录了SAS程序运行过程的 主要信息。如程序语句的语法错误,运 行中的逻辑错误和警告信息,使用和建 立的数据集、库文件,程序运行时间等。 这些信息为程序调试提供了帮助。
统计软件(SAS)
天津财经大学统计学系 统计软件课程租
统计科学与科学统计
Lies,damned lies,and statistics.
一句著名的西方谚语。主要描 述数字的说服能力,特别是用来讽刺 一些使用统计数字支持、但毫无说服 力的分析报告,以及人们倾向于贬低 那些不支持其立场的统计结论。
——摘自维基百科
统计科学与科学统计
其名言部分来自19世纪英国首相本杰明·迪斯 雷利,此后经美国著名文豪马克·吐温之笔,被广泛 传诵,原句载马克·吐温的《我的自传》:“(统计) 数字经常欺骗我,特别是我自己整理它们时候。在此 类情况下本杰明·迪斯雷利的评述经常正确有 效:“世界上有三种谎言:谎言,该死的谎言,统计数 字。”(There are three kinds of lies: lies, damned lies, and statistics.)”。但其原句并没 有发现在本杰明·迪斯雷利的演说稿或者其他作品 中。——摘自维基百科
第一章 导言
一、统计的科学性
(一)统计推断的基本内容: 1.点估计
待估参数 β 的点估计量为β
2.区间估计
以点估计值为中心确定误差范围β±△
3.确定信度 确定误差范围的置信概率
(二)统计为什么存在谬误:
1.真实的谎言 使用违反数据特性的统计方法。 2.对谎言求真 没有取得真实数据 3.用谎言制造谎言 制造数据
的方便接口并自身也能进行数据管理 SAS/ASSIST(面向任务的通用菜单驱动界面)——方便用户以菜单方式进
行操作 SAS/AF(面向对象编程的应用开发工具)
第一章 SAS入门
一、SAS安装和启动 二、SAS的工作窗口 PROGRAM EDIT:程序窗口 LOG:监视窗口 OUTPUT:输出窗口 GRAPH:图形窗口 EXPLORER:环境窗口
2.程序语法
标识符或数据之间用空格分隔,例如:input s$; 使用分号分隔语句; 使用“Run”分隔模块; 自定义名称最多包含8个符号,首字符为英文字母,名
称不能有保留符号,如:空格 - . , ; … $等; 缺失数据“.”表示; 文本变量名首次出现时使用“$”作为后缀; 程序可以包含注释语句,以“/*”开始,以“*/”结束,
二、统计软件可以做什么
统计计算 数据挖掘
数据管理 统计调查
三、如何用统计软件进行计算
1.根据菜单提示进行选择工作 2.人机互动式工作 3.编程进行程序式工作
输入
处理
输出
四、为什么要使用统计软件
统计软件的使用过程,不是简单的 输入数据,取得结果。而是在统计学理 论指导下,实现统计思想的系统过程,。
一个程序中可包含多个数据模块和程 序模块。
程序实例
Data a; input x@@; cards; 6.11 1.04 1.30 2.60 3.51 5.20 5.41 1.82 3.64 2.21 3.38 3.77 Run; Proc univariate data=a normal plot; var x; Run;
合集下载

SAS基础与金融计算7.pptx

SAS基础与金融计算7.pptx
选项列表中比较重要的有: (1)type=统计量关键字,表示图形对变量
(sumvar所指定的变量)的哪一种统计量进行 描述,比如频数(freq)、均数(mean)、总计 (sum)、频数百分比(percentage)等;
16
(2)subgroup=变量名(分组变量),指定要进 行分组(各组内再分组)的变量;
12
Chart(或gchart)与plot(或gplot)
chart和gchart过程可以绘制出的图形主要有条形 图(包括横条和竖条)、圆图、环形图和星形图 等;
plot和gplot过程通常用一个记录中的两个变量值 表示点的坐标来绘制图形,如散点图和线图等。
13
gchart过程的一般格式
Proc gchart 选项列表; 图形关键词 变量名称/选项列表;
绘制的图形类型 方块图
水平的条形图 水平的三维条形图
竖立的条形图Байду номын сангаас竖立的三维条形图
图形关键字 pie pie3d
donut star
绘制的图形类型 圆图
三维圆图 环形图 星形图
15
图形关键字后的变量名用以指定进行图形描述时 的分组变量,可以是数值型的(此时以各组的组 中值为分组的标志),也可以是字符型的。
11
chart(或plot)与gchart(或gplot)
chart过程和plot过程绘制的图形类似于我们用文 本字符堆积起来的图形,只能概括地反映出资料 分布的大体形状,实际上这两个过程绘制的图形 并不能称之为图形,因为它没有涉及一般意义上 图形的任何一种元素(如颜色、分辨率等)。
而gchart过程和gplot过程给出的是真正意义上的 图形,可以用很多的语句和选项来控制图形的各 方面的性质和特征。

[经济学]SAS第三章

[经济学]SAS第三章

第3章SAS编程基础3.1 SAS语法基础3.1.1 SAS常数SAS常数用来表示固定的值,它或者是一个数字,或者是用引号引起来的字符串,或者是其他特殊记号。

SAS常用以下三类常数:一、数值常数一个数值常数就是出现在SAS语句里的数字。

其书写和用法与其他高级语言的使用基本相同,它可以包括小数点,负号及E记号等,如:0.1 ,1.23, -5, 1.2E3, 0.5E-5数值常数缺失时用小数点“.”表示。

二、字符常数字符常数是由单引号括起来的1到200个字符组成的。

如语句:if name=’tom’ then do;中的’tom’是一个字符常数。

如果字符常数含有引号,此时应用双引号括起来,如name=”’tom’ s”。

字符常数缺失时用空格加引号(’’)表示。

三、日期、时间和日期时间常数为了把日期、时间或日期时间值表示为常数,在输入格式或输出格式中使用相同记法:TIME.,DATE.和DATETIME.。

格式值用单引号括起来,并跟随一个D(日期),T (时间)或DT(日期时间)。

如:’1JAN1998’D, ’01JAN98’D, ’9:25’T ,’18JAN98:9:25:20’DT。

3.1.2 SAS操作符SAS操作符是一些符号,用它们可以作比较、算术运算或逻辑运算,它有前缀和中缀之分。

前缀操作符用在数值、变量或函数的前面,主要有+、-、NOT。

而中缀操作符则是用在两个运算对象的中间,主要有算术操作符、比较操作符、逻辑操作符、其他操作符四类。

一、算术操作符算术操作符表示执行一种算术运算。

常用算术操作符、含义及举例见表3.1。

表3.1 SA S算术操作符、含义及举例二、比较操作符比较操作符用来建立两个量之间的一种关系,并要求SAS确定这种关系是成立或不成立。

如果成立,输出的结果为1;如果不成立,结果为0。

常用比较操作符、含义及举例见表3.2。

表3.2 SA S比较操作符、含义及举例三、逻辑操作符逻辑操作符也称为布尔算符,在表达式里通常用来连接一系列比较式,常与IF语句结合使用。

最新SAS基础与金融计算7课件PPT

最新SAS基础与金融计算7课件PPT
p 前两个和后两个只有一个字母“g”(代表graph )的差别,其实它们之间(只差一个字母g的过程 之间)的统计描述功能是相同的,区别仅在于绘 制出的图形的复杂和美观程度。
10
p 此外,还有一些较为复杂的制图命令,如运用 G3D过程绘制曲面图,运用GCONTOUR过程绘 制曲面对应的等高线图。
p 例如,我们想绘制一个二维正态分布曲面的图形 ,假设(X,Y)服从联合正态分布,其均值都是0 ,方差分别为1和a,相关系数为r。
12
Chart(或gchart)与plot(或gplot )
p chart和gchart过程可以绘制出的图形主要有条 形图(包括横条和竖条)、圆图、环形图和星形 图等;
p plot和gplot过程通常用一个记录中的两个变量值 表示点的坐标来绘制图形,如散点图和线图等。
13
gchart过程的一般格式
p (3)sumvar=变量名(数值变量),指定要进 行统计计算的变量,也就是“type=统计量关键 字”选项中统计量的计算所依据的变量。
17
清甘油三酯的测量结果(mmol/L )
0.91 0.88 1.41 0.96 1.48 1.46 0.91 1.10 1.26 1.69 1.14 1.24 0.98 0.68 0.83 1.77 1.23 1.04 1.08 0.62 1.10 1.33 0.73 0.52 1.01 1.71 1.37 0.51 1.01 1.11 1.09 0.96 1.37 1.20 0.61 1.17 0.71 1.16 0.80 0.73 1.66 0.96 1.37 0.95 1.30 0.76 1.39 0.94 1.25 1.60 1.54 1.34 1.56 1.54 0.85 1.54 0.96 0.82 1.50 1.14 1.70 1.30 1.59 1.07 1.17 1.32 1.44 1.12 0.70 0.68 1.52 0.76 1.60 1.27 1.43 1.27 1.09 0.75 0.64 0.97 1.20 1.34 1.19 1.08 0.66 1.42 1.46 0.59 1.22 1.32 1.67 1.20 1.33 1.31 1.02 0.83 0.90 1.09 0.96 1.10 0.85 1.06 1.67 0.78 0.91 1.18 1.20 1.11 0.89 1.08 1.27 0.85 1.24 1.58 0.71 1.46 1.52 0.91 1.47 1.01 1.20 1.30 1.05 1.44 1.15 1.12 1.15 0.65 1.04 1.24 1.30 1.11 1.65 0.87 0.82 0.76 1.30 0.63 1.14 0.83 1.24 1.48 1.15 0.99 1.49 1.02 1.17 0.99 0.61 1.33 0.79 0.95 1.05 1.65 1.20 1.24 0.84 1.40 0.72 1.06

金融数据库——常用统计分布函数SAS实现

金融数据库——常用统计分布函数SAS实现

常用统计分布函数SAS 实现1. 正态分布密度函数作图分布函数作图产生随机数 其它作图(1)μ=2, σ=0.5, 1, 2。

三图重叠在一个坐标系内。

(2)μ=2, σ=0.5, 1, 2, 5, 10。

四图重叠在一个坐标系内。

(3)μ= 0,1,2 σ=1。

三图重叠在一个坐标系内。

(4)μ=0, σ=1用SAS 软件产生标准正态的概率分布表 其它概率计算注意)(2121)(22)(222σμπσπσμσμ-Φ===--∞---∞-⎰⎰x dt edt ex F t x t x于是,对任意的实数)(,2121x x x x <有,(1)μ=1.5,σ=2,产生正态概率分布表。

(2)μ=1.5,σ=2,求P(X>0)。

(3)μ=1.5,σ=2,求P(-1<X<2)。

(4)用SAS 计算下面概率,并与查表结果对比。

~(1,4)X N ,求( 1.6),(0 1.6),(||4)P X P X P X ≤<≤>分位数定义:设~(0,1)X N ,若Z α满足条件(),01P X Z ααα>=<<,则称Z α为标准正态分布的上α分位点。

(1)计算0.001,0.0025,0.005和0.010的下分位数。

(2) 计算0.001,0.0025,0.005和0.010的上分位数。

本人不同意分为上下分位数,分位数就是分位数,定义为:若Z α满足条件(),01P X Z ααα<=<<则称点Z α为随机变量的α分位数。

单边的, 双边的,注意和以均值为中心,1,2,3倍标准差宽度区间的概率值的区别。

其它可参考例子(1)概率的两种计算公式data ;p1=PROBNORM(1)-PROBNORM(-1); put p1=; p2= PROBNORM(2)-PROBNORM(-2); put p2=; p3= PROBNORM(3)-PROBNORM(-3); put p3=; run ;p1=0.6826894921 p2=0.9544997361 p3=0.9973002039data;p1=2*PROBNORM(1)-1; put p1=;p2=2*PROBNORM(2)-1; put p2=;p3=2*PROBNORM(3)-1; put p3=;run;p1=0.6826894921p2=0.9544997361p3=0.9973002039(2)以均值为中心的区间与概率如,以μ为中心,需要几倍标准差σ距离所构成的区间,其区间内的概率等上面(1)中的概率。

金融数据库——SAS与TXT和XLS接口程序

金融数据库——SAS与TXT和XLS接口程序

SAS与TXT和XLS接口程序1.SAS数据集导出多个TXT文本。

设数据集名称为Thstk.quotation,要求导出三个文本600001.txt,600002.txt,000001.txt,变量名及变量格式如下:变量名标签|Label 类型长度Permno 永久性代码|Permanent No. 字符8Hstkcd 最新股票代码|Stock Code – Header 字符 6Dt 日期|Date 日期10Openpr 开盘价|Open Price 数值8.2Highpr 最高价|High Price 数值8.2Lowpr 最低价|Low Price 数值8.2Closepr 收盘价|Close Price 数值8.2Trdvol 成交量|Trading Volume 数值20.Trdsum 成交金额|Trading Sums 数值20.2Facpr 股价调整因子|Adjusting Factor for Price 数值10.42. 多个TXT文本文件导入SAS数据集。

设有三个文本600001.txt,600002.txt,000001.txt,变量一致,变量名及变量格式如下:变量名标签|Label 类型长度Permno 永久性代码|Permanent No. 字符8Hstkcd 最新股票代码|Stock Code – Header 字符 6Dt 日期|Date 日期10Openpr 开盘价|Open Price 数值8.2Highpr 最高价|High Price 数值8.2Lowpr 最低价|Low Price 数值8.2Closepr 收盘价|Close Price 数值8.2Trdvol 成交量|Trading Volume 数值20.Trdsum 成交金额|Trading Sums 数值20.2Facpr 股价调整因子|Adjusting Factor for Price 数值10.43. SAS数据集导出多个EXCEL表。

某学院SAS基础与金融计算课件

某学院SAS基础与金融计算课件
信用评分模型的应用 信用评分模型被广泛应用于银行、保险公司等金融机构的贷款决策中,通过对借款人进行信用评分,为 贷款决策提供量化依据,降低贷款风险。
股票价格预测模型
01
股票价格预测模型介绍
股票价格预测模型是通过对历史股票价格数据以及其他相 关因素的分析,预测未来股票价格的走势,为投资决策提 供依据。
风险管理
讲解风险管理的基本原理和方法,如衡量风险、 对冲策略等。
投资组合理论
介绍投资组合的基本原理和方法,如分散投资、最优投资组合等。
金融数据分析
数据来源
介绍常用的金融数据来源,如彭博、万得、 大智慧等。
数据处理
讲解如何对金融数据进行处理,如清洗、整 理、分析等。
数据可视化
介绍如何将金融数据可视化,如图表、报表 等,以便更好地理解和分析数据。
易和记录。
05
案例分析
信用评分模型
信用评分模型介绍
信用评分模型是通过对借款人的信用历史、财务状况、收入稳定性等因素的分析,预测借款人的违约概率,从而为贷 款决策提供依据。
信用评分模型的构建
构建信用评分模型需要收集借款人的相关数据,包括信用历史、资产负债表、收支情况等,然后运用统计分析方法, 如回归分析、决策树等,来建立模型并评估其准确性。
量化金融
使用SAS进行量化金融分析,如期权定 价、期货定价和投资组合的量化评估。
sas在金融行业的未来发展
人工智能与机器学习
结合SAS的人工智能和机器学习技术, 实现更智能化的金融分析和决策。
大数据技术
运用SAS的大数据技术,处理海量的 金融数据,以获得更准确和全面的分
析结果。
区块链技术
探索SAS与区块链技术的结合,为金 融行业带来更安全、透明和高效的交

SAS金融行业解决方案


分析CRM 对运行的数据进行交叉销售,客户分割等分析 项目管理 协同CRM
使用与客户接触中得到结果
Source: META Group
CRM 部件
科技
数据模型,挖掘摸板, 报表摸板
操作步骤 方法论和解决方案
人员
行业知识,文化背景
市场自动体系机构
决策支持
以前的系统
生产操作流程, 知识管理
有效市场营销管理
市场营销管理是管理与客户沟通的过程 市场营销管理软件支持市场营销管理的 全过程
Intrinsic 市场营销管理
计划
Planning
Execution
分析
Analysis Evaluation Response Mgmt Integration
执行
评价
Intrinsic 市场营销管理
Customer information repository
Workflow and knowledge manager
Web systems
Analytical/data mining tools
Forecasting/ planning tools
Content/ collateral manager
NT
销售分析
数据仓库流程图
运行环境 企业数据仓库
NT
数据集市
收益性分析
主机
企业服务器
Unix
客户汇报
SAS 数据仓库装载
Unix

完全更新 Delta文件 增量汇总 从数据库下载
NT
销售分析
SAS数据仓库管理器
运行环境 公司数据仓库
NT
数据集市
主机

SAS金融计算教学中自定义函数的实验设计

SAS金融计算教学中自定义函数的实验设计作者:桂文明来源:《科技创新导报》 2014年第34期桂文明1 2(1.金陵科技学院江苏南京 211169; 2.南京财经大学江苏南京 210046)摘要:SAS在金融计算领域有着旺盛的生命力,SAS金融计算课程是金融类专业中实践性较强的课程之一。

在该课程的教学过程中,如何设计好实验环节是教学成功与否的关键所在。

该文针对难度较高但适用性广的SAS自定义函数部分,结合债券久期理论,采用我国债券市场的真实数据,设计了一个课程实验,具有内容新颖、综合性强的特点,可使学生在动手过程中快速掌握相关知识。

课程内容分为SAS自定义函数讲授、久期基本概念回顾、实验内容、实验步骤提示和实验答案讲解五个环节。

关键词:金融计算 SAS编程债券久期自定义函数中图分类号:G420 文献标识码:A 文章编号:1674-098X(2014)12(a)-0152-02SAS软件在国际上已被誉为统计分析的标准软件,在各个领域得到广泛应用,它在金融计算领域也具有强大的生命力,对金融学及其相关专业的学生来说,掌握SAS并运用它到金融专业的理论计算和实践非常必要[1,2]。

SAS金融计算课程是金融学及其相关专业课程体系中的实践性较强的课程。

在这类课程中,讲授理论知识的同时,往往需要辅以实验来提升学生理解理论的层次。

一些高校的金融学专业中还专门开设此类综合实验课程,以期学生能掌握SAS编程方法,加深对相关金融理论知识的理解,增强动手能力,提升解决金融实务问题的能力,培养和启发用数据说话的理念。

SAS金融计算课程对学生的要求较高,难度较大,因为它是一门跨学科性质的课程,既要求掌握金融理论知识,又要具备基本的计算机编程基础,而编程知识一般是金融学及其相关专业学生的弱项。

要使SAS金融计算课程在学生和教师的互动过程中顺利展开,设计好实验环节是关键。

实验的内容应该和金融相关,实验数据应该是金融市场中的真实数据。

SAS基础与金融计算4

SAS基础与金融计算4引言本文档旨在介绍SAS(Statistical Analysis System)及其在金融计算中的基础应用。

SAS是一种广泛使用的统计分析软件,其功能强大,能够进行数据的处理、分析和可视化。

在金融领域,SAS被广泛应用于风险管理、投资组合分析、量化交易等方面。

本文将介绍SAS的一些基础知识,并结合金融计算的实例进行说明。

第一部分:SAS基础知识1. SAS语言基础SAS语言是一种类似于英语的编程语言,用于描述数据的处理和分析过程。

以下是一些基础的SAS语言元素:•数据集(Data Set):SAS中的数据存储在数据集中,每个数据集由变量和观测组成。

•数据步(Data Step):数据步是SAS程序中用来对数据进行处理的基本单位,包括数据导入、数据转换等操作。

•过程(Procedure):过程是SAS程序中用来进行数据分析的模块,比如描述统计、线性回归等。

•语句(Statement):语句是SAS程序的最小执行单位,每个语句以分号结尾。

2. SAS数据集操作SAS提供了丰富的数据集操作函数,可以对数据集进行增删改查等操作。

以下是一些常用的数据集操作:•创建数据集:使用data语句可以创建一个新的数据集,并定义其中的变量。

•导入数据:使用import语句可以从外部文件导入数据到SAS中的数据集。

•数据过滤:使用where语句可以对数据进行条件过滤,只选择满足条件的观测。

•数据排序:使用sort语句可以对数据集按照指定的变量进行排序。

•数据合并:使用merge语句可以将两个或多个数据集按照共有的变量合并成一个数据集。

3. SAS统计分析SAS提供了各种统计分析的过程,可用于探索数据的特征、分析数据之间的关系等。

以下是一些常用的统计分析过程:•描述统计:使用proc means过程可以计算数据的基本统计量,比如均值、方差等。

•数据分组:使用proc freq过程可以对数据按照指定的变量进行分组统计。

sas金融计算清华朱世武数据集char12

12.2.1数据选取data ;weeks=('31dec2000'd-'01jan1995'd)/14;put weeks=;run;weeks=156.512.3.2 计算双周收益率/*计算市场组合双周收益率*/options nodate nonotes nosource;data index;set compufin.final;dweek=ceil((date-'01Jan95'd-6)/14); /*标记双周序号,1995年1月1日及以后的第一周为0,以后每两周加1*/data index(keep=dweek dwr_index);set index;if last.dweek=1 ; /*保留双周末数据*/by dweek;dwr_index=dif(index)/lag(index); /*计算双周收益率*/if dwr_index=. then delete; /*去掉空值*/run;/*通过DOS命令为计算个股双周收益率创建宏文本:char12.txt*//*第一步,在DOS的“d:\基于sas系统的金融计算光盘\stoindif”目录下键入“dir a6*.*/b >list.txt”,生成文件list.txt*//*第二步,生成宏文本*/data a;infile ' d:\基于SAS系统的金融计算光盘\stoindif\list.txt';informat fname $16.;input fname $;data a;set a;hexcd=substr(fname,2,6);format hexcd $6.;data a;set a;a='%a(';b=');' ;file "d:\基于SAS系统的金融计算光盘\stoindif\char12_1.txt" ;put a $ hexcd $ b $ ;run;/*根据复权个股数据库(stoindif)复权价计算个股双周收益率*/ data stock;delete;%macro a(a1);data a;set stoindif.a&a1.;dweek=ceil((date-'01Jan95'd-6)/14); /*标记双周序号*/hexcd="&a1.";data a(keep=dweek dwr hexcd);set a(where=(date<'01Jan01'd));if last.dweek=1 ; /*保留周末数据*/by dweek;dwr=dif(clpr_r)/lag(clpr_r); /*计算双周收益率*/data stock;set stock a(firstobs=2); /*去掉第一行,收益率为空*/%mend a;%include "d:\基于SAS系统的金融计算光盘\stoindif\char12_1.txt" ;proc sort;by dweek hexcd;run;12.3.3 计算无风险利率data deposit;set compufin.deposit_r;where '01Jan95'd<=date<='31Dec00'd;dweek=ceil((date-'01Jan95'd)/14); /*标记双周序号*/data deposit(keep=dweek dw_rf);set deposit;if last.dweek=0 then delete; /*保留周末数据*/by dweek;if dweek in(0,157) then delete;dw_rf=y_r/26; /* 一年有26个双周*/run;12.3.4 验证CAPM循环程序/*合并市场组合及个股双周收益率、无风险收益率*/data table;merge stock deposit index;by dweek;label dwr='个股双周收益率'dw_rf='无风险双周收益率'dwr_index='市场组合双周收益率'hexcd='股票代码';if hexcd=. then delete;proc sort;by hexcd dweek;run;/*循环计算过程*/data reg;/*后面要在reg里面存放最后一步日回归用的所有变量*/delete;run;%macro b(b1);data a;set table;where %eval(&b1.)<=dweek<=%eval(&b1.+15);/*分组过程,保留这一区间内的股票收益率、指数收益率*/proc reg outest=a noprint;/*在此区间内分组回归,得到每一只股票的Beta值,输出到数据集a*/model dwr=dwr_index;by hexcd;/*每支股票分别回归*/run;proc sort data=a;by dwr_index;/*在a中从小到大排列Beta*/run;data a(keep=hexcd group);/*在a中分15个组,只保留股票代码与组号*/set a nobs=nobs;x0=mod(nobs,15);x1=floor(nobs/15);if _n_ le x0*(x1+1) then group=ceil(_n_/(x1+1));if _n_ gt x0*(x1+1) then group=ceil((_n_/x1);proc sort data=a;by hexcd;run;%do i=%eval(&b1.+25) %to %eval(&b1.+34);/*在同一分组期内逐个计算“估值期”Beta值*/data b;set table;where %eval(&b1.+16)<=dweek<=&i. and dwr^=.;/*控制每次读相应数据行*/proc reg outest=b noprint; /*Beta和S值输出到b*/model dwr=dwr_index;by hexcd;run;data b;merge b(keep=hexcd dwr_index _rmse_ rename=(dwr_index=b _rmse_=s)) a;/*将b与a合并,加上组号,并只保留Beta和残差标准差S*/by hexcd;if group=. then delete; /*如果股票在“分组期”没有上市,则此处不参与计算*/proc sort;by group;run;proc means data=b noprint; /*每组Beta与S取简单平均*/by group;var b s;output out=b mean=b s; /*输出到b*/run;data b(keep=group s b bb); /*只保留回归用变量S、β、β平方*/set b;bb=b*b; /*加入beta的平方这个变量*/run;data c;set table;where dweek=%eval(&i.+1);/*“检验期”对应的一个数据点*/data c;merge c a;/*加上组号*/by hexcd;if group=. then delete;/*如果股票在“分组期”没有上市,则此处不参与计算*/proc sort;by group;run;proc means data=c noprint; /*组收益率简单平均*/by group;var dwr dwr_index;output out=c mean=dwr dwr_index;/*输出到c文件*/run;data b(keep=group dwr dwr_index b bb s dweek);merge c b; /*合并b、c,这样“估值期”得到的Beta、Beta平方、S和“检验期”的对应数据都到了一个表格中*/by group;dweek=%eval(&i.+1); /*加上序号*/run;data reg;set reg b; /*合并成大表*/run;%end;%mend b;%b(1);%b(11);%b(21);%b(31);%b(41);%b(51);%b(61);%b(71);%b(81);%b(91);%b(101);%b(111);%b(121);data reg;set reg;where dwr^=.;run;proc reg data=reg outest=out tableout noprint;/*将生成的reg表进行分组回归,得到相应参数*/model dwr=b bb s/dw;by dweek;run;/*检验结果*/data out1;set out;where _type_='PARMS';proc means data=out1 noprint; /*t检验,输出到out1*/var bb s b;output out=out1 t=t_bb t_s t_b probt=probt_bb probt_s probt_b mean=mean_bb mean_s mean_b;run;/*结果已输出到work.out中,这里加上日期并把t检验和参数估计放在同一行,以更好的呈现*/data out2;set out;keep dweek intercept b bb s _TYPE_;where _type_ in ('PARMS','T');proc sort;by dweek descending _type_;data out2(drop=_type_);set out2;intercept_t=lag(intercept);b_t=lag(b);bb_t=lag(bb);s_t=lag(s);if _type_='T' then delete;data a(keep=date dweek);set compufin.final;dweek=ceil((date-'01Jan95'd-6)/14);if dweek=lag(dweek) then delete;data out2;merge out2 a;by dweek;if intercept=. then delete;run;/*计算一阶自相关系数*/data a(drop=_type_ _freq_ probt_bb probt_s probt_b);set out1;do dweek=27 to 156;output;end;data out3;merge out2(drop=intercept_t b_t bb_t s_t date) deposit a;by dweek;if bb=. then delete;var1=bb;var2=s;var3=b-mean_b;var4=intercept-dw_rf;data out3;set out3;lag_var1=lag(var1);lag_var2=lag(var2);lag_var3=lag(var3);lag_var4=lag(var4);proc corr data=out3 out=out3 (type=corr) oprint; /*协方差矩阵输出到out3*/ var var1-var4 lag_var1-lag_var4;run;。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档