【まえがき】RとStanではじめる心理学のための時系列分析入門 を PythonとPyMC Ver.5 で
この記事は「シリーズのまえがき」と「pymc環境の構築」の2点に焦点をあてています。
まえがき
シリーズ:RとStanではじめる心理学のための時系列分析入門 を PythonとPyMC Ver.5 で
本シリーズは書籍「RとStanではじめる心理学のための時系列分析入門」(講談社、以下「テキスト」と呼びます)を PythonとPyMC Ver.5 で実践した軌跡の記録です。
テキスト「RとStanではじめる心理学のための時系列分析入門」の紹介
テキストは、2022年6月に初版発行され、時系列分析の主要テーマを簡潔に取り上げた「チュートリアル」的で素晴らしい入門書です。
テーマは、自己回帰型の回帰分析、状態空間モデル、多変量解析、信号処理、関数データ解析(FDA)などなど。
多岐にわたる壮大な1冊です。
ぜひ amazonサイトの画像サンプル4枚目の「時系列解析の地図」をご覧いただき、旅の行程をお確かめ下さい!
ちなみに、amazonの「サンプルを読む」で、R・Stanのサンプルコード掲載サイトのリンクを知ることができます。
このシリーズ記事は「テキストのR言語をPythonで楽しむこと」を目的にして描きます。
Pythonコードと実行結果で構成するシンプルな記事になる予定です。
ぜひ、テキストの解説や数式を読みながら、Pythonによる時系列分析を楽しんでいきましょう!
引用掲示
この記事は、出典に記載の書籍に掲載された文章及びコードを引用し、適宜、掲載文章とコードを改変して書いています。
Pythonコードは「見つけることができた範囲内の処理内容」であり、処理の正確性は担保しておりません。
誤りや改善点がありましたら、ぜひ教えてください。
【出典】
「RとStanではじめる心理学のための時系列分析入門」(第2刷、小森政嗣 著、講談社)
この記事で利用した環境の主な内容です。
・Windows10
・Python 3.11.5
・Anaconda利用
pymc環境の構築
Anacondaでpymc環境を構築
第4章の「状態空間モデル」を「PyMC」で構築します。
pymcは numpy等の別パッケージとの強いバージョン依存関係があるようですので、PyMC専用の環境をAnacondaで構築しています。
ちなみにVSCodeでJupyter Notebookを使っています。
numpyroをpymc環境へ
NUTSサンプリングの時間短縮の目的で「numpyro」を利用します。
pymc標準のNUTSサンプラーでは何時間もかかるモデルがあり、ここはひとつ、高速サンプラーを導入しましょう。
numpyroもnumpy等とのバージョン依存関係あるようですので、pymc環境へ特別にインストールします。
環境構築の概要
①インストールしながらpymc環境作成
PyMC公式サイトのcondaインストール方法に準拠して実行します。
conda-forgeからpymc、bambi、seaborn、ipykernelを一気にインストールしてpymc環境を新規作成します。
環境名の部分は、pymc_envなどの環境名を設定してください。
conda create -c conda-forge -n pymc_env 環境名 bambi seaborn ipykernel
②pymc環境へ移動
pymc環境をアクティブにします。
conda activate 環境名
③numpyroのインストール
condaでは何故か整合性エラーが発生してインストールできなかったので、やむを得ずpipでインストールしました。
pip install numpyro
④tensorflow-probabilityのインストール
tensorflow-probabilityはnumpyroが参照するライブラリですので、合わせてインストールします。
こちらも pip で。
pip install tensorflow-probability
(参考)記事作成に用いたpymc環境の主要ライブラリ等のバージョン
python 3.11.6 # Python本体
pymc 5.9.0 # PyMC
pytensor 2.17.1 # PyMCの裏で動く強者・テンソル計算
arviz 0.16.1 # PyMCの統計量計算・描画を担当
bambi 0.12.0 # GLM等をformula文で記述
numpyro 0.13.2 # 高速NUTSサンプラーとして活用
jax 0.4.18 # numpyroの裏で動く強者
tensorflow-probability 0.22.0 # numpyroが参照する働き者
numpy 1.25.2
pandas 2.1.1
matplotlib-base 3.8.0
seaborn 0.13.0
graphviz 8.1.0 # modelの描画で活躍
python-graphviz 0.20.1 # modelの描画で活躍
以上でこの記事は終了です。
目次へ
ブログの紹介
note で3つのシリーズ記事を書いています。
ぜひ覗いていってくださいね!
1.のんびり統計
統計検定2級の問題集を手がかりにして、確率・統計をざっくり掘り下げるブログです。
雑談感覚で大丈夫です。ぜひ覗いていってくださいね。
統計検定2級公式問題集CBT対応版に対応しています。
2.実験!たのしいベイズモデリングをPyMC Ver.5で
書籍「たのしいベイズモデリング」の心理学研究に用いられたベイズモデルを PyMC Ver.5で描いて分析します。
この書籍をはじめ、多くのベイズモデルは R言語+Stanで書かれています。
PyMCの可能性を探り出し、手軽にベイズモデリングを実践できるように努めます。
身近なテーマ、イメージしやすいテーマですので、ぜひぜひPyMCで動かして、一緒に楽しみましょう!
3.Python機械学習プログラミング実践記
書籍「Python機械学習プログラミング PyTorch & scikit-learn編」を学んだときのさまざまな思いを記事にしました。
この書籍は、scikit-learn と PyTorch の教科書です。
よかったらぜひ、お試しくださいませ。
4.データサイエンスっぽいことを綴る
統計、データ分析、AI、機械学習、Python のコラムを不定期に綴っています。
「統計」「Python」「数学とPython」「R」のシリーズが生まれています。
最後までお読みいただきまして、ありがとうございました。