武藤?
【主】ダイナミクスを司る目的関数の推定
8/22
8/23
シナリオ1
- 天気・交通などの時系列データを用いてα・σを推定
- P(t)からπ(t,P)を推定
シナリオ2
- モンテカルロシミュレーションの各過程で導出したパラメータから推定したF_iをガウシアンミックスを使ってまとめ上げる→推定した目的関数F(X,θ)に
8/24 これからの流れ
疑問点
- ドリフト項と拡散項の関数の形を変える必要があるのでは?
- オプショングラフの例題では定数、ハイブリット推定では複雑な形になっていたので、
適用する分野に最適なものにする必要
- オプショングラフで設定している3つの関数(中間利潤、満期利潤、遷移コスト)によって推定される目的関数の形がある程度制限される=推定できたとしてもその目的関数は完全に自由な形ではなく、仮定した分しか反映できていないのではないか?
- 金融系であれ流行系であれ仮定する項をなるべく増やして、より現実の現象に近づけていく必要がある?
8/25
粒子フィルタ
- 状態x_{t-1}から次の状態x_{t}を生成するシステム方程式と
次の状態x_tからデータy_tを生成する観測方程式から構成
- 確率微分方程式に適用するには観測方程式を確率微分の中に組み込んだ研究例が必要
- 粒子モデルをもう少し粘る
確率微分paramハイブリット推定を提唱している人とyuima関係者が一緒
- yuimaで上手くいったときの理論の部分を上手く説明できる理解度が必要
より簡単なモデル(微分方程式)などで関数推定できるか?
- ノイズのない決定的なものでもNPV導出、オプショングラフ理論の適用が可能かどうか?
- 確率微分は必要だが、NPV関数J(t,T,n(・))内部の推定対象関数を減らすことはできるかも
- アクティビティの遷移を十分表現できるなら項が1つでもできそう(十分に表現できるよう自分で考える必要)
8/28
- 粒子フィルタ、確率微分+データyに関する観測方程式モデルをどう作るか?
エルゴード性
https://www.kumamoto-u.ac.jp/daigakujouhou/kouhou/kouhoushi/kumadainow/labo/2019/20200108
- 初期値を変えても同様の時系列変化を辿ること
- 空間(初期値の集合)による期待値と時間(時系列変化)による期待値が一致すること
8/29
確率微分方程式のパラメータ推定
Adaptive Bayes推定 (内田, 吉田., 2014)
- R言語のライブラリ(yuima)が存在する
- サンプルコードがあるので確率微分方程式を変更してコピペで実行可能
yuimaサンプル(準最尤推定(QMLE))
パラメータ推定
library("yuima")
# 時系列データの読み込み
data <- read.csv("C:/Users/tpu/Desktop/mi.u-tokyo.ac.jp_consortium2_data_maxtemp.csv")
# 当てはめる確率微分方程式
mod <- setModel(drift = "(2-theta2 * x)", diffusion = "(1+x^2)^theta1", state.variable="x", time.variable="t", solve.variable="x")
my.yuima <- setYuima(data=setData(data), model=mod)
param.init <- list(theta2 = 0.5, theta1 = 0.5)
mle <- qmle(my.yuima, start=param.init)
# QMLE推定結果
summary(mle)
出力
Quasi-Maximum likelihood estimation
Call:
qmle(yuima = my.yuima, start = param.init)
Coefficients:
Estimate Std. Error
theta1 0.3606014 0.01315033
theta2 0.1059911 0.02039105
-2 log L: 2983.879
対数尤度が低すぎて当てはまりは良くない?
推定パラメータで逆プロット
n<-486
ysamp <- setSampling(Terminal=1, n=n)
t.yuima <- setYuima(model = ymodel, sampling = ysamp)
set.seed(123)
t.yuima <- simulate(t.yuima, xinit=10.4, true.parameter=list(theta1=0.3606014, theta2=0.1059911))
plot(t.yuima)
8/30
yuimaを使ってみた現在の見解
数値的にパラメータ推定をする場合、ドリフト項・拡散項は具体的な関数である必要
- 実データ+項の関数が既に推定された確率微分方程式がセットになっている情報源を使う
- 実際に存在するのかは不明
- アクティビティノードの遷移(複数のカテゴリごとでデータがエッジでつながっている+データ単体の現在時刻キャッシュフローなど)が見えるデータである必要もある
- 「このデータはこの確率微分方程式に従う傾向がある」といった証拠論文を見つけるのもあり
- yuimaコードサンプルにある確率微分方程式からシミュレート(あらかじめ決めたパラメータを使用)したデータを使う
- この場合、P(t)が既に分かっているのでNPV問題にすぐ持っていける
- 「ある確率微分方程式から抽出された時系列データ」という抽象データなので、これがオプショングラフに適用できるなら問題なさそう
- 中小データだとアクティビティノードの遷移が見えないのではないか?
SIRモデル=ドリフト項、拡散項にWiener増分をつけるやり方はどうか?
8/31
実時系列データをそのままP(t)として使う→オプショングラフに適用できるかどうか?
- アメリカンオプションがたまたま確率微分で表現されているだけで、時系列データが得られるなら、確率微分の解を求めなくても良い?
- 時系列データがWiener過程に従う前提ならそのようなデータを用意する必要