本节书摘来异步社区《量化金融R语言初级教程》一书中的第1章,第1.3节,作者: 【匈牙利】Gergely Daróczi(盖尔盖伊) , 等 译者: 高蓉 , 李茂 责编: 胡俊英,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.3 协整

协整的思想缘于Granger(1981年)提出的一个概念,后来由Engle和Granger(1987年)加以形式化。协整的思想是指寻找非平稳时间序列之间的一个线性组合,这个线性组合是一个平稳时间序列。因此,协整方法可以用于检测非平稳时间序列(比如价格)之间的稳定长期关系。

航空燃油的交叉对冲

航空公司很自然需要购买航空燃油。但由于航空燃油价格的波动很剧烈,大部分航空公司会将它们对航空燃油价格变化的风险敞口对冲掉一部分。如果市场中缺乏航空燃油OTC产品(译注:OTC产品指交易所场外柜台交易产品),航空公司会使用相关交易所交易的期货合约(比如,取暖油)来实现对冲。在下面的部分中,我们首先使用经典方法导出最优对冲比率,这种方法仅仅考虑两种价格之间短期波动。然后考察价格之间的长期稳定联系,进而改进最优对冲比。

首先,我们载入需要使用的包。urca包有一些有用的方法,可以用于单位根检验和估计协整关系。

> library("zoo")

> install.packages("urca")

> library("urca")

我们导入航空燃油和取暖油的月价格。

> prices

+ FUN =as.yearmon, format = "%Y-%m", header = TRUE)

现在我们仅仅考虑两种商品的短期行为(月价格改变)。通过拟合一个用取暖油价格变化来解释航空燃油价格的线性模型,可以推导出两种商品的最小方差对冲比率。线性模型中的beta系数就是最优对冲比。

> simple_mod

函数lm(用于线性模型)估计了航空燃油价格变动对取暖油价格变动的最佳拟合系数。+0项表示截距设置为0,意味着航空公司不持有现金。

> summary(simple_mod)

Call:

lm(formula = diff(prices$JetFuel) ~ diff(prices$HeatingOil) +

0)

Residuals:

Min    1Q Median   3Q   Max

-0.52503 -0.02968 0.00131 0.03237 0.39602

Coefficients:

Estimate Std. Error t value Pr(>|t|)

diff(prices$HeatingOil) 0.89059  0.03983  22.36  <2e-16***

---

Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.0846 on 189 degrees of freedom

Multiple R-squared: 0.7257, Adjusted R-squared: 0.7242

F-statistic: 499.9 on 1 and 189 DF, p-value: < 2.2e-16

结果得到了方差比为0.89059和残差标准差为0.0846。但是,交叉对冲并非完美无缺,推导出的对冲组合结果仍然有风险。

现在,我们通过考察航空燃油和取暖油期货价格之间存在的长期关系,尝试改进方差比。我们使用下列命令画出两个价格序列(取暖油价格用红色),通过观察图形你可能已经猜出存在着这种长期关系。

> plot(prices$JetFuel, main = "Jet Fuel and Heating Oil Prices",

+  xlab = "Date", ylab = "USD")

> lines(prices$HeatingOil, col = "red")

我们使用Engle和Granger的两步估计方法。首先,使用增强的Dickey-Fuller检验(augmented Dickey-Fuller test,ADF检验)对两个序列进行单位根检验(非平稳性)。

> jf_adf

> summary(jf_adf)

###############################################

# Augmented Dickey-Fuller Test Unit Root Test #

###############################################

Test regression drift

Call:

lm(formula = z.diff ~ z.lag.1 + 1 + z.diff.lag)

Residuals:

Min    1Q Median   3Q   Max

-1.06212 -0.05015 0.00566 0.07922 0.38086

Coefficients:

Estimate Std. Error t value Pr(>|t|)

(Intercept) 0.03050  0.02177  1.401 0.16283

