R语言中的Nelson-Siegel模型在汇率预测的应用

news2025/4/28 8:43:02

 这篇文章的目的是指导读者逐步使用R编程语言实现Nelson-Siegel模型的步骤。

最近我们被客户要求撰写关于Nelson-Siegel模型的研究报告,包括一些图形和统计输出。

您可能已经知道,估计利率期限结构是任何资产定价的关键,因此对投资者和政策制定者起着重要的作用。想法是使一条连续曲线适合现有数据。就是说,给定可获取的利率和相应的到期日(通过彭博社或任何其他数据提供商),可以使用Nelson-Siegel方法得出利率的期限结构。

  • R或RStudio

  • LIBOR / OIS利率和相应的到期日(通过彭博社或其他数据提供商)

一点理论…

在开始执行模型之前,让我们回顾一下基础知识。

Nelson-Siegel零息债券的到期收益率:

零息债券价格:

优化问题:

这个想法是两个价格应该相等。因此,我们想找到使两个价格之间的平方差平方和最小的Nelson-Siegel因素。


实施模型的步骤

 第1步:数据导入和变量定义

  • 我们导入LIBOR / OIS利率和相应的到期日,对其进行过滤,然后将其存储在数据框中。
  • 然后,我们使用导入的LIBOR / OIS汇率计算每个到期日的零息票价格。
  • 我们最终计算出最长(50年)和最短(1个月)到期的到期收益率(YTM)。
    • 为了简化步骤2中描述的网格搜索和步骤3中描述的优化问题,我们将近似\ beta_0 并\ beta_1使用50年和1个月的YTM。
      • \ beta_0 可以用50年的YTM来近似。
      • \ beta_1 可以通过50年期和1个月YTM之间的差异来近似估算。

 步骤2:对目标函数进行编程

  • 我们对函数进行编程,该函数计算LIBOR / OIS利率给出的零息债券价格与Nelson-Siegel模型给出的零息债券价格之间的平方偏差的平方和。

 步骤3:网格搜索

  • 我们定义为我们的参数范围 :

  • 我们创建一个包含所有可能的组合矩阵 。
  • 我们选择产生最小平方偏差总和的组合作为我们的初始参数,以插入优化问题。

 步骤4:优化问题

  •  ,我们可以解决非线性优化问题:
    • 初始参数(x0)是在网格搜索中找到的参数。
    • 目标函数(eval_f)是在步骤2中编程的目标函数。
    • 上限和下限(ub和lb)定义如下:

 步骤5:调整模型

此时获得完美契合的机会非常渺茫。必须重复步骤3和4调整模型。进一步来说:

  • 我们必须围绕步骤5中获得的结果执行第二次网格搜索,搜索范围较窄,然后重新运行优化问题。
    • 您可能还想尝试使用不同的参数组合,得出平方偏差的第二,第三或第四最小和。
  • 我们也将要执行的最后一个网格搜索 在第二轮优化得到的数值。
  • 技巧 –在模型中尝试不同的初始参数时,针对LIBOR / OIS Bloomberg数据点绘制通过求解参数获得的最终收益曲线,以了解其拟合程度。没有完美的方法可以完成–这是一个反复试验的过程。  

 步骤6:绘制估计的收益曲线

现在,我们有了Nelson-Siegel因子,可以估算出收益率曲线:

 


结果与结论

下图以红色显示了所获得的LIBOR收益率曲线。彭博LIBOR / OIS汇率以绿色显示。

尽管曲线可以很好地拟合数据点,但是我们可以看到拟合并不完美。Nelson-Siegel模型的替代方案是Svensson模型,该模型增加了两个参数以实现更好的拟合。

Svensson模型–零票息收益率:

实施Svensson模型的步骤与实施Nelson-Siegel模型的步骤相同。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/106182.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5G无线技术基础自学系列 | 基于Massive MIMO的场景化波束优化

素材来源:《5G无线网络规划与优化》 一边学习一边整理内容,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:5G无线技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 前面内容提到, 5G中引入了M…

机器人机械臂运动学——运动学正向解算

本博客内容参考台湾大学_林沛群教授_机器人学的课程内容 1.相对运动关系的描述方法 假设有现在这样的一个情景,从左到右有三个转轴,转轴本身可以转动,也可以沿着轴线上下平动,那么我们如何描述其中的运动学关系及其位置关系呢&am…

Linux Red Hat 8.0 cat、cut、sed、tail命令

1.cat: 在终端设备上显示文件内容 常用选项: -n 显示行数(空格有编号) -b 显示行数(空格没有编号) 命令格式:cat 选项 文件 特殊用法tac:倒着显示内容 配合重定向使用 查看 test1…

DPDK 多进程

DPDK库里是支持多进程和多线程,本文主要总结多进程的相关的操作。 DPDK多进程使用的关键启动参数: --proc-type:指定一个dpdk进程是主进程还是副进程(参数值就用上面的primary或是secondary,或者是auto)-…

【Bio】基础生物学 - 五个重要官能团 five important functional group

