R收益率曲线包以天为单位提取期限利率

时间:2019-07-17 15:33:12

标签: r quantitative-finance

我正在使用“收益率曲线”软件包按照Nelson-Siegel(NS)方法估算期限结构。

我的方法是首先估计NS模型参数,然后使用这些估计的参数得出所需的一组到期利率。

如收益曲线文档中所述,NS参数的估计需要两个输入-利率,以及与这些利率相对应的到期向量。重要的是,期限以月表示。

下一步,估算NS利率需要两个输入-NS参数和要求利率的到期向量。与上一步不同,与该步骤相对应的文档没有说明如何表示成熟度(天/月/年?)。我有兴趣估算1,2,3,4,5天等短期债券的利率。

我希望这里的人可以帮助阐述这一点。

以下是我的代码的摘录:

到期向量,对应于xts对象利率中包含的数据。我将其除以30,以得到以月为单位表示到期日的结果。

SELECT CASE
          WHEN age(lastoccurrence AT TIME ZONE 'UTC') > '1 week'
          THEN '> 1 week'
          WHEN age(lastoccurrence AT TIME ZONE 'UTC') > '2 days'
          THEN '1 week'
          WHEN age(lastoccurrence AT TIME ZONE 'UTC') > '1 day'
          THEN '2 days'
          WHEN age(lastoccurrence AT TIME ZONE 'UTC') > '12 hours'
          THEN '1 day'
          WHEN age(lastoccurrence AT TIME ZONE 'UTC') > '6 hours'
          THEN '12 hours'
          ELSE '6 hours'
       END
FROM tmp.tablea;

我要获取利率的到期向量。

    maturity <- c(1/30,7/30,14/30,1)

估计Nelson-Siegel模型参数

    term <- (1/30,2/30,3/30,4/40,5/30,6/30,7/30,8/30,9/30,10/30,11/30,12/30)

使用NS模型参数来估算所需期限的利率。

    NSParameters <- Nelson.Siegel(rate = rate, maturity = maturity)

我的输出结果似乎没有多大意义,这使我想知道我是否以要求的格式表示到期日。

PS。我已经浏览了在此论坛上提交的与“收益率曲线”数据包有关的所有查询,但是到目前为止,我还找不到答案。

1 个答案:

答案 0 :(得分:0)

Nelson.Siegel参数必须为xts格式。 由于您没有提供速率向量,因此我自己创建了一个。

library(YieldCurve)
maturity <- c(1/30, 7/30, 14/30, 1)
rate <- c(-0.004217, -0.004248, -0.003909, -0.003819)
nsp <- xts(Nelson.Siegel(rate, maturity), order.by = as.Date("2019-10-12"))


term <- 1:12/30
as.numeric(NSrates(nsp, term))

 [1] -0.004288541 -0.004287670 -0.004286799 -0.004285930 -0.004285062 -0.004284195
 [7] -0.004283329 -0.004282463 -0.004281599 -0.004280736 -0.004279874 -0.004279013