差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
stan:r [2018/04/18 18:04] – watalu | stan:r [2018/04/18 20:18] (現在) – watalu | ||
---|---|---|---|
行 1: | 行 1: | ||
==== StanをRから使う ==== | ==== StanをRから使う ==== | ||
- | === 必要なソフトウェア === | + | Stanが生成するのは、事後分布に従う乱数列(数値のデータ)である。この設計思想は実に潔い。Stanのユーザは必ず、Stan以外にも何らかのソフトウェアを用いて、メディアンを計算したり、ヒストグラムを描いたりすることになる。 |
+ | |||
+ | Rを通じてStanを利用すると決めた場合は、Stanを単独でインストールするのではなく、次のような手順を踏んでインストールを進める。 | ||
+ | |||
+ | - Rをインストールする | ||
+ | - RStudioをインストールする | ||
+ | - Stanを使用するのに必要な(OSごとに異なる)ソフトウェアをインストールする | ||
+ | - Rの中でRStanパッケージをインストールする | ||
+ | |||
+ | === RとStanのための開発環境 === | ||
+ | |||
+ | C言語やC++言語でコードを書きたくないから、R言語を使うし、Stanに頼ってハミルトニアンモンテカルロ法を用いるとは思う。しかし自分でC++言語を用いた開発をする予定がなくとも、Stanの利用には、C++言語の開発環境が必要である。Rと一緒に用いるのであれば、Rをコンパイルできる環境とともに揃えるのが望ましい。 | ||
+ | |||
+ | Windows用にはコンパイルのための道具が収められた[[https:// | ||
- | Stanを利用するにはC++言語の開発環境が必須である。またRと一緒に用いるのであれば、Rをコンパイルできる環境とともに揃えるのが望ましい。 | ||
- | Windows用にはコンパイルのための道具が収められた[[https:// | ||
Rは[[https:// | Rは[[https:// | ||
- | |OS|R|RStudio|開発環境| | + | |OS|Rのコンパイル環境| |
- | |Windows|[[https:// | + | |Windows|[[https:// |
- | |macOS|[[https:// | + | |macOS|[[https:// |
- | |Linux|[[https:// | + | |Linux|GCCおよび必要なライブラリ一式| |
+ | |||
+ | === RとRStudio | ||
- | Linuxでは、Rをソースからビルドしてもいいし、各ディストリビューションに関係するパッケージを用いても良い。 | + | まず、RとRStudioをインストールするか最新版に更新しておくこと。Rは[[https:// |
- | === 準備 === | + | バイナリをインストールするなら、[[http:// |
- | まず、RとRStudioをインストールするか最新版に更新しておくこと。Rの総本山のウェブサイトの国内ミラーである、統計数理研究所提供のCRANサイトから、使用するOS用のRの最新版をダウンロードしてインストールすると良い。RをRStudioから使う人は更に、RStudioの開発元であるRStudio.comから使用するOS用の RStudio Desktop (Open Source License) の最新版をダウンロードしてインストールすると良い。 | + | === Windowsユーザ向けのStanのインストール手順 === |
- | == Windowsユーザ向け == | ||
Windowsを用いる人は[[https:// | Windowsを用いる人は[[https:// | ||
- https:// | - https:// | ||
行 27: | 行 39: | ||
ここまで終われば、たくさんのパッケージがインストールされて、やっとStanをRから呼び出す準備が整う。 | ここまで終われば、たくさんのパッケージがインストールされて、やっとStanをRから呼び出す準備が整う。 | ||
- | == Macユーザ向け == | + | === Macユーザ向けのStanのインストール手順 === |
macOSを用いる人は[[https:// | macOSを用いる人は[[https:// | ||
行 37: | 行 49: | ||
ここまで終われば、たくさんのパッケージがインストールされて、やっとStanをRから呼び出す準備が整う。 | ここまで終われば、たくさんのパッケージがインストールされて、やっとStanをRから呼び出す準備が整う。 | ||
- | == Linuxユーザ向け == | + | === Linuxユーザ向けのStanのインストール手順 === |
Linuxを用いる人はコンパイラとライブラリが一通り入っていれば良い。そしてRもしくはRStudioを起動し、次の1行を実行してみる。 | Linuxを用いる人はコンパイラとライブラリが一通り入っていれば良い。そしてRもしくはRStudioを起動し、次の1行を実行してみる。 | ||
行 49: | 行 61: | ||
ここまで終われば、たくさんのパッケージがインストールされて、やっとStanをRから呼び出す準備が整う。 | ここまで終われば、たくさんのパッケージがインストールされて、やっとStanをRから呼び出す準備が整う。 | ||
- | === RStan === | + | === RStanの使い方(概要) |
RStanというパッケージは、 | RStanというパッケージは、 | ||
行 79: | 行 91: | ||
binomial.model <- readRDS(" | binomial.model <- readRDS(" | ||
</ | </ | ||
+ | |||
+ | === RStanの使い方(スケルトン) === | ||
+ | |||
+ | 以下では、Stanモデリング言語を記述したファイルをexample.stan、観測される確率変数をx、モデルの未知パラメータをthetaと置く。 | ||
+ | |||
+ | - Stanモデリング言語で記述したコードを用意する。 | ||
+ | - Rの中で観測値を入力する。(以下では、example.obsというオブジェクトとする) | ||
+ | - Rからモデルを作成するように指示を出す。< | ||
+ | - 作成したモデルに基づいて、事後分布に従う乱数を生成するように指示を出す。< | ||
+ | - NUTSが法則収束していることを確認する。< | ||
+ | stan_dens(example.nuts, | ||
+ | stan_ac(example.nuts, | ||
+ | stan_rhat(example.nuts) | ||
+ | stan_ess(example.nuts) | ||
+ | </ | ||
+ | - 事後分布を確認する。< | ||
+ | -事後分布を目視で確認し、併せて先ほどの平均やメディアンが合致しているかどうかを確認する。< | ||
+ | - 事後分布と事後信頼区間を得る。< | ||