有没有一种方法可以从stan中的偏斜正态分布绘制?如果没有,是否有一种方法可以从正态分布中提取,然后转换为正常偏态?使用stan绘制偏斜正态分布
UPDATE
我在斯坦手动发现y~skew_normal(mu, sigma, alpha)
,但是当我与参数
mu=1, sigma=10, alpha=-1000
样品例如1000个值我也得到了一些-inf
值。任何想法为什么?
更新2
我testing.stan
data{
real mu;
real sigma;
real alpha;
}
model{
}
generated quantities{
real temp;
temp = skew_normal_rng(mu, sigma, alpha);
}
,然后我testing.R
文件
sdata <- list(
mu=1,
sigma=10,
alpha=-1000
)
model <- stan_model("stan code//testing.stan")
system.time(
samples <- sampling(model,data=sdata,seed=42,
chain=1,algorithm="Fixed_param",
iter=10000,thin=1,control=list(max_treedepth=9)
)
)
object <- rstan::extract(samples)
# hist(object$temp,breaks=100)
# plot(density(object$temp))
# mean(is.finite(object$temp))
# sum(!is.finite(object$temp))
sort(object$temp)
运行sort(object$temp)
后,我得到一些-inf
值。
如果您只是想随机绘制,请在'generated quantities'块中使用'skew_normal_rng'。如果您的问题实际上是“我如何估计被假定为偏斜正常的数据生成过程的参数?”那么你需要使用'skew_normal'采样语句或'skew_normal_lpdf'函数。 –
@BenGoodrich我更新了问题 – quant
好的。那是一个错误。 –