z.lag.1  -0.01441  0.01271 -1.134 0.25845

z.diff.lag 0.19471  0.07250  2.686 0.00789 **

---

Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.159 on 186 degrees of freedom

Multiple R-squared: 0.04099, Adjusted R-squared: 0.03067

F-statistic: 3.975 on 2 and 186 DF, p-value: 0.0204

Value of test-statistic is: -1.1335 0.9865

Critical values for test statistics:

1pct 5pct 10pct

tau2 -3.46 -2.88 -2.57

phi1 6.52 4.63 3.81

结果显示,因为检验统计量值−1.1335大于临界值−3.46,所以在1%的置信水平上不能拒绝非平稳(航空燃油时间序列包含一个单位根)的原假设。同样的结果对取暖油也成立(检验统计量是−1.041)。

> ho_adf

> summary(ho_adf)

现在我们可以继续估计静态均衡模型,并使用ADF方法检验时间序列的残差是否平稳。请注意,目前的研究序列是上一步的估计结果,因此,我们现在必须使用不同的临界值[参见Engle和Yoo1987发表的论文]。

> mod_static

> error

> error_cadf

> summary(error_cadf)

得到的检验统计量是−8.912,而规模为200的样本在1%的置信水平上的临界值为−4.00。所以,我们拒绝非平稳的原假设。因此我们发现了两个协整变量并且可以进行第二步,两个协整变量意味着一个误差修正模型(ECM)。ECM是一个动态模型,刻画了系统如何(以及多快)返回之前估计的静态均衡,这个静态均衡存储在变量mod_static中。

> djf

> dho

> error_lag

> mod_ecm

> summary(mod_ecm)

Call:

lm(formula = djf ~ dho + error_lag + 0)

Residuals:

Min    1Q Median   3Q   Max

-0.19158 -0.03246 0.00047 0.02288 0.45117

Coefficients:

Estimate Std. Error t value Pr(>|t|)

Dho  0.90020  0.03238 27.798  <2e-16 ***

error_lag -0.65540 0.06614 -9.909  <2e-16 ***

---

Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.06875 on 188 degrees of freedom

Multiple R-squared: 0.8198, Adjusted R-squared: 0.8179

F-statistic: 427.6 on 2 and 188 DF, p-value: < 2.2e-16

通过考察航空燃油价格和取暖油价格之间存在的长期联系(协整),对冲比现在稍微提高了一点(0.90020),并且残差标准差显著地降低了(−0.65540)。误差项的系数为负(−0.65540):两个价格之间原先较大的偏差有所修正,价格向它们的长期稳定关系移动。

