ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:75.05KB ,
资源ID:2940884      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2940884.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(finmetricssplus中金融数据数量分析的工具.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

finmetricssplus中金融数据数量分析的工具.docx

1、finmetricssplus中金融数据数量分析的工具finmetrics-s-plus中金融数据数量分析的工具Finmetrics:时间序列统计分析的好的教学模块欧阳资生 摘要:对于专业统计学研究人员来说, 各国用的最多的是功能强大和灵活的 S-plus软件。近来,一个新的模块- Finmetrics,被添加到S-plus中,它被用来专门处理金融时间序列数据,对金融时间序列进行数量分析。本文中,我们对Finmetrics模块的功能作了介绍,希望对广大金融时间序列定量分析人员起到抛砖引玉的作用。关键词: S-plus,Finmetrics模块,数值计算一、引言对于专业统计学家来说,各国用的最多

2、的是功能强大和灵活的 S-plus软件。它是美国AT&T公司的贝尔实验室开发的。用S-plus 编程序很方便,入门容易。它的统计方法丰富, 而且在不断增长。S-plus 透明度大,很容易知道它在作什么。在S-plus 中可以任意加入自己编写的程序,或修改原来的一些程序,为创造性的统计学家所钟爱。许多最新的统计方法都是一些统计学家用 S-plus程序编写出来的,甚至可以从互联网上下载下来。原来的S-plus主要是为统计学家编程而用,现在的最新版本也已经更加友好,已经实现可视化,很容易操作,同时还保留了其原来的优点,不失为一个好软件。近来,一个新的模块- Finmetrics模块,被添加到S-PL

3、US中,它被用来专门处理金融时间序列数据,对金融时间序列进行数量分析。S-PLUS本身可在许多不同的平台上操作(Windows、Linux、Solaris、Unix),但是Finmetrics模块却只能在Windows、Linux、Unix上实现,而且Finmetrics模块只能添加到S-PLUS6及以上版本上,S-PLUS2000及以下版本,这个模块无法运行。二、Finmetrics模块的一般回顾S-plus语言的基础是S语言,它是对S语言的界面化和菜单化,有优秀的内在帮助系统和作图功能,它能够轻松地转到商业支持的 S-Plus程序(如果需要使用商业软件)。S-plus有一个强大的,容易学习

4、的语法,有许多内在的统计函数,通过用户自编程序, S语言很容易延伸和扩大,它是计算机编程语言. 类似于UNIX语言、C语言、Pascal、Gauss语言等。对于熟练的编程者, 它将觉得该语言比其他语言更好用。但是它与C语言、Pascal、Gauss语言不同,它是一种面向对象的程序语言。S-PLUS 语言的函数可以由菜单和命令语句得到,但由命令语句得到的函数要比由菜单得到的多得多。而且,对Finmetrics模块,使用者只能使用命令语句才能得到函数。这事实上就要求使用者必须对S语言的语法和编程比较熟悉。但是,Finmetrics模块并不是标准的S-PLUS软件的一部分,因此,它必须独立于S-PL

5、US,要求单独安装。模块的学习帮助通过在线帮助和两个PDF格式的文件形式提供给使用者。一个文件是对这个模块中的所有函数类(包括198个主要函数)及其使用方法进行了详细的说明,我们在表一中列出了这些说明.另一个文件是由Zivot,E. 和Wang,J.H.(2002)两人合作的,专门介绍每个函数族的计算机编程的书。这本书的计算机程序也可在Zivot,E.的个人网页上下载。表1: Finmetrics模块中函数类型时间/日期效用函数(Time/data utility functions) 时间序列格子图函数(Time series trellis plotting functions) 动态的最

6、小二乘法(Dynamic ordinary least squares)表面上不相关回归(Seemingly unrelated regression)单位根、协整过程和VECM(Unit root, cointegration and VECM )长记忆模型(Long memory modelling)固定收益分析(Fixed income analytics)古典的极值理论(Classical extreme value theory)状态空间模型(State space modelling)时间序列控制与插值(Time series manipulation and interpolat

7、ion)统计概述与统计检验(Summary statistics and test statistics)滚动估计(Rolling estimation)自回归与矢量自回归(Autoregression and Vector autoregression)GARCH 波动模型(GARCH volatility modelling)技术分析(Technical analysis)多因子统计模型(Statistical multi-factor model)多元极值Copula估计和分析(Extreme value analysis with statistical copula estimati

8、on)从表1可以看出,Finmetrics模块包含了许多其他金融分析软件不具备的函数族,在其他金融风险分析的软件里,我们很难找到像技术分析、极值理论和Copulas等相关的内容的。当然,这个模块也包含了许多众所周知的数据,例如,sp.raw.dat就包含了SP500指数从1960年1月5日到1987年10月16日共6986个日收盘价数据。Danish.dat包含了自1980年元月3日到1990年11月31日之间丹麦保险公司的理赔额超过一百万丹麦克朗的火灾保险理赔额。这些数据的来源和使用可在在线帮助中很容易查到,这为我们在使用这个模块时提供了很好的便利。三、Finmetrics模块的编程S-PU

9、LS是一种面向对象的程序语言,因此,数据结构可以通过类获得。Finmetrics模块的数据库是基于Timeseries类的。在Timeseries类中,时间间隙从年、月、日到小时、分钟、秒,相当精确,当然,这也是研究高频数据的需要。时间序列的数据类型也可以包含任何类型:数值型、字符串型等等均可以。前面已经说过,Finmetrics模块不能通过S-PLUS的图形界面或菜单直接得到,因此它必须编程。这意味着使用者必须对模块中的函数要相对熟悉,幸运的是,我们可以借助这个模块的很好的在线帮助来编程。为了对利用模块编程语法有个直观的了解,我们通过下面例子来说明。我们的例子来自于Zivot,E. 和Wan

10、g,J.H.(2002),我们在例子中分析了利用极值理论中Peak-over- Threshold(POT)方法计算S&P500指数(该数据名为sp.raw)的在险风险值(VaR)的编程方法。注意,在每一个语句前,我们以命令“”开始。我们首先可以通过以下程序观察S&P500指数的收盘价和日收益率折线图(见图1)。 spto87 = getReturns(sp.raw, type=discrete, percentage=T) par(mfrow=c(2,1) plot(sp.raw, main=Daily Closing Prices) plot(spto87, main=Daily Perc

11、entage Returns) 图1 当然,我们可以分析收益率分布是否服从正态分布,这可以通过以下一句语句实现。 qqPlot(spto87)在Peak-over-Threshold(POT)方法中,一个关键的问题是怎样适当选取门限值,这可以通过平均超出函数图来判断。Finmetrics模块的实现程序是: me.sp500=meplot(-spto87)对于这个数据集而然,它的平均超出函数图如图2,从中我们可以判断出门限值取1比较恰当。图2因此,我们就可以得到S&P 500指数的VaR了。 gpd.sp500.1 = gpd(-spto87, threshold=1) riskmeasures

12、(gpd.sp500.1, c(0.95,0.99)p quantile 1 0.95 1.2539 2 0.99 2.0790 即置信水平为95的VaR为1.2539(),置信水平为99的VaR为2.0790()。 我们也可以将利用极值方法所得结果与利用正态假设所得结果进行比较,利用正态假设计算VaR的语句为: sp500.mu = mean(-spto87) sp500.sd = sqrt(var(-spto87) var.95 = sp500.mu + sp500.sd*qnorm(0.95) var.99 = sp500.mu + sp500.sd*qnorm(0.99) var.95

13、1 1.299 var.991 1.848即在收益率服从正态假设时,置信水平为95的VaR为1.299(),置信水平为99的VaR为1.848。从这个例子,我们可以看出,只要熟悉了Finmetrics模块中的函数,编程还是相当简单、便捷的。四、Finmetrics模块的数值计算的精确性几乎所有的金融时间序列模型都是高度非线形的。因此,我们在进行数值计算时,就对计算的精度提出了较高的要求。Finmetrics模块恰好满足了这一要求。由于模型的非线性,各个参数的解析解是很难得到了,这就要求对其分析解进行精确的数值逼近。在Finmetrics模块中,参数的估计都是通过其对数似然函数的最优化得到。当然

14、,最优问题涉及到计算精度的默认值,算法的选择和初始值等。McCullough Renfro(1999)和Brooks et al.(2001)就指出,就是最简单的GARCH(1,1)模型,使用不同的软件就会产生不同的结果。现在我们就利用GARCH(1,1)模型来分析Finmetrics模块是怎样实现数字的精确计算的。 GARCH(1,1)模型已经为金融工作者所熟悉,它的模型形式是: , (1) (2)我们利用Ford公司的股票收益率数据(自1984年2月2日到1991年11月31日共2000个数据)来进行分析(在模块的数据库中,该数据名为ford.s)。GARCH(1,1)模型的参数通过下面语

15、句得到 garch(ford.s1,garch(1,1)在上面的语句中,我们事实上是使用了所有的默认值。当然,在这个模型中,我们是无法设定参数的初始值的。默认的收敛偏差和步长均为0.0001。当然,我们可以对精度作进一步的要求,将上面运算的收敛偏差和相应的步长由0.0001加强为1*10(-12),即利用下面的程序我们可以得到更为精确的结果。具体见图3。 garch(ford.s1,garch(1,1),control=bhhh.control(tol=1e-12,delta=1e-12)在图3中,我们给出了GARCH(1,1)模型的四个参数的估计的折线图。用“o”标出的点是收敛偏差和步长取默认值时的估计值。对这个数据而言,模型的默认值似乎太大,并不能很好的估计模型的参数。很明显,参数的估计依赖于最大似然估计,而最大似然估计依赖于收敛准则。从这个例子可以看出,在Finmetrics模块中,我们可以根据自己的要求进行精确计算。 图3五、Finmetrics模块的评论和结论Finmetrics提供了先进且丰富的金融数据分析模型。利用这个模块,我们可以方便地对金融数据进行模型构建、分析及可视化。与其他的套装软件不同,Finmetrics 可以轻易地计算出技术指标及移动平均运算子,它的其他

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1