brms:如何设置分类变量的优先级?
brms: how do I set prior on categorical variable?
我正在使用 2 个分类变量构建二项式回归模型。这是来自《统计反思》一书中的一个例子。在书中,在使用 rethinking 包时,我们可以为每个分类变量设置先验,如下所示
m11.5 <- ulam(
alist(
pulled_left ~ dbinom( 1 , p ) ,
logit(p) <- a[actor] + b[treatment] ,
a[actor] ~ dnorm( 0 , 1.5 ),
b[treatment] ~ dnorm( 0 , 0.5 )
) ,
data=d , chains=4 , log_lik=TRUE )
我正在尝试在 brms 中做同样的事情。
priors <- c(prior(normal(0, 1.5), class = b, coef = "actor"),
prior(normal(0, 0.5), class = b, coef = "treatment"))
m11.5 <- brm(data = d, family = binomial,
formula = pulled_left | trials(1) ~ 1 + actor + treatment,
sample_prior = T, prior = priors,
cores = 4, chains = 4)
我想为所有演员级别和提到过的处理级别设置先验。但是上面的代码没有通过以下错误消息,
使用 get_prior 后,我看到以下内容(暗示级别在内部拆分)
我不想为分类变量的每个级别指定先验。我该怎么做?请指教
您可以直接粘贴并设置多个系数:
priors <- c(prior_string("normal(0, 1.5)", class = "b", coef = paste("actor", 2:7, sep="")),
prior_string("normal(0, 0.5)", class = "b", coef = paste("treatment", 2:4, sep="")))
我正在使用 2 个分类变量构建二项式回归模型。这是来自《统计反思》一书中的一个例子。在书中,在使用 rethinking 包时,我们可以为每个分类变量设置先验,如下所示
m11.5 <- ulam(
alist(
pulled_left ~ dbinom( 1 , p ) ,
logit(p) <- a[actor] + b[treatment] ,
a[actor] ~ dnorm( 0 , 1.5 ),
b[treatment] ~ dnorm( 0 , 0.5 )
) ,
data=d , chains=4 , log_lik=TRUE )
我正在尝试在 brms 中做同样的事情。
priors <- c(prior(normal(0, 1.5), class = b, coef = "actor"),
prior(normal(0, 0.5), class = b, coef = "treatment"))
m11.5 <- brm(data = d, family = binomial,
formula = pulled_left | trials(1) ~ 1 + actor + treatment,
sample_prior = T, prior = priors,
cores = 4, chains = 4)
我想为所有演员级别和提到过的处理级别设置先验。但是上面的代码没有通过以下错误消息,
使用 get_prior 后,我看到以下内容(暗示级别在内部拆分)
我不想为分类变量的每个级别指定先验。我该怎么做?请指教
您可以直接粘贴并设置多个系数:
priors <- c(prior_string("normal(0, 1.5)", class = "b", coef = paste("actor", 2:7, sep="")),
prior_string("normal(0, 0.5)", class = "b", coef = paste("treatment", 2:4, sep="")))