一日一膳(当社比)

RとJavaと時々数学

Macでrstanの実行環境を用意する

 

パソコン買い換えた時にrstanの実行環境を用意した時のメモです。

想定するOS/Rのバージョン

  • OS Catalina 10.15.1
  • R 3.6.1 

手順1.C++コンパイラの導入

Stanの実行に必要なのでc++コンパイラをPCにいれてない人はこの手順1を行ってください。(他にXcodeというMac向け開発環境からc++を入れる方法もあるようなのですが、自分は失敗しました。)

CRANのサイトからclang-7.0.0.pkgをダウンロードしてインストールしてください。

cran.r-project.org

以上で手順1は完了です。


手順2.rstanのダウンロード

RStan公式のgitリポジトリに従ってrstanのインストールを行います。

github.com

古いバージョンのrstanを消します。RStudioのコンソールから次のコマンドを実行しましょう。

remove.packages("rstan")
if (file.exists(".RData")) file.remove(".RData")

 

最後にRstanのパッケージをダウンロードします。

install.packages("rstan", repos = "https://cloud.r-project.org/", dependencies = TRUE)

以上で、rstan環境が用意完了です。試しにpoisson分布のサンプリングでテストしてみます。


library("rstan")
Poisson.model <- " data { int N; int<lower=0> x[N]; } parameters { real<lower=0> lambda; } model { for (n in 1:N) { x[n] ~ poisson(lambda); } } " N <- 100 lambda <- 4 x <- rpois(N, lambda) .data <- list(N = N, x = x) .fit <- stan( model_code = Poisson.model , data=.data, iter=2000, warmup=200 ) stan_hist(.fit)

f:id:kimigayoseishou:20191116184452j:plain

サンプリング結果


サンプリングできていれば、成功です。もしrstan実行時に次のようなエラーメッセージが吐かれている場合、c++導入が正しくできてない可能性があるので手順1の方法を試してみると良いかもしれません。


    compileCode(f, code, language = language, verbose = verbose) でエラー: Compilation ERROR, 
    function(s)/method(s) not created! /bin/sh: /usr/local/clang7/bin/clang++: No such file or directory