Upgrade to Pro — share decks privately, control downloads, hide ads and more …

コンパートメントモデルをStanで解く

 コンパートメントモデルをStanで解く

2-コンパートメントモデルは係数と指数のセットが入れ替え可能な数式で示されます。このようなモデルだと単純な線形回帰で解くのはかなり難しくなります。2-コンパートメントモデルを無理矢理Stanで解析する方法を示します。

C9a9be84015afdc313a066362e109167?s=128

xjorv
PRO

May 06, 2021
Tweet

Transcript

  1. コンパートメントモデルをStanで解 く 2021/4/20 Ver. 1.0

  2. 近似解を用いる 最後の項の係数を置き換える https://biostat.jp/archive_teireikai_2_download.php?id=146 1コンポーネントモデルのExcelソルバーについてもココに記載 これも解を2つ持つが、まだ解ける可能性がある この数式で回帰ができれば、血中濃度曲線を書ける

  3. 複雑な関数での回帰の前に…直線回帰 直線回帰では、線と点の距離を最小とする 赤い線の長さの2乗の和を最小とするaとbを求める 𝑦 = 𝑎𝑥 + 𝑏 式は、 (2乗和)

  4. 直線回帰はなぜ解けるのか? bを固定すると、aと2乗和の関係は二次関数になる 二次関数の原点を求めれば、2乗和を最小とするaが求まる 2乗和 a aを固定するとbと2乗和との関係が二次関数になるので、bも同様に求まる

  5. 鍋底問題 回帰は、2乗和の底を求める問題となる 2乗和 a • 赤い点を満たす数式上の定数を求めればよい • 鍋の底の位置が分かれば、回帰ができる 𝑦 =

    𝑎𝑥 + 𝑏 aとbが定数
  6. 複雑な関数での回帰 線形回帰のように、単純な二次関数の形にならない 2乗和 数式上の定数 • 赤い点を探す問題となる • 底の位置が分かれば、回帰ができる

  7. どうやって探すのか? 方法はいくつかある • 初期値からボールを落として、最小値を求める • 微分値を使って求める • 鍋を揺すって、ボールの位置を調べる

  8. どうやって探すのか? 方法はいくつかある ボール落とし系 シンプレックス法 微分系 ニュートン法 揺する系 MCMC MCMC: Markov

    Chain Monte Carlo法、正確には揺するわけではなく、揺すったような挙動を記録する
  9. 初期値の影響 方法により、初期値が底の位置に影響を与える • ボール落とし系 • 微分系 では、初期値により解が変わる 右が見つかると、左は見つからない (部分最適解の問題) そもそも初期値の置き場所が難しい

  10. 初期値の影響 揺する方法は比較的初期値の影響を受けにくい • 初期値が違っても、ボールはどこへでも 行ける • 強く揺すれば、右に落ちても左に移動で きる • ボールの位置を連続的に記録する

  11. ボールの位置の分布 揺する強さを変えながらボールの位置を記録すると、 存在頻度 ボールの位置 底の位置にいる可能性が最も高くなる

  12. 揺する系の回帰: MCMC 乱数を用いた状態を連続的に変化させる計算手法のこと ベイズ統計学に則った方法

  13. ベイズの定理 確率の更新に関する定理 (p(q|y): 事後分布、p(Y|q):尤度、p(q):事前分布) ある確率がわかっていて、結果が得られた とき、新たに確率を更新する 方法を示した定理

  14. ベイズの定理の例 1月1日の晴れの確率が80%で、2021年1月1日が晴れたとき、 1/1の晴れの確率 ∝ 2021年は晴れ × 80% 事後分布 尤度 事前分布

    • MCMCでは、適当な事前分布を準備する • 測定結果を尤度として使用する • 最終的に求める値は事後分布となる 事前分布によっては計算できなくなるので、丁度いい感じの事前分布を設定する。無情報事前情報というのを用いる場合が最も多い
  15. Stan: MCMC計算機 https://mc-stan.org/ No-U-Turn SamplerとHMCはこの図を見るとイメージできるかもしれない https://elevanth.org/blog/2017/11/28/build-a-better-markov-chain/ • MCMCの計算機で、2012年から開発開始 • No-U-Turn

    SamplerとHMCの組み合わせ • 割と速く計算できて、学習コストはなかなか高い
  16. Stan: 統計モデリング Stanを理解し使うには、統計モデリングの概念の理解が必要 このあたりがモデルに相当する 一般線形混合モデル(Linear Mixed model)をさらに拡張させたものに近い

  17. Stan: やりたいこと • 血中濃度を以下の式で回帰したい • Aを小さめ、Bを大きめで計算したい • 回帰式から、薬物動態パラメータを求めたい 以上を満たす回帰モデルを作る

  18. 血中濃度のモデル 血中濃度は正規分布するとする 時間T(t-t dis )における血中濃度の平均値は以下にしたがう 𝑚𝑢 𝑡 = 𝐴𝑒−𝛼𝑇 +

    𝐵𝑒−𝛽𝑇 − (𝐴 + 𝐵)𝑒−𝛾𝑇 mu(t)は正規分布の平均値、Tは上記の通り、式は黄色の式のtをTで置き換えたもの
  19. 血中濃度のモデル 血中濃度は正規分布するとする 標準偏差の事前分布は適当に置く MCMCでの計算で適当に標準偏差の事後分布(値)を求めてもらう 𝑐1 𝑡 ~𝑁𝑜𝑟𝑚𝑎𝑙(𝑚𝑢 𝑡 , 𝑠𝑑)

    𝑠𝑑~𝐿𝑜𝑔𝑁𝑜𝑟𝑚𝑎𝑙(3, 3)
  20. パラメータの事前分布 求めたいパラメータの事前分布を適当に設定する Normal(mu, sd)は平均mu、標準偏差sdの正規分布、Uniform(0,1)は0から1までの一様分布を取ることを指す 𝐴~𝑁𝑜𝑟𝑚𝑎𝑙(40, 3) 𝐵~𝑁𝑜𝑟𝑚𝑎𝑙(60, 3) 𝛼~𝑁𝑜𝑟𝑚𝑎𝑙(0, 0.5)

    𝛽~𝑁𝑜𝑟𝑚𝑎𝑙(0, 1) 𝛾~𝑁𝑜𝑟𝑚𝑎𝑙(15, 2) 𝑡𝑑𝑖𝑠 ~𝑈𝑛𝑖𝑓𝑜𝑟𝑚(0, 1)
  21. 初期値の設定 いい感じの初期値を選んで設定し、MCMCの計算を行う 四角の中が初期値