当前位置:文档之家› 金融数据库——SAS数据处理应用题

金融数据库——SAS数据处理应用题

SAS数据处理应用题_2005以下练习题选自《SAS数据处理综合练习》,解决这些题目原则上需要学完《SAS编程技术与金融数据》前18章内容。

1. 创建一包含10000个变量(X1-X10000),100个观测值的SAS数据集。

分别用DATA 步,DA TA步数组语句和IML过程实现。

2. 创建包含日期变量DA TE的SAS数据集,日期值从1900年1月1日到2000年1月1日。

3. 多种方法创建包含变量X的10000个观测值的SAS数据集。

4. 利用随机数函数RANUNI对某数据集设计返回抽样方案?5. 利用随机数函数RANUNI对某数据集设计不返回抽样方案?6. 数据集A中日期变量DATE包含有缺失值,创建包含日期变量DATE的数据集B,并填充开始到结束日之间的所有日期值。

7. 创建组标识变量GROUP,将数据集A中的观测等分为10组,观测值不能整除10时,前余数组各多加一个观测值。

8. 数据集A有一个变量n,5个观测值1,2,3,4,5。

数据A1由下面程序2产生,同样有一个变量n,5个观测值1,2,3,4,5。

试分析下面两段程序中,PUT语句在Log窗口输出结果的差异,为什么?程序1:Data a; Set a; Put n=; Run; 程序2: data a1;do n=1 to 5; output; end;put n=; run;9. 假设数据集A中的变量logdate为如下形式的字符格式:1998-12-21999-8-61999-8-10将其转换为日期格式变量date。

如果字符格式的数据为:199812021999080619990810又怎样转换为日期格式变量。

10. 数据集fdata. Calendar包含一个日期变量,fdata. bond_price包含一个债券代码、一个日期变量与其它相应的价格。

合并两个数据集,用Calendar中的日期数据替代bond_price 数据集中每支债券中的日期数据。

11. 当股票的分配事件分两次完成,且第一次分配在节假日或该股票的停牌日,第二次分配在下一个交易日时,一般的数据库会有如下表所示的观测值存贮方式。

写程序将停牌日(即没有收盘价的那个观测值)中的分配事件合到下一个观测中。

注:…表示有数据值,.表示缺失值。

编程变量名参考:股票代码Hstkcd,日期Dt,收盘价Closepr,送股比例Stkdrate,转增比例Capissurate,配股比例Rigoffrate,配股价Rigoffpr,增发比例Snirate,增发价格Snipr,现金红利Dividend。

12.现有一个数据流:a 2 b 3 c d 4 6,按下面要求创建SAS数据集。

用语句input id $ no; 变量id取值上面数据流里的a,b,c,d,变量no取值2,3,4,6。

但是这个数据流存在问题:如有的id没有no,有的no没有id。

创建SAS数据集,删除只有id 没有no或者只有no没有id的观测,即把上面的c和6去掉,最后得到三个观测,a 2, b 3与d 4。

更一般情况。

现有一个数据流:a23 223 bc4 36 3c5 11d 400 620,按下面要求创建SAS数据集。

用语句input id $ no; 变量id取值上面数据流里的a23, bc4, 11d ,变量no取值233,36,400。

但是这个数据流存在问题:如有的id没有no,有的no没有id。

创建SAS数据集,删除只有id没有no或者只有no没有id的观测,即把上面的3c5和620去掉,最后得到三个观测:a23 223bc4 3611d 40013. 假设股票市场的股本数据如下表,对每支股票,按如下要求设计填充总股本和流通股股本数据的SAS程序:以该股票前面的股本数据填充后面的缺失值,如果某支股票上市交易时就缺失股本数据,则用该股票上市后的第一个股本数据向前填充。

注:…表示有数据值,.表示缺失值。

编程变量名参考:股票代码Hstkcd,日期Dt, 收盘价Closepr, 股本变动日Capchgdt, 总股本Fullshr, 流通股trdshr, 总股本Fullshr./* 创建样本数据集*/data test;infile datalines missover ;informat hstkcd $8. dt yymmdd10. closepr 8.2 capchgdt yymmdd10. fullshr Trdshr 20. ;input hstkcd $ dt closepr capchgdt fullshr Trdshr;format hstkcd $8. dt yymmdd10. closepr 8.2 capchgdt yymmdd10. fullshr Trdshr 20.;cards;11600000 2003-1-20 9.94 2003-1-20 3915000000 90000000011600000 2003-1-21 9.6811600000 2003-1-22 9.6611600000 2003-1-23 9.611600000 2003-1-24 9.8811600000 2003-1-27 10.0711600000 2003-1-28 10.1711600000 2003-1-29 10.3111600000 2003-2-10 10.0911600000 2003-2-11 10.211600000 2003-2-12 10.3111600000 2003-2-13 10.1311600001 2000-5-29 8.13 2000-5-2911600001 2000-5-30 8.1411600001 2000-5-31 8.6511600001 2000-6-1 8.9311600001 2000-6-2 9.1111600001 2000-6-5 9.02 2000-6-5 1486553100 49000000011600001 2000-6-6 8.6311600001 2000-6-7 8.5211600001 2000-6-8 8.5511600001 2000-6-9 8.311600001 2000-6-12 8.34;Run;进一步调试程序时,请索要电子档试题与数据。

