[fpr 3941] Stanの実行方法のこと

Yasuharu Okamoto


 岡本安晴@(日本女子大学心理学科定年退職)です。

Stanを実行するとき、実行方法に依存して警告メッセージが
表示されたりされなかったりします。これは、Pythonでの
ことですが、Rでもそうなのでしょうか。

Pythonの場合、統合開発環境IDLEで実行した場合は、
何も警告メッセージが表示されないのに、コマンドラインで
実行すると警告メッセージが表示されます。
Rも普通は統合環境RStudioで利用されていると思いますが、
コマンドラインで、
rscript FileName.R
というように実行した場合、警告メッセージの扱いが異なる
ということがあるのでしょうか?

Pythonで次の2項分布モデルに対するStanスクリプトを実行します。
import pystan

stan_code = """
data{
    int N;
    int k;
}
parameters{
    real p;
}
model{
    p ~ uniform(0.0, 1.0);
    k ~ binomial(N, p);
}
"""

Data = {'N': 10, 'k':0}
sm = pystan.StanModel(model_code = stan_code)
fit = sm.sampling(data = Data, n_jobs = 1)
print(fit)


上のスクリプトを実行すると、次の出力になります。

Inference for Stan model: anon_model_6e5d4f39a7ac7aa1f6805d506293bb7d.
4 chains, each with iter=2000; warmup=1000; thin=1;
post-warmup draws per chain=1000, total post-warmup draws=4000.

       mean se_mean     sd   2.5%    25%    50%    75%  97.5%  n_eff   Rhat
p      0.09  4.3e-3   0.08 1.9e-3   0.03   0.06   0.12   0.31    334   1.01
lp__  -0.93    0.05   0.93  -3.66   -1.3  -0.65  -0.27  -0.02    338   1.01

Samples were drawn using NUTS at Sat May 18 19:49:42 2019.
For each parameter, n_eff is a crude measure of effective sample size,
and Rhat is the potential scale reduction factor on split chains (at
convergence, Rhat=1).

問題ないようですが、コマンドラインで実行すると、次のように警告メッセージが
表示されます。

Informational Message: The current Metropolis proposal is about to be
rejected because of the following issue:
Exception: binomial_lpmf: Probability parameter is -0.00175065, but must be
in the interval [0, 1]  (in 'unknown file na
me' at line 11)

If this warning occurs sporadically, such as for highly constrained variable
types like covariance matrices, then the sa
mpler is fine,
but if this warning occurs often then your model may be either severely
ill-conditioned or misspecified.

Iteration: 2000 / 2000 [100%]  (Sampling)

 Elapsed Time: 0.544 seconds (Warm-up)
               0.525 seconds (Sampling)
               1.069 seconds (Total)

Inference for Stan model: anon_model_6e5d4f39a7ac7aa1f6805d506293bb7d.
4 chains, each with iter=2000; warmup=1000; thin=1;
post-warmup draws per chain=1000, total post-warmup draws=4000.

       mean se_mean     sd   2.5%    25%    50%    75%  97.5%  n_eff   Rhat
p      0.08  4.8e-3   0.07 1.4e-3   0.03   0.06   0.12   0.28    235   1.02
lp__  -0.89    0.06   0.86  -3.26  -1.27  -0.64  -0.26  -0.01    237   1.02

Samples were drawn using NUTS at Sat May 18 19:50:53 2019.
For each parameter, n_eff is a crude measure of effective sample size,
and Rhat is the potential scale reduction factor on split chains (at
convergence, Rhat=1).

 Rの場合は、どうなのでしょうか?

横浜市在住
岡本安晴





スレッド表示 著者別表示 日付順表示 トップページ

ここは心理学研究の基礎メーリングリストに投稿された過去の記事を掲載しているページです。