如何在 Python 中生成和绘制示例收益率曲线
Posted
技术标签:
【中文标题】如何在 Python 中生成和绘制示例收益率曲线【英文标题】:How to generate and plot example yield curves in Python 【发布时间】:2020-12-03 19:30:44 【问题描述】:如果我想绘制国债收益率曲线,对于给定日期,我的 x、y 变量将如下所示:
x = ['1month', '2month', '3month', '6month', '1year', '2year', '3year', '5year', '7year', '10year', '20year', '30year']
y = [0.09, 0.09, 0.10, 0.11, 0.12, 0.11, 0.13, 0.22, 0.40, 0.56, 1.01, 1.23]
然后我可以绘制曲线。
但是,我还想做的是生成不同的 y 轴列表,以便能够绘制样本曲线,作为与真实曲线的比较。可以在此处找到此类曲线的示例:What do different yield curve shapes mean?
所以,基本上,我会得到 4 个额外的列表,有 12 个值,分别是:y_normal、y_inverted、y_steep 和 y_flat。
我已经尝试手动计算出这些值应该是什么,但我发现它很棘手,并且强烈怀疑有一种 Python 方式来生成这些列表 - 希望每个列表的 '1month' 值基于 ' 1个月的真实数据价值。
从那里,我不想只在同一张图表上绘制这些,而是想以编程方式将它们与真实曲线进行比较,以确定真实曲线的类型(正常、倒置、陡峭、平坦)。我相信我可以结合使用 scipy.optimize curve_fit 和 sklearn.metrics r2_score 来实现该部分,但也希望获得有关如何执行此操作的任何其他指导。
如果有人能帮我解决价值生成问题,我将不胜感激,因为这是我最苦恼的部分,但对比片的指导会让你提升到超级明星的水平!
【问题讨论】:
【参考方案1】:查看 *** 帖子中的“虚假股市数据”部分:https://***.com/a/30424537/13608599。您可以对其进行修改以生成合成收益率曲线(例如,创建向上倾斜的趋势线加上穿过 1 个月点的噪声)。
您可以在这里获得价值数十年的实际收益率曲线数据:https://fred.stlouisfed.org
【讨论】:
以上是关于如何在 Python 中生成和绘制示例收益率曲线的主要内容,如果未能解决你的问题,请参考以下文章