【问题标题】:In rstan, are initial parameter values that are specified via a list applied on the constrained support or the unconstrained support?在 rstan 中,初始参数值是通过应用于受约束支持还是不受约束支持的列表指定的?
【发布时间】:2018-12-21 05:25:21
【问题描述】:

rstan::stan 的帮助文件对init 参数有以下说明:

init="random"(默认):

  • 让 Stan 为 所有参数。 Stan 使用的随机数生成器的种子 可以通过种子参数指定。如果斯坦的种子是固定的, 使用相同的初始值。默认是随机生成 无约束支持上的初始值介于 -2 和 2 之间。这 可选附加参数 init_r 可以设置为其他值 大于 2 以更改随机生成的 inits 的范围。

init="0", init=0:

  • 在不受约束的情况下将所有参数初始化为零 支持。

通过列表初始化:

  • 通过提供一个等于的列表来设置初始值 长度与链的数量有关。该列表的元素应 它们本身是命名列表,其中每个命名列表都有 参数的名称,用于指定该参数的初始值 对应链的参数。

不幸的是,这并不清楚通过列表指定的初始参数值是应用于受约束的支撑还是不受约束的支撑。例如,如果我有以下参数块,

parameters {
    real<lower=3, upper=7> theta;
}

我打电话给stan如下,

rstan::stan(file, data = standata, init = list(list(theta = 5)), chains = 1)

theta 的初始值是在受约束的支撑上还是在不受约束的支撑上等于 5?

【问题讨论】:

    标签: r stan rstan


    【解决方案1】:

    受限。在documentation 中,它说当init 是一个列表时,

    这个列表的元素本身应该是命名列表,其中每个命名列表都有一个参数的名称,并用于为相应链指定该参数的初始值。

    如果它属于 Stan 程序的 parameters 块,那么它指的是受限空间。对于协方差矩阵、单纯形等,无约束空间不一定与约束空间的维度相匹配。

    【讨论】:

    • 我猜“用于为相应链指定该参数的初始值”意味着初始值在无约束空间中。但对于像我这样的 MCMC 新手来说,这并不明显。
    猜你喜欢
    • 1970-01-01
    • 2019-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    • 2018-12-16
    相关资源
    最近更新 更多