t 分布をデータに当てはめる
Student t 分布は、日次・週次・月次リターンに対して、正規分布よりも一般に適合が良いことが多いです。
QRM パッケージの fit.st() 関数で推定できます。得られた当てはめ結果には、推定されたパラメータが入った par.ests コンポーネントがあり、これをリスト tpars に代入して、後で使う nu、mu、sigma の値を保存できます。
> tfit <- fit.st(ftse)
> tpars <- tfit$par.ests
> tpars
nu mu sigma
2.949514e+00 4.429863e-05 1.216422e-02
この演習では、djx に含まれる 2008–2011 年のダウ・ジョーンズ指数の日次対数リターンに Student t 分布を当てはめます。次に、データのヒストグラムを描き、その上に当てはめた t 密度を示す赤い線を重ねます。djx データと QRM パッケージは読み込まれています。
この演習はコースの一部です
Rで学ぶ定量的リスク管理
演習の手順
fit.st()を使ってdjxのデータに Student t 分布を当てはめ、結果をtfitに代入します。- 当てはめ結果の
par.estsコンポーネントをtparsに代入し、tparsの要素をそれぞれnu、mu、sigmaに代入します。 hist()を補完して、djxのヒストグラムを描画します。dt()を補完して、djxの値での当てはめた t 密度を計算し、yvalsに代入します。数式は動画を参照してください。lines()を補完して、djxのヒストグラムに当てはめた t 密度の赤い線を追加します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Fit a Student t distribution to djx
tfit <- ___(___)
# Define tpars, nu, mu, and sigma
tpars <- ___
nu <- ___
mu <- ___
sigma <- ___
# Plot a histogram of djx
hist(___, nclass = 20, probability = TRUE, ylim = range(0, 40))
# Compute the fitted t density at the values djx
yvals <- dt((___ - ___)/___, df = ___)/___
# Superimpose a red line to show the fitted t density
lines(___, yvals, col = "red")