コピュラと金融工学の新展開(?)

11,184 views

Published on

Tokyo webmining(20110116、http://atnd.org/events/11710)用の資料。

コピュラの基本概念から金融での応用、Rでの実装まで紹介。

0 Comments
10 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
11,184
On SlideShare
0
From Embeds
0
Number of Embeds
726
Actions
Shares
0
Downloads
125
Comments
0
Likes
10
Embeds 0
No embeds

No notes for slide

コピュラと金融工学の新展開(?)

  1. 1. コピュラと金融工学の新展開第9回 データマイニング+WEB 勉強会@東京 ( TokyoWebmining 9)-1st Week - 大規模解析・機械学習・クオンツ 祭り-Presenter : @teramonagi(some web services)
  2. 2. コピュラと金融工学の新展開(?) 第9回 データマイニング+WEB 勉強会@東京 ( TokyoWebmining 9)-1st Week - 大規模解析・機械学習・クオンツ 祭り- Presenter : @teramonagi(some web services)
  3. 3. 1:コピュラって何だ?TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 3
  4. 4. コピュラ≒関係TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 4
  5. 5. コピュラ≒確率変数間の関係TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 5
  6. 6. 確率変数間の関係≒結合分布TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 6
  7. 7. 多変量正規分布∈結合分布TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 7
  8. 8. 多変量正規分布って何だ?TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 8
  9. 9. 多変量正規分布TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 9
  10. 10. 多変量正規分布での関係確率変数間の関係は・・・ そうか!Σの 中に相関とし て入っている のか!TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 10
  11. 11. 一方、周辺分布は (1変量)正規分布TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 11
  12. 12. 周辺分布と結合分布の関係 1変量 1変量 正規分布 正規分布 多変量正規分布TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 12
  13. 13. 関係の一般化(コピュラ!) 1変量 1変量 正規分布 正規分布 コピュラ 何らかの結合分布TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 13
  14. 14. 2変量結合分布の等高線 正規コピュラ t コピュラ クレイトン・コピュラ ガンベル・コピュラ 周辺は標準正規・コピュラだけ違うTokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 14
  15. 15. 長所:周辺分布 とその関係(コ ピュラ)を分けて モデリングできるTokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 15
  16. 16. 短所:意味づけとか解釈が難しいTokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 16
  17. 17. Sklar’s Theorem参考:wikipedia(コピュラ(統計学)-スクラーの定理)TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 17
  18. 18. 正規コピュラ 周辺分布が正規分布の時、多 変量正規分布を再現TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 18
  19. 19. Source Code (R)library(copula)#ケンドールのτは全部一致(するようにした)kendallsTau(normalCopula(0.5))kendallsTau(tCopula(0.5))kendallsTau(claytonCopula(1))kendallsTau(gumbelCopula(1.5))#plotlim <- c(-3,3)marginal <- c("norm", "norm")parameter <- list(list(mean=0,sd=1), list(mean=0,sd=1))par(mfrow=c(2,2),mar=c(2,2,1,1))contour(mvdc(normalCopula(0.5), marginal,parameter),dmvdc, xlim=lim, ylim=lim)contour(mvdc(tCopula(0.5), marginal,parameter),dmvdc, xlim=lim, ylim=lim)contour(mvdc(claytonCopula(1), marginal,parameter),dmvdc, xlim=lim, ylim=lim)contour(mvdc(gumbelCopula(1.5), marginal,parameter),dmvdc, xlim=lim, ylim=lim)※動作前にパッケージのインストールInstall.packages(“copula”)は必要。※この資料に出てくる他のコードも同様TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 19
  20. 20. 2:金融での応用例TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 20
  21. 21. 2-1 リターン分布のモデリングTokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 21
  22. 22. 米・独・中・日の代表的な株価指数のリターン分布TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 22
  23. 23. 周辺分布のモデリング ≒正規分布TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 23
  24. 24. どのコ ピュラが 合うだろ うか・・・TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 24
  25. 25. T-コピュラ!TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 25
  26. 26. モデルパラメーターの決定 > fit.ml The estimation is based on the maximum likelihood and a sample of size 925. Estimate Std. Error z value Pr(>|z|) rho.1 0.7155620 0.01621145 44.139295 0.000000e+00 rho.2 0.3177060 0.03710005 8.563493 0.000000e+00 rho.3 0.2515627 0.03968773 6.338551 2.319365e-10 rho.4 0.5159302 0.02766178 18.651374 0.000000e+00 rho.5 0.4672290 0.03002338 15.562172 0.000000e+00 rho.6 0.7427242 0.01413110 52.559528 0.000000e+00 df 9.4838458 0.92328625 10.271837 0.000000e+00 The maximized loglikelihood is 892.0507 The convergence code is 0TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 26
  27. 27. 計算したパ ラメーターを 使って将来 シミュレー ションする んだねTokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 27
  28. 28. #海外の株価指数が取れるんでquantmod使う Source Code (R) library(quantmod) library(copula) #S&P500,DAX,香港ハンセン指数,NIKKEI225 symbols <- c("^GSPC","^GDAXI","^HSI","^N225") #終値のみ取得用関数 getClose <- function(symbol, date.from){ x <- getSymbols(symbol, auto.assign=FALSE, from=date.from) index.close <- grep("Close", colnames(x), ignore.case=TRUE) return(x[, index.close]) } #指数値のリスト、終値だけ取得 data.index <- sapply(symbols,getClose,"2007-01-01") #1つのxtsへ&欠損行削除 data.index <- do.call("merge",data.index) data.index <- data.index[!apply(data.index,1,function(x)any(is.na(x))),] #リターン系列へ return.index <- data.index / lag(data.index)-1 return.index <- return.index[-1,] pairs(as.matrix(return.index)) #基準化してuに倒してPLOT(周辺分布は正規だと仮定) return.index.scaled <- apply(return.index,2,scale) pairs(pnorm(return.index.scaled)) #パラメーターの最尤推定 dim.index <- ncol(return.index.scaled) dim.param <- dim.index*(dim.index-1)/2 t.cop <- tCopula(rep(0,dim.param), dim = dim.index,dispstr = "un", df.fixed = FALSE) fit.ml <- fitCopula(t.cop, pnorm(return.index.scaled), method="ml", start=c(rep(0,dim.param),10)) fit.mlTokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 28
  29. 29. 2-2 Collateralized Debt ObligationTokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 29
  30. 30. CDOって何だ?TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 30
  31. 31. ざっくりとした図解 資産 シニア 吹 優 AAA っ 貰 住宅 先 AA メザニン 飛 え 劣 び る 後 社債 構 BB 度 お 造 合 金 ABS --- エクイティ いTokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 31
  32. 32. 吹っ飛び度合い VS 貰えるお金TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 32
  33. 33. 吹っ飛び度合いに応じた貰えるお金を計算したいTokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 33
  34. 34. 貰えるお金の期待値 || 損失の期待値TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 34
  35. 35. Pricing Formula利子率(のようなもの)TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 35
  36. 36. 無理TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 36
  37. 37. Approximated Pricing Formula※ここから先の計算は参考文献[1]を追試する形TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 37
  38. 38. 損失の関係 あるCDO証 券の損失 シニア メザニン 全体の 損失 a bTokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 38
  39. 39. 損失をモデリング する必要性TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 39
  40. 40. 資産間の吹っ飛 び度合いの関係 をコピュラで表現TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 40
  41. 41. そして を計算TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 41
  42. 42. 計算結果 スプレッド(Sのこと) 単位:bp コピュラ エクイティ メザニン シニア スーパーシニア 正規 1,145.42 62.49 0.52 0.000 t(20) 1,055.28 86.07 2.18 0.004 t(6) 896.74 126.44 8.56 0.044 t(3) 733.31 165.90 23.56 0.191 クレイトン 857.64 135.73 12.83 0.084 吹っ飛び度合い※参考文献[1]P109・表7の値をほぼ再現TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 42
  43. 43. 正規コピュラ が業界標準TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 43
  44. 44. 金融危機時にはリスクを過小評価 していた?TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 44
  45. 45. Source Code - 1 (R) library(copula) #CDOのスプレッド計算関数 SpreadOfCDO <- function(copula, default.probability, maturity, recovery.rate, attachment, detachment, num.path, num.refdebt) { #コピュラによる乱数生成。これと倒産確率を比べて倒産判定実施 random.copula <- rcopula(copula,num.path) #各パスごとのデフォルト件数 num.default <- rowSums(random.copula < default.probability) #債務全体の損失率 loss.refdebt <- (1-recovery.rate)/num.refdebt*num.default #トランシェの損失率 loss.tranche <- (pmax(loss.refdebt - attachment,0)-pmax(loss.refdebt - detachment,0))/(detachment- attachment) #トランシェの損失率の期待値(標本ベース) expectation.loss.tranche <- sum(loss.tranche)/num.path #スプレッド spread <- -1/maturity*log(1-expectation.loss.tranche) return(spread) }TokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 45
  46. 46. Source Code - 2 (R) ############### main ############# #parameter NUM.PATH <- 10^5 NUM.REFDEBT <- 100 DEFAULT.PROBABILITY <- 0.05 MATURITY <- 5 RECOVERY.RATE <- 0.4 #使用するコピュラオブジェクトを生成しておく COPULA <- list(normalCopula(0.15, dim = NUM.REFDEBT), tCopula(0.15, dim = NUM.REFDEBT, df = 20), tCopula(0.15, dim = NUM.REFDEBT, df = 6), tCopula(0.15, dim = NUM.REFDEBT, df = 3), claytonCopula(0.21, dim = NUM.REFDEBT) ) #ある程度パラメーター固定したスプレッド計算関数 SpreadOfCDOWithFixedParameter <- function(copula,attachment, detachment){ SpreadOfCDO(copula, DEFAULT.PROBABILITY, MATURITY, RECOVERY.RATE, attachment, detachment, NUM.PATH, NUM.REFDEBT) } result <- list() #エクイティ result[[1]] <- sapply(COPULA,SpreadOfCDOWithFixedParameter,0.0,0.06) #メザニン result[[2]] <- sapply(COPULA,SpreadOfCDOWithFixedParameter,0.06,0.18) #シニア result[[3]] <- sapply(COPULA,SpreadOfCDOWithFixedParameter,0.18,0.36) #スーパーシニア result[[4]] <- sapply(COPULA,SpreadOfCDOWithFixedParameter,0.36,1) #行列&bp化 result <- 10^4*do.call("cbind", result) colnames(result) <- c("エクイティ","メザニン","シニア","スーパーシニア") rownames(result) <- c("正規","t(20)","t(6)","t(3)","クレイトン") resultTokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 46
  47. 47. ご清聴ありがとうございましたTokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 47
  48. 48. 参考 文献[1]・金融危機時における資産価格変動の相互依存関係:コピュラに基づく評価新谷 幸平、山田 哲也、吉羽 要直[2] ・CDOのプライシング・モデルとそれを用いたCDOの特性等の考察:CDOの商品性、国内市場の概説とともに小宮 清孝[3] ・コピュラの金融実務での具体的な活用方法の解説戸坂 凡展/吉羽 要直 写真・ morgueFile・ Stock.XCHNGTokyoWebmining #9(2011/01/16) 「コピュラと金融工学の新展開(?)」 Presenter : @teramonagi 48

×