StatModeling Memorandum

StatModeling Memorandum

StanとRとPythonでベイズ統計モデリングします. たまに書評.

技術記事はZennで書くことにします

ここ5,6年、技術記事を書くのにはてなブログを使っていましたが、以降でははなるべくZennで書くようにしたいと思います。過去の記事まで移行するわけではありません。

Zennが良い理由は複数あります。大きなところで以下です。

  • はてなブログでは数式が書きづらい。[tex: ] でくくるのが結構つらい。たまに一部の文字のエスケープが必要になる。一方、Zennはふつうの慣れたTeX記法で書ける。ほぼバグらない。
  • 調べた範囲では、はてなブログ・QiitaではGitHubリポジトリにあるコードの埋め込みができない。gistの埋め込みは簡単にできるんだけどね。一方、Zennは簡単に埋め込みができる。
  • 上記のユーザの快適さは頑張ればすぐ実現できただろうけど、はてなブログの新機能はどれも技術記事の方には向いておらず、一般の記事の方に向いている印象がある。一方、Zennは技術者のためを謳っていることもあり、新機能は技術記事に特化している。またGitHubのリポジトリで要望を出せるようになっており、レスポンスもかなり良い。
  • はてなブログでは一定期間記事を書かないと広告が出てくる。急かされているみたいでちょっと嫌…

はてなブログはてなブックマークとの連携も強く、たしかに「バズ」向きかもしれません。しかし、僕にとっては「技術記事を快適に書けること」と「記事が検索でヒットして知りたい人に情報が届くこと」が重要なのであって、バズは二の次三の次です。バズはたしかに楽しい嬉しいこともありますが、そういった承認欲求ドリブンで技術記事を書くようになると技術者としては滅ぶ。滅んでしまった人を何人も見かけている。自戒を込めて気を付ける。

そういうわけでZennを応援する意図もあり、以降はZennで技術記事を書きます。 zenn.dev よろしくお願いします。

Windows11においてWolfram EngineをJupyterで使う方法 (2023年10月時点)

基本的には黒木先生のドキュメントに従えばOK。公開してくださっていて圧倒的感謝。 このリポジトリが一部更新されたおかげで手順通りにいかなかったところをメモ用に書いておきます。

手順

  • ここ からWolfram Engineをダウンロードしてインストールします。
  • サイトで利用者登録をする。wolframscript.exe をダブルクリックして起動してその登録情報を記入してアクティベーションを済ませます。
  • ここ からzipをダウンロードするなりcloneするなりしてコードを持ってきます。
  • 私はPythonのJupyterを使うのでMinicondaで環境作りました。環境名は仮に wolfram とします。
  • その環境に pip install jupyter でjupyterをインストールしました。
  • miniconda promptからリポジトリのコードのフォルダ内まで移動し、.\configure-jupyter.wls help を実行します。 wolfram.exejupyter.exe の場所をaddオプションで指定してね、と読めました。
  • したがって引き続きminiconda promptから、configure-jupyter.wls add "C:\Users\[インストールした場所]\Wolfram Research\Wolfram Engine\13.3\wolfram.exe" "C:\Users\[環境のjupyter.exeの場所]\miniconda3\envs\wolfram\Scripts\jupyter.exe" を実行しました。ただし、Jupyter Notebookのメニューに追加されませんでした。どうやらこの人のエラーと同じようです。
  • そこで、GitHubリポジトリの「Method 2」のほうに従います。すなわち、
  • ここ から最新の WolframLanguageForJupyter-x.y.z.paclet をダウンロードします。 wolframscript.exe と同じフォルダに移動しておきます。
  • wolframscript.exe をダブルクリックで起動し、 PacletInstall["WolframLanguageForJupyter-x.y.z.paclet"] を入力して実行します。
  • 引き続き、Needs["WolframLanguageForJupyter`"] を実行します。
  • 引き続き ConfigureJupyter["Add"] を実行します。
  • miniconda promptに戻って、 jupyter kernelspec list を実行してwolframlanguageみたいなのが表示されれば成功です。Jupyter Notebookにおいても選べるはずです。

Jupyter上でテスト

黒木先生のドキュメントには、数式のTeX形式と画像の解像度の設定の記述が続きますが、TeX形式のほうはすでに対応済みになっていたようで TeXForm 関数を呼べば変換できました。画像のほうはとりいそぎ設定しないで ImageSize オプションで対応しています。

Integrate[Log[Sin[x]], x]  
% // TeXForm
Plot3D[Sin[x y], {x, -Pi, Pi}, {y, -Pi, Pi}, ImageSize -> Small]

Wolfram EngineをJupyterから使っているところ
Wolfram EngineをJupyterから使っているところ

『用量反応試験における患者の割り付けの深層強化学習による最適化』というタイトルで統計関連学会連合大会で発表しました

ありがたいことに統計関連学会連合大会の招待講演の依頼がありましたので喜んで引き受けました。たくさんの質問ありがとうございました。

発表資料を共有します。一言で言うと、臨床試験において各患者を各用量にどう割り付けるのが良いかを強化学習を用いて求める方法です。性能が良く第2相試験の効率を大きく改善すると思っています。実際の臨床試験でぜひ使ってほしいですし、そのための協力は惜しみません。

元論文はこちらです(open access)。 資料の方は分かりやすさ重視のため、評価シナリオにexponentialモデルが入っていないです。論文の方は欠点を明確にするために入っています。

ソースコードは以下です。2022/9/6にPythongymライブラリに互換性のない変更が入りましたので、Rayライブラリまで対応したら直します。その後、Rパッケージにできたらいいなと考えています。 github.com