文章目录1. 羟qiǎng基(hydroxyl)2. 羧suō基(carboxyl)3. 氨基(amino)4. 磷酸盐(phosphate)5. 巯基(sulfhydryl)1. 羟qiǎng基(hydroxyl&#xf…

最新进展 | Android 自定义机器学习堆栈

作者 / Android 机器学习平台团队相较于服务器端机器学习 (ML),设备端机器学习有其独特的优势,如支持离线使用、延迟更低、隐私性更高和推理成本更低,因此 Android 中设备端机器学习的使用迅速增长。在构建基于设备端 ML 的功能时&#xff0c…

Android基于perfetto分析native内存泄露

官方文档(可在Chome直接翻译) https://perfetto.dev/docs/data-sources/native-heap-profiler 示例 raw-trace 资源地址 https://download.csdn.net/download/CSqingchen/87321798 本文示例是windows,这里使用了python工具,在Linux和mac同样适用 首先安装…

胡凡 《算法笔记》 上机实战训练指南 3.1 简单模拟

胡凡 《算法笔记》 上机实战训练指南 3.1 持续更新中 , 菜鸡的刷题笔记… 大学到现在了还没咋好好刷过题,该push自己了… 文章目录胡凡 《算法笔记》 上机实战训练指南 3.13.1 简单模拟【PAT B1001】害死人不偿命的(3n1)猜想【PAT B1032】挖掘…

spring扩展之基于HandlerMapping实现接口灰度发布的demo

背景 面试经常被问到,你了解spring源码吗?有基于spring做过什么扩展吗?除了PropertyPlaceholderConfigurer处理占位符(被说烂了)还有其他的吗? 看了springmvc的源码,有了一个新的案例可讲(吹) 基于HandlerMapping实现…

运营活动没做好,是没有明确目标

有很多运营人在做项目的时候,其实没有一个明确的目标,不清楚自己究竟为什么要做这件事。 我们在做运营方案前,要分析用户的需求有哪些,如何达成目标,制定出一个计划: 1、要做什么——计划 我们需要掌握运…

ES基础入门

ES 一、简介 1、Elastic Stack ES技术栈: ElasticSearch:存数据搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。 使用…

软件测试面试题和面试流程

自我介绍部分 .... 项目经历 .... 技能部分 性能 使用什么工具?介绍下最近做的性能测试项目,性能测试过程中遇到哪些问题?性能标准谁来定?你们性能测试的流程是什么?什么是分布式?为什么要用分布式&a…

硅片检测半导体运动台控制器的设计(二)

虽然我国目前对于精密硅片检测运动平台的整机研发还比较空白,但是值得注意的是,对于 X、Y 两自由度运动平台,甚至多自由度运动平台、先进驱动方式和控制策略的研究已经积累了一定的经验,吸收这些经验并应用于本运动平台的研发对选…

分布式系统(事务处理)

文章目录事务(Transaction)分布式事务原子提交协议单阶段提交两阶段提交三阶段提交串行等价 / 并发控制分布式死锁锁超时全局等待图边追逐算法事务放弃时的恢复服务器崩溃后的恢复恢复文件重组恢复文件日志从Crash 中恢复2PC 的恢复事务(Tran…

【Bio】基础生物学 - 化学键 chemical bond

文章目录化学键1. 共价键2. 离子键3. 金属键4. 非共价键5. 氢键Ref.化学键 化学键(chemical bond)是纯净物分子内或晶体内相邻两个或多个原子(或离子)间强烈的相互作用力的统称。使离子(ion)相结合或原子&…

【强化学习笔记】二.价值学习

文章目录Q&A1.DQN工作原理2.如何训练DQN2.1.如何更新模型参数3.2.1.完整走完流程,再更新模型参数。3.2.2.无需走完流程,即可更新模型参数。3.如何将TD算法应用到DQN网络Q&A 问:强化学习的目标是什么? 最大化累计奖励&am…

Windows 的 常用指令操作

目录 1、启动方式 2、修改cmd窗口背景色和字体色 3、文件夹常用指令 4、网络相关常用指令 5、其他常用命令 1、启动方式 用户启动:winR,输入cmd,Enter。 管理员启动:winR,输入cmd,CTRLShiftEnter。 …

Dubbo架构设计与源码解析(二) 服务注册

一、Dubbo简介 Dubbo是一款典型的高扩展、高性能、高可用的RPC微服务框架,用于解决微服务架构下的服务治理与通信问题。其核心模块包含【RPC通信】和【服务治理】,其中服务治理又分为服务注册与发现、服务容错、负载均衡、流量调度等。今天…

强化学习 —— DQN 代码遇到的问题总结

No module named ‘torch‘ 在把 DQN 代码复制到 PyCharm,点击“运行”后,出现了该报错。是因为当前环境中缺少 pytorch。解决方法: pip install torch如果因为网络问题安装特别慢,可从如下源进行下载: pip install…

php宝塔搭建部署实战开源版OneNav网址导航书签系统源码

大家好啊,我是测评君,欢迎来到web测评。 本期给大家带来一套php开发的开源版OneNav网址导航书签系统源码,感兴趣的朋友可以自行下载学习。 技术架构 PHP7.2 nginx SQLite3 JS CSS HTMLcnetos7以上 宝塔面板 文字搭建教程 下载源码&a…