在 Stan 文件中提取转换数据块中的数据
Extract data in the transformed data block in a Stan file
我想从 stanfit 对象 f
的转换数据块中提取 z
。可能吗?
library(rstan)
m <- stan_model(model_code = '
data{real x;}
transformed data{real z; z = chi_square_rng(x); }
parameters {real y;}
model {y ~ normal(z,1);}')
f <- sampling(m, data=list(x=1), iter = 100)
我会像这样在 generated quantities
中添加一个新值:
library(rstan)
m <- stan_model(model_code = '
data{real x;}
transformed data{real z; z = chi_square_rng(x); }
parameters {real y;}
model {y ~ normal(z,1);}
generated quantities {real zhat = z;}')
f <- sampling(m, data=list(x=1), iter = 100)
这 returns 个有效值
print(f, pars = "zhat")
mean se_mean sd 2.5% 25% 50% 75% 97.5% n_eff Rhat
zhat 0.16 0 0 0.16 0.16 0.16 0.16 0.16 2 0.98
您可以提取值,只是为了显示一些结果:
> extract(f)[["zhat"]]
[1] 0.16445 0.16445 0.16445 0.16445 0.16445 0.16445
[7] 0.16445 0.16445 0.16445 0.16445 0.16445 0.16445
[13] 0.16445 0.16445 0.16445 0.16445 0.16445 0.16445
我想从 stanfit 对象 f
的转换数据块中提取 z
。可能吗?
library(rstan)
m <- stan_model(model_code = '
data{real x;}
transformed data{real z; z = chi_square_rng(x); }
parameters {real y;}
model {y ~ normal(z,1);}')
f <- sampling(m, data=list(x=1), iter = 100)
我会像这样在 generated quantities
中添加一个新值:
library(rstan)
m <- stan_model(model_code = '
data{real x;}
transformed data{real z; z = chi_square_rng(x); }
parameters {real y;}
model {y ~ normal(z,1);}
generated quantities {real zhat = z;}')
f <- sampling(m, data=list(x=1), iter = 100)
这 returns 个有效值
print(f, pars = "zhat")
mean se_mean sd 2.5% 25% 50% 75% 97.5% n_eff Rhat
zhat 0.16 0 0 0.16 0.16 0.16 0.16 0.16 2 0.98
您可以提取值,只是为了显示一些结果:
> extract(f)[["zhat"]]
[1] 0.16445 0.16445 0.16445 0.16445 0.16445 0.16445
[7] 0.16445 0.16445 0.16445 0.16445 0.16445 0.16445
[13] 0.16445 0.16445 0.16445 0.16445 0.16445 0.16445