问题描述
如果要绘制国库券收益率曲线,则在给定日期,我的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.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来实现这一部分,但也希望能有更多有关此操作的指导。
如果有人能帮助我解决价值创造问题,我将不胜感激,因为这是我最努力的部分,但是在比较篇上的指导会把您提升到超级巨星的水平!
解决方法
从以下StackOverflow帖子中查看“假股市数据”部分:https://stackoverflow.com/a/30424537/13608599。您可以对其进行修改以生成综合收益率曲线(例如,创建向上倾斜的趋势线以及穿过1个月点的噪声)。
您可以在这里获得数十年的实际收益率曲线数据:https://fred.stlouisfed.org