R and Stan:安裝與設定

Sam Chiu
Sam Chiu
Sep 9, 2018 · 4 min read

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建立貝式模型與推論了。

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade