2017-12-26 28 views
0

私はrstanarmの線形モデルを先に階層縮小を使用してフィットしようとしています。しかし私は、以前のその場所を示すエラーがhs()前位置パラメータを持っていないので、私は、一種の驚い0rstanarm前の場所は0より大きい必要があります

Error: location > 0 is not TRUE 

よりも大きくする必要があり得るのです。私は同じモデルをスタンダード・ノーマル・プリミティブを使ってフィッティングしようとしましたが、同じエラーが発生しました。それは0センタリング・プリオーバーがデフォルト・オプションなので、私にはあまり意味がありません。

githubリポジトリのファイルstan_lm.Rstan_lm.fit.Rを見ましたが、このエラーの原因を見つけることができませんでした。

:私は、エラーを複製するためのコードが含まれ、この例では事前分布の選択は非常にadecuateではないかもしれないことに注意しますが、このコードのPICEの唯一の目的は、私が取得していますエラーを説明することですしてください以下

library(rstanarm) 
library(tidyverse) 
library(MASS) 
nObs <- 400 
x <- mvrnorm(n = nObs, mu = c(0, 0, 0), 
      diag(c(0.5, 1, 2))) 
y <- (x %*% c(0.3, 0.4, 0.5)) + rnorm(n = nObs, 0, 1) 
fullData <- cbind(y, x) %>% as.data.frame 

model0 <- stan_lm(y ~ -1 + x, data = fullData, 
        prior = normal(location = 0, scale = 1)) 
model1 <- stan_lm(y ~ -1 + x, data = fullData, 
        prior = hs(df = 1, global_df = 1, global_scale = 0.01, 
          slab_df = 4, slab_scale= 2.5)) 

答えて

2

普通の線形モデルに合わせてstan_glmを試してみてください。 stan_lm関数は、回帰係数ではなく、R^2で事前に指定する必要があります。したがって、位置は0より大きくなければなりません。

priorパラメータの詳細については、stan_lmのドキュメントを参照してください。

関連する問題