Up

PyStan 3/Windowsへのショートパス

 

Stanについて、https://pystan.readthedocs.io/en/latest/index.htmlには次のように説明されている(2025.03.02)。

 

Stan® is a state-of-the-art platform for statistical modeling and high-performance statistical computation.

 

PyStanの上記サイトでの説明は以下のようである

 

PyStan is a Python interface to Stan, a package for Bayesian inference.

 

ただし、以下の制約がある(https://pystan.readthedocs.io/en/latest/upgrading.html2025.03.02)。

 

The default, recommended HMC sampler is fully supported. Variational inference, maximization algorithms, and other sampling algorithms are not supported. Users who need these features should consider using different software (e.g., CmdStan, CmdStanPy, jax, PyTorch).

 

 

このことに関して、以下の説明がある(https://pystan.readthedocs.io/en/latest/upgrading.html)。

 

The scope of PyStan 3 is reduced in the interest of freeing up resources to dedicate to making the software more reliable and to guaranteeing timely releases. The default HMC sampler is supported. Variational inference, for example, is no longer supported.

 

 

PyStan 3用のStan入門の説明のサイトも用意した。

 

 

以下は、備忘録である(2025.03)。

 

PyStan 3Windowsで使用するための準備を、1.UbuntuのWindowsへのインストール2.MiniCondaのUbuntuへのインストール3.PyStan3のインストールと試用4.追加と削除の順に説明する。

 

 

1.UbuntuWindowsへのインストール

 

PyStan 3Windows 上では直接使うことはできないので、WindowsUbuntuをインストールして、Ubuntu上で使用する。使用の感触は、Windows上でWindowsのアプリを使用することと同じである。

UbuntuWSL(Windows Subsystem for Linux)を利用してインストールするために、スタートメニュの「Windows PowerShell」の項目をマウスの右ボンタンでクリックして、表示される項目から「管理者として実行する」を選びクリックする(図A1)。

 

A1

 

タスクバーに下図のようなボタン(Windows10の場合)が表示される、

 

このボタン(アイコン)をクリックすると、「このアプリがデバイスに変更を加えることを許可しますか」というメッセージボックスが提示される。「はい」のボタンをクリックするとPowerShellの画面が表示される。

PowerShellの画面が開くと、図A2のようになる。

A2

 

WSLをインストールするために、コマンド「wsl --install」を実行する。

Ubuntuのインストールが終わったら、コマンド「wsl.exe -d Ubuntu」を実行する。

User accountが表示される。Enterキーを押すと、passwordの設定が求められる。

パスワードを設定してEnterキーを押すと、確認のための再設定が求められる。

パスワードを設定すると、Ubuntuの準備作業が始まる。終了後、コマンド「exit」を入力すると、Ubuntuからのログアウトになる。さらに、コマンド「exit」を実行すると、PowerShellの終了となる。

 

ここで、一旦PCの再起動を行う。

 

再起動後、スタートメニュの「Ubuntu」を選んで起動する。

 

A3

 

Ubuntuが起動すると図A4の端末画面が表示される。

A4

 

まず、Ubuntuの更新を行うために、コマンド「sudo apt update && sudo apt upgrade」を実行する。

sudo」の付いたコマンドなので、パスワードの入力が求められる。

パスワードを入力すると、更新が始まる。

更新作業が進むと、続けるかどうかという問い合わせが表示される(図A5)。

A5

 

Y」を入力すると、作業が進む。

更新が終了すると、コマンド「exit」を実行して、一旦、Ubuntuを終了する(図A6)。

A6

 

次にUbuntuを起動したら、C++コンパイラをインストールする。C++コンパイラは、PyStan3の使用に必要である。

Ubuntuでは、C++コンパイラとして例えば「g++」があるが、コマンド「g++」を実行すると、まだインストールされていない場合は、インストール法が表示される(図A7)。

A7

 

コマンド「sudo apt install g++」を実行すると、パスワードの入力が求められる。パスワードを入力すると、インストールが始まる。

インストールが終了したら、コマンド「exit」を実行して、一旦、Ubuntuを終了する(図A8)。

A8

 

 

2.MiniCondaのインストール

 

WSLにインストールしたUbuntuminicondaをインストールする。

Minicondaのインストールファイルをダウンロードするが、これはWindowsのブラウザーを利用すると簡単である。

MiniCondaAnaCondaと同じサイトからダウンロードできる。

 

https://www.anaconda.com/download

 

上記のウェブサイトにおいて、E-mail addressを設定後、「Submit」ボタンをクリックする(図B1)。

B1

 

Anacondaインストーラが、表示される。

B2

 

Anacondaの下にminicondaが表示される(図B3)。Anacondaの方を使用するときは、Anacondaを選べばよい。

B3

 

CPUに合わせたファイルをダウンロードする。図B3では、IntelCPUに合わせたものを選択している。

クリックしてダウンロードする前に、ダウンロード先のフォルダを用意する。Windowsの場合、ユーザーが自由にアクセスできないフォルダがあるので、新たにフォルダを作成してダウンロードすると安心である。図B4では、C:ドライブに「ForMiniConda」というフォルダを作成している。

B4

 

ダウンロードにおいて「名前を付けて保存」を選び、提示されたダイアログボックスにおいてフォルダを選択する(図B5

B5

 

「保存」を選ぶと、ダウンロードされる。

Ubuntuを起動する(図B6)。

B6

 

コマンド「ls」は、現在のフォルダ内のファイルおよびフォルダを表示するものである。最初の「ls」コマンドで何も表示されないのは、何もない、空だからである。

コマンド「cd /mnt」でフォルダ「/mnt」に現在のフォルダ(ディレクトリ)が移動する。この/mntフォルダに、Windowsのハードディスクなどがある。

コマンド「ls」で、小文字のcとあるのが、WindowsCドライブである。

コマンド「cd c」に続く「ls」では、Cドライブの一番上の階層にあるファイルとフォルダが表示されている。

コマンド「cd ForMiniConda」により、フォルダForMiniCOndaに移って、コマンド「ls」を実行する。ダウンロードしたファイルMiniconda3-latest-Linux-x86_64.shが表示されている。っこのファイルをコマンド「bash」で実行する。

インストール手続きが進むと、ライセンス内容が表示される(図B7)。

B7

 

--More--」で、Enterキーを押すと1行進む。スペースキーを押せば、1画面進む。

B8

 

最後にライセンスを認めるかどうか聞かれる。「yes」と入力すれば、先に進む。

インストールするフォルダを聞いてくる(図B9)。

B9

 

特に変える必要がなければ、Enterキーを押せばよい。

インストールの最後に図B10のようなことが聞かれる。

B10

 

これは、「yes」と答えておいた方が使いやすいと思われる。

 

インストールが終了したら、コマンド「exit」を実行して、Ubuntuを終了する(図B11)。

B11

 

 

Ubuntuを再起動する。コマンドラインの先頭が「(base)」で始まっている(図B12)。

B12

 

これは、minicondaの仮想環境「base」であることを示している。Minicondaのコマンドを用いることもできるが、Ubuntuの普通のコマンドも有効である。

コマンド「conda update -n base conda」を実行して、更新を行う。

上の更新が終了すると、次にコマンド「conda update --all」による更新を行う(図B13)。

B13

 

上の更新が終了したら、Ubuntuを終了する(図B14)。

B14

 

 

 

3.PyStan 3のインストール

 

Minicondaの仮想環境にPyStan 3をインストールすると便利である。仮想環境にインストールしたソフトウェアは外部には影響しないので、それぞれの仮想環境に合わせた設定が独立にできる。ここでは、ライブラリArvizを用いない設定とArvizを利用する設定の2つの仮想環境を考える。また、WSLはそのままではグラフ描画などができないので、仮想環境ではMCMCサンプリングのみを行い、得られたMCMCサンプルの分析はWindows 上で実行されるPythonで行う。

 

 

ライブラリArvizを用いない場合

 

ライブラリArvizを用いないPythonの環境を構築する。

Ubuntuを起動して、図C1に示すコマンドをじっこうする。

C1

 

パラメータ「-n」に続く文字列を名前とする仮想環境が作成される。Pythonのバージョンは「python=」の右側に指定する。上のコマンドを実行すると、Python 3.12の仮想環境がpy312の名前で作成される。

仮想環境が作成されると、図C2のような画面になる。

C2

 

コマンド「conda activate p312」を実行して、アクティブな仮想環境をpy312にする。

コマンドラインの先頭が「(py312)」で始まり、アクティブな環境がpy312であることが示される(図C3)。

C3

 

利用頻度の高いライブラリとして、numpypandasscipyopenpyxlをとりあえずインストールするためにコマンド「conda install numpy pandas scipy openpyxl」を実行する。インストールしたライブラリは、インストールを実行した仮想環境内のみで有効である。インストールされたライブラリは、それぞれの仮想環境用のフォルダに格納される。

上記のインストールが終了したら、次にPyStan3のインストールを行う。

コマンド「pip install pystan」を実行する。pipコマンドであること、ライブラリ名がpystanであることに注意。

図C4

 

Pystanのインストールが完了したら、簡単なスクリプトを実行してみる。

C5のスクリプトは、Windows用の標準Python開発環境のエディタで作成したものである。Python標準開発環境は

 

https://www.python.org/

 

からダウンロードできる。

C5

 

PyStan3のライブラリ(モジュール)は、モジュール名stanimportされていることに注意。

MCMCサンプリングの結果は、関数to_frame()によってPandasDataFrame型に変換されたものがファイル‘fit.pkl’に格納される。

図C5のスクリプトを実行するために、仮想環境py312のカレントディレクトリをスクリプトファイルの置かれているC:\ForMiniCondに移す。

コマンド「cd /mnt/c/ForMiniConda」を実行する(図C6)。WindowsでのドライブC:が小文字で/mnt/c/と表されていることに注意。

図C6

 

コマンド「python sample.py」でsample.pyは実行され、最後に、MCMCサンプルのPandasDataFrame型にまとめたものをファイルfit.pklに保存したことを端末に出力して終了している。なお、スクリプトをエディタなどで編集したときは、実行前にファイルに保存の手続きを行っておく必要がある。

次に、MCMCサンプルのファイルfit.pklを読み込んで、描画処理を行う。このスクリプトの実行は、Windows上で行う。

上のMCMCサンプリングのスクリプトと同じフォルダに描画スクリプトを用意する(図C7)。

C7

 

C7のスクリプトでは、MCMCサンプルのファイルfit.pklを読み込んで、パラメータpの事後分布のヒストグラムを描いている(図C8)。

C8

 

 

 

ライブラリArvizを用いる場合

 

MCMCサンプリングの(Rhat)の値は、ライブラリArvizを用いて得ることができる。

D1のスクリプトは、図C7ArvizによるRhatの算出スクリプトを加えたものである。

D1

 

D1のスクリプトを実行すると、エラーが出る。これは、モジュールnumpyscipyのバージョンがArvizのバージョンに合わないからである(2025.03.02現在)。NumpyscipyのバージョンをArvizと合うものに変えるために、コマンド「pip install numpy==1.26.4」とコマンド「conda install scipy=1.12」を実行する(図D2)。

D2

 

numpyscipyのバージョンの調整を行った後、図D1のスクリプト(sample_a.py)実行すると、Arvizによる統計量の出力が表示される(図D3)。

D3

 

 

 

4.仮想環境の追加、削除など

 

 

仮想環境は複数構築することができる。同じ内容の仮想環境を複数用意しておくと、更新後、不具合が生じたときに未だ更新していない方の仮想環境を用いることができる。仮想環境の作成法は、図C.1に示すものと同様であり、名前とPythonのバージョンを適当なものにすればよい。

既に構築されている仮想環境を削除するときは、図E1に示すようにすればよい。

E1

 

コマンド「conda env list」により、構築されている仮想環境の一覧が表示される。コマンド「conda remove」のパラメータ「-n」の次に削除する仮想環境の名前を置けばよい。

 

 

WSLにインストールするLinuxも複数用意できる。Linuxのバージョンによって生じる問題は、複数のLinuxをインストールしておくと、いざというとき役に立ちそうである。

 

複数のLinuxをインストールするときは、現在のLinuxのバージョンを知る必要がある。

Ubuntuの場合は、コマンド「lsb_release -a」の実行で知ることができる(図E2)。

E2

 

E2の場合、名前は「Ubuntu」であるが、バージョンは「24.04.2」である。次にインストールするときは、これと異なるバージョンを選ぶ。

 

Windows PowerShellを起動する(図E3)。

E3

 

コマンド「wsl --list」を実行すると、インストールされているLinuxが表示される。

コマンド「wsl list --online」を実行すると、インストールできるLinuxの一覧が表示される。

現在、インストールされているLinuxUbuntu-24であるので、Ubuntu-22.04を選び、コマンド「wsl install Ubuntu-22.04」を実行した。以後の手順は、図A2の場合と同様である。

インストール後、PCを再起動してタスクバーを表示すると図E4のようになっている。

E4

 

Ubuntu 22.04.5 LTS」のアイコンを選べば、インストールされたUbuntuが起動する。

 

削除したくなったLinuxは、PowerShellで削除できる。

E5

 

E5において、「Ubuntu-22.04」を削除するときは、コマンド「wsl --unregister Ubuntu-22.04」を実行すればよい。

実行後、PCを再起動してPowerShellで確認すると、図E6のようになっている。

E6

 

Ubuntu-22.04」が削除されていることが分かる。

 

 

Home