14.用线性插值法填充缺失数据。

以下面的实际数据为基础,完成相关SAS程序的设计。

银行间债券市场的回购行情如下表,对于一个月、二个月和三个月的债券回购利率,按如下要求设计填充回购利率的月底缺失数据。

从所给数据集中识别出一个月、二个月和三个月的债券回购利率,建立一个仅包括日期dt(2004年1月到2004年5月)、一个月债券回购利率R1M、二个月债券回购利率R2M和三个月债券回购利率R3M的数据集,对于不同期限的回购利率分别取每个月最后一天的回购利率,如果在月底当日没有交易,则采用该月最后一次交易与下月第一次交易的数据进行注:…表示有数据值,.表示缺失值。

编程变量名参考:交易日期dt, 债券代码code, 收盘价closepr, 一个月债券回购利率R1M,二个月债券回购利率R2M,三个月债券回购利率R3M./* 创建样本数据集*/data test;informat dt yymmdd10. code$8.closepr;input dt: code $ closepr;format dt yymmdd10. code $8.closepr;cards;2004-01-02 R1M 0.0252004-01-05 R1M 0.02552004-01-05 R2M 0.0244………………(该题解答有全部数据,同学可索要电子档)2004-06-01 R1M 0.0312004-06-01 R2M 0.03192004-06-01 R3M 0.0335;15.当股票发生分配事件时,可以根据相应的分配和股本数据计算股价的调整因子。

为了检验数据的正确性,有必要根据股价调整因子来计算当天股价的变动是否合理。

如下表所示,可以算得除权日股票涨跌的绝对值为:|10.00-5.20*2.00| = 0.40,相对于当时的股价5.20来说,这个变动值是在合理的范围内的。

设计程序,对于不同的股票(永久性代码不同),计算分配日股票涨跌(=分配前股票价格–分配日股票价格*股价调整因子)的绝对值。

只要求保留分配日的观测(即股价调整因编程变量名参考:永久性代码Permno,日期Dt,收盘价Closepr,股价调整因子Facpr16. 控制权价值研究中的数据处理问题。

计算每只股票相应DT前30个交易日的平均收盘价格。

股票代码Hstkcd与日期DT的数据集由下面SAS程序给出。

data stkdt;input Hstkcd $6. dt ;informat dt yymmdd10.;format dt yymmdd10.;cards;000024 20010405000510 20011020……….(该题解答有全部数据,同学可索要电子档)600262 20021228600277 20020904;17. 某商业银行为了进行内部成本核算,需要统计每个储户当前存款余额的平均期限。

平均期限计算方法如下:假设该银行有一储户6天内进行了6笔存取款业务。

如下表所示。

业务种类金额余额第1天开户+100元+100元第2天存款+100元+200元第3天取款-150元+50元第4天存款+200元+250元第5天存款+100元+350元第6天取款-100元+250元第1天,开户存入100元,计期开始。

第2天,存入100元,此时该储户持有100元×1天,100元×0天,所以平均期限为(100*1+100*0)/(100+100)天。

第3天,取出第一天的100元和第2天的50元(遵循先进先出法),此时持有第2天的50元,期限为(50*1)/50=1天。

第4天,存入200元,此时余额为250元,平均期限为(50*2+200*0)/(50+200)天。

第5天,存入100元,此时余额为350元,平均期限为(50*3+200*1+100*0)/(50+200+100)天。

第6天,取出了第2天的50元,第4天的50元,余额为250元,平均期限(150*2+100*1)/(150+100)天。

该银行储户历史数据集如下表所示,包括所有储户开户至今的全部存取款数据。

请分别计算每个储户存款金额的平均期限。

id datetime credit debit 000001 01JAN2000:10:00:01100 .000002 01JAN2000:11:00:01200 .000002 02JAN2000:13:00:01. 80000001 03JAN2000:10:00:01. 50000002 03JAN2000:12:00:01100 .000003 05JAN2000:16:00:01100 .000002 10JAN2000:09:00:01. 150000005 15JAN2000:10:00:01200 .000006 18JAN2000:13:00:01100 .000003 21JAN2000:12:00:0150 .000002 21JAN2000:15:00:01. 20000001 25JAN2000:09:00:01. 30000003 25JAN2000:12:00:01. 120……本题的实际意义:可作商业银行进行内部成本核算的指标吗?中国建设银行曾计划进行成本核算,委托麦肯锡给其设计如何计算存款的成本。

相关主题