2

Nelson-Siegelモデルを使用してイールドカーブを内挿したいと思います。私はR言語を初めて使用しますが、「イールドカーブ」パッケージ(http://cran.r-project.org/web/packages/YieldCurve/index.htmlおよびドキュメントのリンク:http:// cranで入手可能)を使用することにしました。 .r-project.org / web / packages / YieldCurve / YieldCurve.pdf)私が直面した2つの問題があります。

1)次のコード(ドキュメントのp.6)の6行目と7行目のNSratesの最初の2つのパラメーターがその形式をとった理由がわかりません。

data(FedYieldCurve)
tau <- c(3, 6, 12, 60, 84, 120)
mediumTerm <- c(12,60,84)
NSParameters <- Nelson.Siegel(rate=FedYieldCurve[1:10,],
                              maturity=tau, MidTau=mediumTerm )
y <- NSrates(NSParameters[5,1:3],
             NSParameters$lambda[5],tau)
plot(tau,FedYieldCurve[5,],main="Fitting Nelson-Siegel yield curve", type="o")
lines(tau,y, col=2)
legend("topleft",legend=c("observed yield curve","fitted yield curve"),
col=c(1,2),lty=1)
grid()

2)曲線から特定の利回りを抽出する方法は?たとえば、満期が12か月の場合、それに関連する利回りはどのくらいですか。

質問にお答えいただき、誠にありがとうございます。

4

1 に答える 1

4

のヘルプページをご覧くださいNSrates

3つの引数が必要です。

betaCoeff:ベータの係数のベクトルまたは行列。

lambdat:推定ラムダの値

満期:金利を返したいイールドカーブの満期。

の場合betaCeff、表示するコードはNSParameters[5, 1:3]、またはを使用します

   beta_0    beta_1   beta_2
5 13.7156 -1.468064 1.237194

これはdata.frameです。data.frame可能な入力として明示的には述べられていませんが、関数の最初の行はそれを(CRANバージョンを使用していると仮定して)に変換しmatrixます。

if(is.vector(betaCoeff)) betaCoeff <- matrix( betaCoeff, 1, 3)

の場合lambdat、表示するコードは、推定ラムダに使用する値であるを使用しますNSParameters$lambda[5]numeric

最後の引数はmaturityです。あなたが示したコードtauは、

> tau
[1]   3   6  12  60  84 120

ドキュメントによると、関数は

行数がnrow(betaCoeff)に等しく、列数がlength(maturity)に等しい行列オブジェクトの利率を返します。

この場合、

> y
           3        6       12      60       84      120
[1,] 12.7394 13.05852 13.40245 13.6897 13.69721 13.70273

12か月だけが必要な場合は、引数にmaturityのみ渡します。12maturity

> NSrates(NSParameters[5,1:3], NSParameters$lambda[5], 12)
           12
[1,] 13.40245
于 2012-08-28T03:08:44.700 に答える