差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
stan:r [2018/04/18 18:04] watalustan: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://cran.r-project.org/bin/windows/Rtools/|RTools]]というパッケージが用意されている。macOSではXcodeを用いる。LinuxではGCCやRを一通りインストールすると、必要なライブラリも揃う。
  
-Stanを利用するにはC++言語の開発環境が必須である。またRと一緒に用いるのであれば、Rをコンパイルできる環境とともに揃えるのが望ましい。 
-Windows用にはコンパイルのための道具が収められた[[https://cran.r-project.org/bin/windows/Rtools/|RTools]]というパッケージが用意されている。macOSではXcodeを用いる。LinuxではGCCやRを一通りインストールすると、必要なライブラリが揃っていることが多い。 
 Rは[[https://cran.r-project.org/|The R Project]]が公開している最新版のバイナリをインストールすることを勧める。Microsoft R Openは、対応していないパッケージがあることもあるので、自己責任で選択して欲しい。 Rは[[https://cran.r-project.org/|The R Project]]が公開している最新版のバイナリをインストールすることを勧める。Microsoft R Openは、対応していないパッケージがあることもあるので、自己責任で選択して欲しい。
    
-|OS|R|RStudio|開発環境| +|OS|Rのコンパイル環境| 
-|Windows|[[https://cran.r-project.org/|R]]|[[https://www.rstudio.com/|RStudio]]|[[https://cran.r-project.org/bin/windows/Rtools/|RTools]]| +|Windows|[[https://cran.r-project.org/bin/windows/Rtools/|RTools]]| 
-|macOS|[[https://cran.r-project.org/|R]]|[[https://www.rstudio.com/|RStudio]]|[[https://itunes.apple.com/jp/app/xcode/id497799835|Xcode]]| +|macOS|[[https://itunes.apple.com/jp/app/xcode/id497799835|Xcode]]| 
-|Linux|[[https://cran.r-project.org/|R]]|[[https://www.rstudio.com/|RStudio]]| |+|Linux|GCCおよび必要なライブラリ一式| 
 + 
 +=== RRStudio ===
  
-Linuxでは、Rをソースからビルドしてもいいし、各ディストリビューションに関係するパッケージを用いても良い。+まず、RとRStudioをインストールするか最新版に更新しておくこと。Rは[[https://cran.r-project.org/|The R Project]]が公開している最新版のバイナリをインストールすることを勧める。Microsoft R Openは、対応していないパッケージがあることもあるので、自己責任で選択して欲しい。Linuxでは、Rをソースからビルドしてもいいし、各ディストリビューションに関係するパッケージを用いても良い。
  
-=== 準備 ===+バイナリをインストールするなら、[[http://cran.r-project.org/|Rの総本山のウェブサイト]]の国内ミラーである、[[http://cran.ism.ac.jp/|統計数理研究所提供のCRANサイト]]から、使用するOS用のRの最新版をダウンロードしてインストールすると良い。RをRStudioから使う人は更に、RStudioの開発元であるRStudio.comから使用するOS用の RStudio Desktop (Open Source License) の最新版をダウンロードしてインストールすると良い。
  
-まず、RとRStudioをインストルするか最新版に更新しておくこと。R総本山ウェブサイトの国内ミラーである、統計数理研究所提供のCRANサイトから、使用するOS用のRの最新版をダウンロードしてインストールすると良い。RをRStudioから使う人は更に、RStudioの開発元であるRStudio.comから使用するOS用の RStudio Desktop (Open Source License) の最新版をダウンロードしてインストールすると良い。+=== Windowsユザ向けStanのインストール手順 ===
  
-== Windowsユーザ向け == 
 Windowsを用いる人は[[https://github.com/stan-dev/rstan/wiki/RStan-Getting-Started-(Japanese)|R Stan Getting Started(の和訳)]]を見ながら進めると良い。 Windowsを用いる人は[[https://github.com/stan-dev/rstan/wiki/RStan-Getting-Started-(Japanese)|R Stan Getting Started(の和訳)]]を見ながら進めると良い。
   - https://cran.r-project.org/bin/windows/Rtools/ からRtoolsをダウンロードしてインストールする   - https://cran.r-project.org/bin/windows/Rtools/ からRtoolsをダウンロードしてインストールする
行 27: 行 39:
 ここまで終われば、たくさんのパッケージがインストールされて、やっとStanをRから呼び出す準備が整う。 ここまで終われば、たくさんのパッケージがインストールされて、やっとStanをRから呼び出す準備が整う。
  
-== Macユーザ向け ==+=== Macユーザ向けのStanのインストール手順 ===
  
 macOSを用いる人は[[https://github.com/stan-dev/rstan/wiki/RStan-Mac-OS-X-Prerequisite-Installation-Instructions|RStan Mac OS X Prerequisite Installation Instructions]]を見ながら進めると良い。 macOSを用いる人は[[https://github.com/stan-dev/rstan/wiki/RStan-Mac-OS-X-Prerequisite-Installation-Instructions|RStan Mac OS X Prerequisite Installation Instructions]]を見ながら進めると良い。
行 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.rds") binomial.model <- readRDS("binomial.rds")
 </code> </code>
 +
 +=== RStanの使い方(スケルトン) ===
 +
 +以下では、Stanモデリング言語を記述したファイルをexample.stan、観測される確率変数をx、モデルの未知パラメータをthetaと置く。
 +
 +  - Stanモデリング言語で記述したコードを用意する。
 +  - Rの中で観測値を入力する。(以下では、example.obsというオブジェクトとする)
 +  - Rからモデルを作成するように指示を出す。<code>example.stan <- stan_model("example.stan")</code>
 +  - 作成したモデルに基づいて、事後分布に従う乱数を生成するように指示を出す。<code>example.nuts <- sampling(example.stan, data=list(x=example.obs), chains=4)</code>
 +  - NUTSが法則収束していることを確認する。<code>stan_trace(example.nuts, inc_warmup=TRUE)
 +stan_dens(example.nuts, pars="theta", separate_chains=TRUE)
 +stan_ac(example.nuts,pars="theta",separate_chains=TRUE)
 +stan_rhat(example.nuts)
 +stan_ess(example.nuts)
 +</code>
 +  - 事後分布を確認する。<code>print(example.nuts)</code>
 +  -事後分布を目視で確認し、併せて先ほどの平均やメディアンが合致しているかどうかを確認する。<code>stan_hist(example.nuts, pars="theta")</code>
 +  - 事後分布と事後信頼区間を得る。<code>stan_plot(example.nuts, point_est="median", show_density=TRUE, ci_level=0.95, outer_level=1.00,show_outer_line=TRUE)</code>