始める無料で始める

t 分布をデータに当てはめる

Student t 分布は、日次・週次・月次リターンに対して、正規分布よりも一般に適合が良いことが多いです。

QRM パッケージの fit.st() 関数で推定できます。得られた当てはめ結果には、推定されたパラメータが入った par.ests コンポーネントがあり、これをリスト tpars に代入して、後で使う numusigma の値を保存できます。

> 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 の要素をそれぞれ numusigma に代入します。
  • 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")
コードを編集して実行