こんにちは!
データサイエンティストのウマたん(@statistics1012)です!
大学院時代は統計学を専攻しており、ベイズ統計学などの研究をおこなっていました。
ベイズ統計学を実装する時に非常に便利なのが、Stan。
普段解析を行う時はRやPythonで良いのですが、ベイズで複雑なモデリングを行うとなるとStanの出番になるんです。
この記事では、どんな時にStanが必要なのか、Stanの勉強方法とオススメ本についてまとめていきたいと思います。
どんな時にStanが必要なの?
Stanは、統計モデリングを得意とします。
統計モデリングとは、データの構造を数式で明示的に表すこと。
よく使われる重回帰分析も一般線形モデルの1つなんですよー!
統計モデリングについてもっと詳しく知りたい方は以下の記事をご覧ください!
単純なデータ構造で単純な統計モデリングで済むのであれば特にStanを使う必要はありません。
RやPythonで十分です。
ただ、分布のパラメータのさらに分布を考えるような複雑な統計モデリングになるとRやPythonだと面倒です。
そこで必要になるのがStanなのです。
Stanの勉強方法とオススメ本
StanはRやPythonなどの言語に比べるとリファレンスが少なく、勉強しづらいんです。
大学院当時は、なかなか分かりやすい文献等がなく勉強するのに苦労しました。
しかーし、めっちゃ分かりやすい本が2016年に登場したおかげで学習効率が上がりました!
Stanをどのような手順で勉強していけばよいか見ていきます。
まず統計モデリングについて基礎を固める
正直Stanは手段であり、目的は複雑な統計モデリングを行うことです。
さらに言うと複雑な統計モデリングを行うことすら手段であり、本来の目的はデータ構造を明らかにすることですね。
Stanを学習する前に、統計モデリングについて勉強しておく必要があります。
色んなところで紹介されている超有名本ですが、以下の本さえ読んで理解しておけば概ね大丈夫です。
(2024/11/23 15:41:24時点 Amazon調べ-詳細)
ちなみに本書では、StanではなくWinBUGSという言語が用いられていますが、Stanの方が汎用性が高く分かりやすいのでStanを使うことをオススメします。
RかPythonを使えるようにする
基本的にStanを実行する上ではRやPythonを使います。
RやPythonに組み込まれたパッケージを使ってあげればオーケーです。
Rの場合はRstan、Pythonの場合はPystanというパッケージが用意されています。
RやPythonは以下の記事にオススメ本をまとめているので合わせてご覧ください!
Stanの勉強を行う
統計モデリングとRもしくはPythonの勉強が終了するとやっとStanの勉強に入れます。
先ほどもStanはあまりリファレンスがないので勉強しづらいとお伝えしましたが、以下の書籍は非常にStanについて分かりやすくまとめられているのでこちらさえ読んでおけばある程度理解できると思います。
本で書かれているモデリングを実際に手を動かしながら学んでいきましょう!
(2024/11/22 18:32:40時点 Amazon調べ-詳細)
この本を一読すればある程度Stanを使いこなせるようになると思います。
ちなみに以下の書籍もStanを勉強するのにオススメです。
こちらは、MCMCに関して詳しく記述されている他、Stanに関する実装例も載っていて先ほどのStanとRでベイズ統計モデリングを深めるのにもってこいです。
(2024/11/23 09:57:15時点 Amazon調べ-詳細)
ただ、少し後半が難解です。
PythonとStanを学びたいなら書籍はあまり良いものがないんです。
そこで、以下のUdemy講座がめっちゃオススメです!
【PythonとStanで学ぶ】仕組みが分かるベイズ統計学入門
【オススメ度】 | |
---|---|
【講師】 | 企業の研究者・開発者 |
【時間】 | 11.5時間 |
【レベル】 | 中級~上級 |
もし複雑な統計モデリングやベイズ統計学に興味があるなら必須のコースです。
僕自身、大学院時代ベイジアンだったのですがベイズ統計学って奥が深くて難しいくせに教材が少ないんですよー!!
基本的なベイズの知識から階層ベイズさらに状態空間モデルまで広範に学ぶことができます。
ベイズの領域で理解に苦しむMCMCの分野も概念とPythonでの実装を同時に行ってくれるので非常に分かりやすい!
Stan まとめ
Stanは統計モデリングに非常に便利な言語です。
ただあまりリファレンスがないので習得するのに少し苦労する言語でした。
ここで紹介したStanとRでベイズ統計モデリングの登場はStanの学習効率を大きく変えました!分かりやすい!
もしStanに関して少しでも気になる方がいれば是非読んでみてください!
Stanは単独で実装するのではなくPythonやRと一緒実装すべきです。
圧倒的おすすめのPythonを勉強するなら以下の記事をチェックしてみてください!
ちなみにPythonや統計学・機械学習について網羅的に学ぶのであれば当メディア運営のスタアカが本当にオススメです!
ぜひチェックしてみてください!