brms::brm-根据函数定义一些起始值
我想为brms::brm-根据函数定义一些起始值,r,bayesian,stan,brms,R,Bayesian,Stan,Brms,我想为brms::brm模型手动设置起始值(而不是:优先级),仅针对某些系数并根据函数设置 我当前的代码如下所示(您可以忽略x变量和unit,我只想操作z和as.factorF1和as.factorF2的起始值): 另一个类似的问题没有得到回答,也没有明确要求为某些系数起始值调用函数 我只找到了inits=“0”(将所有起始值设置为0)或默认值inits=“random”。有人能建议怎么做吗?提前谢谢 library(tidyverse) library(brms) df <- data
brms::brm
模型手动设置起始值(而不是:优先级),仅针对某些系数并根据函数设置
我当前的代码如下所示(您可以忽略x
变量和unit
,我只想操作z
和as.factorF1
和as.factorF2
的起始值):
另一个类似的问题没有得到回答,也没有明确要求为某些系数起始值调用函数
我只找到了inits=“0”
(将所有起始值设置为0)或默认值inits=“random”
。有人能建议怎么做吗?提前谢谢
library(tidyverse)
library(brms)
df <- data.frame(x1 = rnorm(100, mean = 1, sd = 2),
x2 = rnorm(100, mean = 2, sd = 2),
x3 = rnorm(100, mean = 3, sd = 2),
z = rnorm(100, mean = 4, sd = 2),
Fa = wakefield::r_sample_factor(n = 100, x = c(1, 2, 3)),
unit = wakefield::r_sample_factor(n = 100, x = 1:10),
Y = rnorm(100, mean = 15, sd = 5)
) %>% tibble::tibble()
brmsmodel <- brm(Y ~ as.factor(Fa) + # Fa has levels 1, 2, 3
x1 + x2 + x3 + z + (1 + x1 | unit),
data = df,
prior = c(prior(normal(0, 1), class = "b", coef = "z"),
prior_string("normal(0, 1)", class = "b", coef = paste("as.factorFa", 2:3, sep=""))),
chains = 1, iter = 25, warmup = 10, seed = 123,
init = "0")
inits: 1) init = runif(0, 1), class = "b", coef = "z"
2) init = runif(0, 1), class = "b", coef = "as.factorFa2"
3) init = runif(0, 1), class = "b", coef = "as.factorFa2"
other inits: random