我想在笔记本上用rstan得到一个模型的估计系数
我有以下stan块:
```{stan output.var="rats"}数据{
int N;
int T;
真正的xT;
real yN,T;
真正的xbar;
}
参数{
真正的alphaN;
真正的betaN;
真正的mu_alpha;
原始bugs模型中的real mu_beta;// beta.c
real sigmasq_y;
real sigmasq_alpha;
real sigmasq_beta;
}
已转换的参数{
原始错误模型中的real sigma_y;// sigma
real sigma_alpha;
real sigma_beta;
sigma_y = sqrt(sigmasq_y);
sigma_alpha = sqrt(sigmasq_alpha);
sigma_beta = sqrt(sigmasq_beta);
}
模型{
mu_alpha ~ normal(0,100);
mu_beta ~ normal(0,100);
sigmasq_y ~ inv_gamma(0.001,0.001);
sigmasq_alpha ~ inv_gamma(0.001,0.001);
sigmasq_beta ~ inv_gamma(0.001,0.001);
alpha ~ normal(mu_alpha,sigma_alpha);//矢量化
beta ~ normal(mu_beta,sigma_beta);//矢量化
for (n in 1:N)
for (t in 1:T) y[n,t] ~ normal(alpha[n] + beta[n] * (x[t] - xbar), sigma_y);}
生成的数量{
真正的alpha0;
alpha0 = mu_alpha - xbar * mu_beta;
}
我还有以下数据
```{r}df <- read_delim("https://raw.githubusercontent.com/wiki/stan-dev/rstan/rats.txt",delim =“")
Y <- as.matrix(df)
X <- c(8,15,22,29,36)
xbar <-均值(X)
N <- nrow(y)
T <- ncol(y)
github上的documentation显示为rats_fit <- stan(file = 'https://raw.githubusercontent.com/stan-dev/example-models/master/bugs_examples/vol1/rats/rats.stan'),但由于我使用的是块,因此没有文件可供参考。
我试过stan(rats),summary(rats),print(rats),但这些似乎都不起作用。
发布于 2018-02-04 03:40:29
第一个RMarkdown块在幕后调用rats <- rstan::stan_model(model_code=the_text),因此为了从后验分布中采样,您最终需要执行rats_fit <- sampling(rats, data = list()),其剩余参数与stan的参数几乎相同。但在此之前,您必须调用library(rstan)。
发布于 2018-02-04 09:24:29
谢谢!在你的帮助下,我想出了以下几点
library(tidyverse)
df <- read_delim("https://raw.githubusercontent.com/wiki/stan-dev/rstan/rats.txt",delim = " ")
y <- as.matrix(df)
x <- c(8,15,22,29,36)
xbar <- mean(x)
N <- nrow(y)
T <- ncol(y)
library(rstan)
options(mc.cores = parallel::detectCores())
rats_fit <- rstan::sampling(rats,
data = list(y,x,xbar,N,T))
rstan::summary(rats_fit)https://stackoverflow.com/questions/48592987
复制相似问题