始める無料で始める

正規分布のVaRとESを計算する

標準関数 qnorm() は、確率 p、平均、標準偏差から正規分布の分位点を計算します。これを使ってバリュー・アット・リスク(VaR)を求められます。さらに QRM パッケージの ESnorm() は、確率 p、位置パラメータ mu、スケールパラメータ sd から正規分布の期待ショートフォール(ES)を計算します。

qnorm(p, mean = 0, sd = 1)
ESnorm(p, mu = 0, sd = 1)

p の代表的な数値としては、信頼水準 95% と 99% に対応する 0.95 と 0.99 があります。

この演習では、平均 $\mu\(、標準偏差 \)\sigma$ の正規分布 \(N(\mu, \sigma^2)\) に対して VaR と ES を計算し、表示します。その過程で、数列を生成する関数と、プロットに直線を追加する関数を使います。各関数の引数については、コンソールで ?seq?abline を入力して確認できます。

変数 musigma には、djx に含まれる 2008–2009 年のダウ・ジョーンズ指数リターンの推定平均と標準偏差が入っています。これら 3 つのオブジェクトはすべてワークスペースに用意されています。

この演習はコースの一部です

Rで学ぶ定量的リスク管理

コースを見る

演習の手順

  • seq() を補完して、\(-4\sigma\) から \(4\sigma\) までの 100 個の x 値の数列を作成し、xvals に代入します。
  • dnorm() を補完して、xvals における \(N(\mu, \sigma^2)\) 分布の密度を計算し、ndens に代入します。
  • type = "l" を使って、ndensxvals に対してプロットします。
  • qnorm()ESnorm() を使って、この分布の 99% VaR と 99% ES を計算し、それぞれ VaR99ES99 に代入します。
  • abline() を補完して、VaR99ES99 の縦線をそれぞれ赤と緑で描画します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Make a sequence of 100 x-values going from -4*sigma to 4*sigma
___ <- seq(from = -4*sigma, to = 4*sigma, length.out = ___)

# Compute the density of a N(mu, sigma^2) distribution at xvals
___ <- dnorm(___, mean = ___, sd = ___)

# Plot ndens against xvals


# Compute the 99% VaR and 99% ES of a N(mu, sigma^2) distribution
___ <- qnorm(___, mean = ___, sd = ___)
___ <- ESnorm(___, mu = ___, sd = ___)

# Draw vertical lines at VaR99 and ES99 in red and green
abline(v = ___, col = "red")
abline(v = ___, col = "green")
コードを編集して実行