CAUTION
- この記事は公衆衛生、疫学、医学の観点からの考察は一切ありません。COVID-19 に関する情報は、専門家の包括的な意見を必ず参照してください。
この記事を書こうとしたモチベーション
- @Med_KU 氏の blog 紹介 tweet がたまたま目に入ったので、元論文 & supplement(付録物)見てみた
- [論文の](https://www.eurosurveillance.org/content/10.2807/1560-7917.ES.2020.25.5.2000062) Rstan のコード量が多くないので、こりゃPyStanのリハビリをかねてPythonで書き直してみようと思い立つ三連休初日。COVID-19も話題なので公開すればちょっとバズるんじゃないかとスケベ心が芽生える - 1時間くらいで終わるかとおもいきや、鈍った脳みそにはハマりポイントが多数あったので、言語化して誰かに役に立てばと思うのが三連休3日目の朝"COVID-19 の潜伏期間をrstanで推定する - 驚異のアニヲタ社会復帰の予備" https://t.co/ztcnDcQyAR
— Kentaro Matsuura (@hankagosa) March 21, 2020
PyStan code
https://gist.github.com/koizumihiroo/df83bb72c94153acc4ea9049e395ea93 をご覧ください。
はまったポイント
ぶっちゃけ特にない。method名や引数は Rstan も PyStan も大きくはかわらない。 いうのはウソで次に時間を取った。
-
loo
の計算がオフィシャルに提供されていないので、検索に手間取った。最初は stanity.psisloo() を使おうとしたが、返り値が Psisloo class とオリジナルの psisloo と異なるため、 Stan
Official Site の loo のpage の一番下の LINK から辿ったオリジナルを使った。 - sampling() が返す object の annotation を付けようとしたが
pystan.StanFit4Model
はアクセスできなかった。よくわからん
(Pdb) p type(stanfit)
<class 'stanfit4anon_model_df568c9723cbf759ca5759b36acb4c6f_2883001500315052076.StanFit4Model'>
- stan 以外の観点
-
math.gamma()
は引数 broad cast できない(array を渡せない)のでscipy.stats.gamma()
を使う必要がある - Python のワイブル分布が
weibull_min
weibull_max
と二つあることに手間取った
-
- gist の code の review をもらいたいです。
以上