r语言 协整_《量化金融R语言初级教程》一1.3 协整相关推荐

  1. R循环有两个_量化金融R语言【入门五味】五味:函数

    本章是此系列的最后一讲,也是衔接从入门到中阶的重要一节.众所周知,函数,不管是数学上定义的那种还是编程里叙述的那样,都意在表达逻辑.几乎写每个程序都或多或少地内嵌着函数在里面,即函数是程序的灵魂,没有 ...

  2. 对英国房屋价格建模并预测 ---《量化金融R语言初级教程》

    时间序列分析 一.实验介绍 1.1 实验内容 时间序列分析研究的是按时间顺序收集的数据.相邻的观测数据通常相互依赖.因此,时间序列分析的技术需要处理这种相依性. 本章的目标是通过一些特定应用来介绍一些 ...

  3. 《量化金融R语言高级教程》一1.2 波动率建模

    本节书摘来异步社区<量化金融R语言高级教程>一书中的第1章,第1.2节,作者: [匈牙利]Edina Berlinger(艾迪娜•伯林格) , 等 译者: 高蓉 责编: 胡俊英,更多章节内 ...

  4. 《量化金融R语言初级教程》一1.1 使用时间序列数据

    本节书摘来异步社区<量化金融R语言初级教程>一书中的第1章,第1.1节,作者: [匈牙利]Gergely Daróczi(盖尔盖伊) , 等 译者: 高蓉 , 李茂 责编: 胡俊英,更多章 ...

  5. 《量化金融R语言初级教程》一2.1 均方差模型

    本节书摘来异步社区<量化金融R语言初级教程>一书中的第2章,第2.1节,作者: [匈牙利]Gergely Daróczi(盖尔盖伊) , 等 译者: 高蓉 , 李茂 责编: 胡俊英,更多章 ...

  6. 《量化金融R语言初级教程》一2.6 如果方差不够用

    本节书摘来异步社区<量化金融R语言初级教程>一书中的第2章,第2.6节,作者: [匈牙利]Gergely Daróczi(盖尔盖伊) , 等 译者: 高蓉 , 李茂 责编: 胡俊英,更多章 ...

  7. 《量化金融R语言初级教程》一2.4 切线组合和资本市场线

    本节书摘来异步社区<量化金融R语言初级教程>一书中的第2章,第2.1节,作者: [匈牙利]Gergely Daróczi(盖尔盖伊) , 等 译者: 高蓉 , 李茂 责编: 胡俊英,更多章 ...

  8. 《量化金融R语言初级教程》一1.4 波动率建模

    本节书摘来异步社区<量化金融R语言初级教程>一书中的第1章,第1.4节,作者: [匈牙利]Gergely Daróczi(盖尔盖伊) , 等 译者: 高蓉 , 李茂 责编: 胡俊英,更多章 ...

  9. 《量化金融R语言初级教程》一2.3 使用真实数据

    本节书摘来异步社区<量化金融R语言初级教程>一书中的第2章,第2.3节,作者: [匈牙利]Gergely Daróczi(盖尔盖伊) , 等 译者: 高蓉 , 李茂 责编: 胡俊英,更多章 ...

最新文章

  1. Python教学课程分享10-异常处理结构
  2. Ubuntu14.04安装GitLab指南
  3. ES5-Array-valueOf/toString
  4. Docker容器学习梳理--日常操作总结
  5. ALV输出设置默认布局
  6. java怎么注销cookie_java web中cookie的永久创建与撤销
  7. C语言逗号运算符和逗号表达式基础总结
  8. metinfo mysql_Metinfo 5.3.17 前台SQL注入漏洞
  9. 字符串处理 —— AC 自动机
  10. 四款855旗舰对比:除开价格,各有优点
  11. 安装问题的审计(产生漏洞,抓包)
  12. 微信支付小程序开发php,关于微信小程序进行微信支付的步骤
  13. pano2vr 笔记
  14. 小米air耳机重新配对_小米air耳机重新配对_「小三爷出品」不错的新年礼物,小米蓝牙耳机Air体验...
  15. 2030年中国GDP将超越美国成为世界第一?
  16. 如何将多个mp3文件合并成一个?
  17. 一文了解公有云、私有云、混合云、边缘云、专有云、分布式云
  18. android的vmos虚拟机,vmospro虚拟机
  19. Codeforces1696 C. Fishingprince Plays With Array
  20. python绘制气象等值线图_气象要素场等值线图自动绘制

热门文章

  1. 传奇服务器都有哪些文件,传奇服务端目录文件详细说明
  2. “疫”不容辞,王老吉药业携南北医药致敬最美逆行者
  3. 我叒玩坏eclipse以后决定把问题记录下来了
  4. 【机器学习】数据挖掘/知识发现/人工智能相关概念梳理
  5. 跟领导谈加薪,聪明的员工都这么说
  6. DisplayFormat格式化字符串
  7. while it seems to fit format ‘yyyy-MM-dd‘T‘HH:mm:ss.SSSZ‘, parsing fails (leniency? null))
  8. SilkTest那些事儿_第一章 ST的HelloWord_录制回放1
  9. Cross compiling Windows binaries from Linux
  10. python selenium根据url获取cookie信息