原文链接:http://tecdat.cn/?p=25957
介绍
当您处理金融时间序列时,我们通常可以获得相对高频的观察结果。例如,每天进行观察是很常见的。事实上,现在可以获得每小时、分钟、秒甚至毫秒的观测值。
使用的包
有许多软件包可以使我们能够估计波动率模型。我们还将使用该 quantmod
软件包,因为它可以让我们轻松访问一些标准财务数据。
数据上传
在这里,我们将使用包提供的方便的数据检索功能(getSymbols
) quantmod
来检索一些数据。例如,此函数可用于检索股票数据。默认来源是 Yahoo Finance. 如果您想找出哪些股票有哪个符号,您应该能够在互联网上搜索以找到股票代码列表。下面介绍如何使用该功能。但请注意,我的经验是有时连接不起作用,您可能会收到错误消息。在这种情况下,只需在几秒钟后重试,它就可以正常工作。
getSymbols("IBM") ## \[1\] "IBM" getSymbols("GOOG") ## \[1\] "GOOG" getSymbols("BP") ## \[1\] "BP"
在您的环境中,您可以看到这些命令中的每一个都使用各自的股票代码名称加载一个对象。让我们看一下这些数据框之一,以了解这些数据是什么:
您可以看到该对象包含一系列每日观察结果( Open
、 High
和 Close
股价 )。我们还了解到对象被格式化为xts
对象, 是一种时间序列格式,实际上我们了解到数据范围从 2007-01-03 到 2022-03-24。
使用以下命令生成一个看起来有点花哨的图表
当我们估计波动率模型时,我们使用收益率。有一个函数可以将数据转换为收益率。
dailyReturn(IBM)
单变量 GARCH 模型
您需要做的第一件事是确保您知道要估计的 GARCH 模型类型,然后让 R 知道这一点。让我们看看:
这里的关键问题是 Mean Model
(这里是 ARMA(1,1) 模型)和 GARCH Model
, 这里 sGARCH(1,1)
基本上是 GARCH(1,1) 的模型。
假设您要将平均模型从 ARMA(1,1) 更改为 ARMA(1,0),即 AR(1) 模型。
uec <- ugarchspec
以下是 EWMA 模型示例。
ewm = ugarchspe
模型估计
现在我们已经指定了一个模型来估计,我们需要找到最好的参数,即我们需要估计模型。这一步是通过 it
函数来实现的。
fit(specrIBM)
fit
现在是一个包含一系列估计结果的列表。让我们看看结果
ar1
是均值模型的 AR1 系数(这里非常小且基本上不显着), alpha1
是 GARCH 方程中残差平方 beta1
的系数,是滞后方差的系数。
通常,您会希望使用模型输出进行一些进一步的分析。因此,了解如何提取参数估计值、标准误差或残差等信息非常重要。该对象 ugfit
包含所有信息。
names
如果您想提取估计的系数,您可以通过以下方式进行:
让我们绘制平方残差和估计的条件方差:
R语言单变量和多变量(多元)动态条件相关系数DCC-GARCH模型分析股票收益率金融时间序列数据波动率-2