SSブログ

R stanをM1 MAC OS(big sur)にインストール [データサイエンス、統計モデル]

ここの手順に従ってインストールしていきます。

インストールガイド
https://github.com/stan-dev/rstan/wiki/RStan-Getting-Started-(Japanese)

1. RStanのインストール
install.packages('rstan', repos='https://cloud.r-project.org/', dependencies=TRUE)
エラーなく、無事に終了

2. C++コンパイラ
pkgbuild::has_build_tools(debug = TRUE)
[1] TRUE
となり、特に問題なし

3. RStanの実行テスト

library(rstan)

# 並列処理
options(mc.cores = parallel::detectCores())
rstan_options(auto_write = TRUE)

# データの準備
A.sales <- c(1000, 980, 1200, 1260, 1500, 1005, 820, 1490, 1500, 960)
B.sales <- c(880, 1080, 1580, 2180, 1900, 1950, 1200, 910, 2100, 1890)

sales <- c(A.sales, B.sales)
campaign.B <- c(rep(0,length(A.sales)), rep(1,length(B.sales)))

data_stan_ttest <- list(N=length(sales), sales=sales, campaignB=campaign.B)
data_stan_ttest

# stan モデルの定義
stan_code <- '
data{
  int N;
  int campaignB[N];
  real sales[N];
}

parameters{
  real mean_All;
  real effect_B;
  real sigma;
}

model{
  for(n in 1:N){
    sales[n] ~ normal(mean_All+effect_B*campaignB[n], sigma);
  }
}
'
model.mcmc = rstan::stan_model(model_code = stan_code)

# MCMCサンプリング
res_mcmc_ttest <- rstan::sampling(model.mcmc, data = data_stan_ttest, iter = 10000, chains = 4)

# 結果の確認
res_mcmc_ttest
stan_hist(res_mcmc_ttest, pars=c("mean_All","effect_B", "sigma"))
mean(rstan::extract(res_mcmc_ttest)$effect_B<=0)


ということで、M1チップになったことで、MCMCも劇的に早くなりました!

nice!(1)  コメント(0) 
共通テーマ:学問