R and Stan:安裝與設定
Stan支援於Windows、Linux、Mac平台,並且提供R、Python、Julia、Scala等幾個較熱門的程式語言的接口。Stan的使用者大多屬於R的社群,因此本文介紹Stan在R的基礎套件─RStan的安裝過程。
Windows
R / RStudio
RStan目前需要至少R 3.4.0以上,如果版本較舊或是尚未安裝R,請前往R的官方網站安裝最新版的R。
另外,一般對於R的使用者,都會推薦RStudio這款專為R設計的IDE軟體。Stan有個相較於WINBUGS、JAGS不同的地方是,Stan的程式碼是建立在不同的文件上並且需以副檔名.stan來命名。RStudio也已經開始支援Stan檔案的讀取與程式碼辨識 (syntax highlight),對於同時撰寫R與Stan的使用者而言是一大福音。
C++ Toolchain
由於Stan是建立於C++的語言,在真正安裝RStan套件之前,仍有幾個前置作業,其中之一是安裝C++ Toolchain。幸運的是,Rtools提供Stan所需的C++ Toolchain。
請前往Rtools的下載頁面並選擇最新的Rtools版本安裝。在安裝過程,須注意必須選擇讓Rtools加入環境變數PATH。以安裝Rtools 3.4為例,須將下圖的選項”Edit the system PATH”打勾。才能夠讓R去讀取到Rtools裡的C++ compiler。

安裝完成後,重新開啟R/RStudio並且打上Sys.getenv('PATH') ,如果顯示出的結果有包含類似c:\\\\Rtools\\\\bin;... 則代表Rtools有成功加入PATH。
接下來我們必須檢查R能否呼叫Stan所需要的toolchain: g++ 。輸入system('g++ -v') ,如果能夠看到R回傳版本號等資訊 (類似於下方的訊息),則代表toolchain安裝成功。若g++沒有安裝成功,則輸入後程式碼後,R理論上不會有任何反應。
Configuration
Stan的安裝介紹頁面提供一段程式碼,僅需在第一次使用Stan前執行即可。如果Rtools是安裝於預設的路徑,則於R執行下列程式碼:
至此RStan的事前安裝與設定算是告一段落,可跳過以下Linux/Mac的部分來閱讀RStan的安裝與驗證。
Linux/Mac
和Windows上的安裝過程相似,最主要的差異是在C++ Toolchain的安裝方式。而之所以將Linux和Mac上的安裝擺在一起介紹,是因兩著都是Unix或是Unix-like的平台,安裝過程上基本大同小異。
R / RStudio
請分別前往R與RStudio的官方網站下載最新版本,或是確保已安裝的R版本是在3.4.0以上。
C++ Toolchain
Mac與Linux在Toolchain的安裝上有稍許不同。Stan的安裝頁面上推薦 macOS R toolchain installer給Mac的使用者使用。不過由於筆者並無Mac,僅有使用Ubuntu的經驗,因此以下將以Ubuntu的安裝過程為例介紹。
不同的Linux distro會有各自的套件管理工具例如apt、yum等等,而Ubuntu所使用的正是apt。分別輸入以下的套件安裝指令,來安裝Stan所需的套件:
sudo apt-get install g++sudo apt-get install libssl-dev
Configuration
一旦安裝成功之後,需要針對組態做調整。開啟R後輸入以下程式碼,會建立一個Makevars的檔案,裡面會儲存Stan所需要的compiler flag:
g++ 4.9以上的用戶,Stan的安裝頁面上建議加上以下的程式碼:
g++ 6以上的用戶,也可加上以下程式碼來關閉一些非Stan所引起的警告訊息:
最後,可輸入以下程式碼檢查Makevars檔案內儲存的設定:
RStan的安裝
確保相關的前置作業都已經完成後,我們即可在R來安裝Stan的接口─RStan套件:
安裝的程式碼不能忽略dependencies=TRUE,安裝過程會花一段時間。安裝成功後,執行一段測試的程式碼如下:
若執行後R能夠成功回傳結果為10,則代表rstan套件安裝成功,接下來就可以順利使用Stan,在R建立貝式模型與推論了。
