草薙の研究ログ

英語の先生をやってます。

外国語教育で極値統計・VaR・期待ショートフォール:自分用メモ

極値統計

極値分布:最小値や最大値が(漸近的に)従う分布。リスク管理などで使われる。

一般極値分布(generalized extreme value distribution, GEV)は,3つのパラミターをもつ。

  • 位置パラミター
  • スケールパラミター
  • 形状パラミター

形状パラミターの値によって,分布のかたちはかわる。ガンベル型,フレシェ型,ワイブル型など。それぞれ番号があって,1,2,3。これらを総じて(一般化して),一般極値分布とよぶそうだ。

 

Rでいろいろやるには,

  • ismev
  • evir

など,いろいろあるようだけども,evdパッケージが良さそうだった。以下例。

 

#正規分布乱数で最大値のセットを再現
r<-numeric(0)
for(i in 1:1000){
r[i]<-max(rnorm(100))
}

fgev(r)#最尤法によるパラミター推定

#確率密度分布の描画
x<-seq(0,5,.01)
distrev<-dgev(x,fgev(r)$estimate[1],fgev(r)$estimate[2],fgev(r)$estimate[3])
plot(x,distrev,type="l")

#分位点の描画
quandev<-qgev(.95,fgev(r)$estimate[1],fgev(r)$estimate[2],fgev(r)$estimate[3])
abline(v=quandev,col=2)

#乱数の生成
randev<-rgev(1000,fgev(r)$estimate[1],fgev(r)$estimate[2],fgev(r)$estimate[3])

 

VaR

VaRもリスク管理の指標。私がいいとおもっている比較点というのとおなじ。正規分布の場合,コーニッシュ・フィッシャーの漸近展開を使って, 

CornFishPtile<-function(p,m,sd,s,k){
q<-qnorm(p) #累積標準正規分布から任意の分位点をもとめる
cf<-q+s*((q^2-1)/6)+k*((q^3-3*q)/24)-s^2*((2*q^3-5*q)/36) #コーニッシュ・フィッシャー展開
ptile<-m+cf*sd #平均値,標準偏差,推定値から値をもとめる
list("p"=p,"Standard_Normal"=q,"Cornish_Fisher_Estimate"=cf,"value"=ptile)
}

RのパッケージではPerformanceAnalyticsパッケージがよいみたい。VaRという関数がある。

 

期待ショートフォール

もちろん,PerformanceAnalyticsパッケージがよいみたい。

ES関数。

でも,

www.portfolioprobe.com

こちらの先生の関数でもいけそう。自作してもいいね。

はやくウェブアプリ作らなきゃって話だよな。