正規分布の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 を入力して確認できます。
変数 mu と sigma には、djx に含まれる 2008–2009 年のダウ・ジョーンズ指数リターンの推定平均と標準偏差が入っています。これら 3 つのオブジェクトはすべてワークスペースに用意されています。
この演習はコースの一部です
Rで学ぶ定量的リスク管理
演習の手順
seq()を補完して、\(-4\sigma\) から \(4\sigma\) までの 100 個の x 値の数列を作成し、xvalsに代入します。dnorm()を補完して、xvalsにおける \(N(\mu, \sigma^2)\) 分布の密度を計算し、ndensに代入します。type = "l"を使って、ndensをxvalsに対してプロットします。qnorm()とESnorm()を使って、この分布の 99% VaR と 99% ES を計算し、それぞれVaR99とES99に代入します。abline()を補完して、VaR99とES99の縦線をそれぞれ赤と緑で描画します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# 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")