如何解决brms::brm - 根据功能定义一些起始值
我想仅为某些系数并根据函数手动设置 brms::brm
模型的起始值(不是:先验)。
我当前的代码是这样的(你可以忽略 x
变量和 unit
,我只想操作 z
和 as.factorF1
和 {{ 1}}):
as.factorF2
此代码有效;但是,我想手动设置一些起始值 (library(tidyverse)
library(brms)
df <- data.frame(x1 = rnorm(100,mean = 1,sd = 2),x2 = rnorm(100,mean = 2,x3 = rnorm(100,mean = 3,z = rnorm(100,mean = 4,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,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)",coef = paste("as.factorFa",2:3,sep=""))),chains = 1,iter = 25,warmup = 10,seed = 123,init = "0")
) 以从均匀分布 inits
中提取,类似于先验。
我想要这样的东西(伪代码)
(X ~ U[0,1])
唯一的其他类似 question 未得到答复,并且没有特别要求为 某些系数起始值调用函数。
我只找到了 inits: 1) init = runif(0,coef = "z"
2) init = runif(0,coef = "as.factorFa2"
3) init = runif(0,coef = "as.factorFa2"
other inits: random
(将所有起始值设置为 0)或默认的 inits = "0"
。有人可以建议如何做到这一点吗?提前致谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。