文書の過去の版を表示しています。
StanをRから使う
必要なソフトウェア
Stanを利用するにはC++言語の開発環境が必須である。またRと一緒に用いるのであれば、Rをコンパイルできる環境とともに揃えるのが望ましい。 Windows用にはコンパイルのための道具が収められたRToolsというパッケージが用意されている。macOSではXcodeを用いる。LinuxではGCCやRを一通りインストールすると、必要なライブラリが揃っていることが多い。 RはThe R Projectが公開している最新版のバイナリをインストールすることを勧める。Microsoft R Openは、対応していないパッケージがあることもあるので、自己責任で選択して欲しい。
Linuxでは、Rをソースからビルドしてもいいし、各ディストリビューションに関係するパッケージを用いても良い。
準備
まず、RとRStudioをインストールするか最新版に更新しておくこと。Rの総本山のウェブサイトの国内ミラーである、統計数理研究所提供のCRANサイトから、使用するOS用のRの最新版をダウンロードしてインストールすると良い。RをRStudioから使う人は更に、RStudioの開発元であるRStudio.comから使用するOS用の RStudio Desktop (Open Source License) の最新版をダウンロードしてインストールすると良い。
Windowsユーザ向け
Windowsを用いる人はR Stan Getting Started(の和訳)を見ながら進めると良い。
- https://cran.r-project.org/bin/windows/Rtools/ からRtoolsをダウンロードしてインストールする
- 上のインストール中に、システムの環境変数のPATHを編集するように指示する
- RもしくはRStudioを起動し、次の1行を実行してみる。
system(“g++ -v“)
コンパイラのバージョンなどを返してくれば、準備が整ったことが確認できる。
- 次にStanおよび関連するR用のパッケージをインストールする。
install.packages(“rstan“, repos=“https://cloud.r-project.org/“, dependencies=TRUE)
ここまで終われば、たくさんのパッケージがインストールされて、やっとStanをRから呼び出す準備が整う。
Macユーザ向け
macOSを用いる人はRStan Mac OS X Prerequisite Installation Instructionsを見ながら進めると良い。
- App StoreからXcodeをインストールするか、最新版に更新する。
- RもしくはRStudioを起動し、次の1行を実行してみる。
system(“clang++ -v“)
- コンパイラのバージョンなどを返してくれば、準備が整ったことが確認できる。
- 次にStanおよび関連するR用のパッケージをインストールする。
install.packages(“rstan“, repos=“https://cloud.r-project.org/“, dependencies=TRUE)
ここまで終われば、たくさんのパッケージがインストールされて、やっとStanをRから呼び出す準備が整う。
Linuxユーザ向け
Linuxを用いる人はコンパイラとライブラリが一通り入っていれば良い。そしてRもしくはRStudioを起動し、次の1行を実行してみる。
system(“g++ -v“) # WindowsとLinuxの場合
コンパイラのバージョンなどを返してくれば、準備が整ったことが確認できる。次にStanおよび関連するR用のパッケージをインストールする。
install.packages(“rstan“, repos=“https://cloud.r-project.org/“, dependencies=TRUE)
ここまで終われば、たくさんのパッケージがインストールされて、やっとStanをRから呼び出す準備が整う。
RStan
RStanというパッケージは、
- Stanモデリング言語で記述されたファイルから、Stanでモデルファイルを作る
- データとモデルを与える未知パラメータの事後分布からのサンプリングを行う
という順序で動作する。 まずRで
library(rstan)
を実行し、必要なパッケージを読み込む。 R上でこの2つのステップを同時に実行するには
binomial.fit <- stan("binomial.stan",data=list(x=20,n=30))
とすればよい。 2段階を分けて実行するには
binomial.model <- stan_model("binomial.stan") binomial.fit <- sampling(binomial.model, data=list(x=20,n=30))
とする。モデルファイルを作る際にコンパイルを行っていて、ここに少々の時間がかかる。一度コンパイルしたモデルファイルは、RDSという形式でRの外に保存することができる。
saveRDS(binomial.model,"binomial.rds")
読み込むには、次のreadRDS関数を用いる。
binomial.model <- readRDS("binomial.rds")