RStan

stanファイルの準備

次のようにファイルを作る。
ここではstan_file.stanとしておく。

data{
int N;
vector[N] vals;
}

parameters{
real mu;
real<lower=0> sigma;
}

model{
vals ~ normal(mu, sigma);
}

データとして、Nvalsを読み込む造りである。

RStanのインポート

RでRStanをインポートする。

library(rstan)
rstan_options(auto_write=T)
options(mc.cores=parallel::detectCores())

ここで、高速化のためにRDSファイルの再コンパイル節約と並列化を併せて設定した。

データの読み込み

stanファイルではデータとしてNvalsを読み込むので、それらのリストを次の形式で作る。

sample_data <- list(N=xxxxx, vals=xxxxx)

MCMCの実行

result <- stan(
file="stan_file.stan"
data=sample_data
)

必要に応じて、以下も引数に加える。

  • iter:乱数生成の繰り返し数(収束へ向かわせる)
  • warmup:バーンイン期間(初期値への依存性を緩和する)
  • thin:生成する乱数の間引き(自己相関を緩和する)
  • chains:何セット初期値から収束へ向かわせてみるか(チェーンごとに分布が異ならないかチェックするため)

結果の出力

ci <- c(0.025, 0.975)
print(result, probs=ci)
traceplot(result, inc_warmup=T) #バーンイン期間を含めたトレースプロット

サンプル抽出

sample <- rstan::extract(result, permuted=F)  # permuted=Fはサンプルの順番が変更されるのを防ぐため

でサンプルが抽出できる。
このとき、sampleは3次元になっており、iterchainsparametersに対応する値が格納されている。

(バーンイン期間を経過した)全ての繰り返しについて、第2チェーンのmuを取り出すなら

sample[,"chain:2","mu"]

となる。
これを利用して代表値を計算することができる。

コメント・シェア

ggplot2で作図する

ggplot2はデータフレームから作図する。

はじめにインポートする。

library(ggplot2)

以下の例では、データとしてirisを使うものとする。

グラフはレイヤーを加算して描かれる。

ggplot(データ等) + geom_グラフ種類()

をベースとして、タイトル・軸・凡例・背景などの要素が+で加算される。

散布図

ggplot(iris, aes(x=Petal.Width, y=Petal.Length, color=Species)) + geom_point()

バイオリンプロット

ggplot(iris, aes(x=Petal.Width, y=Petal.Length, color=Species)) + geom_violin()

箱ひげ図

ggplot(iris, aes(x=Petal.Width, y=Petal.Length, color=Species)) + geom_boxplot()

ヒストグラム

ggplot(iris, aes(x=Petal.Length, color=Species)) + geom_histogram(fill = "gold")

カーネル密度推定

ggplot(iris, aes(x=Petal.Length, color=Species)) + geom_density()

タイトル

labs(title="タイトル", subtitle="サブタイトル")

日本語を使うなら、ggplot2のインポート後、文字化け解消に次を書いておく。

theme_set(theme_bw(base_family = "HiraKakuProN-W3"))

画像の保存

ggsave(filename = "保存ファイル名.png",
plot = ggplotしたグラフ,
device = "png",
scale = 1,
width = 10,
height = 10,
units = c("in"),
dpi = 1200)

コメント・シェア

Rによる作図

Rはオープンソースの統計処理ソフトウェアです.
Ross IhakaさんとRobert Clifford Gentlemanさんによって開発されたR言語の実装にあたります.
このページでは,Rの作図についてメモしています.

続きを読む

Rによる統計分析の準備

Rはオープンソースの統計処理ソフトウェアです.
Ross Ihaka氏とRobert Clifford Gentleman氏によって開発されたR言語の実装にあたります.

Rは統計モデルを記述する上での見通しの良さに突出しており,ベクトル・行列の計算,欠損データの取り扱い,多様な確率分布の利用といった点でも優れています.

続きを読む
  • page 1 of 1
著者の絵

ねこせんせい

One cat just leads to another.
(Ernest Hemingway)


色鉛筆塗り


校正室