-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[bug] default_prior
does not work with grouped random effects
#201
Comments
Strange. I can look into it |
Ok, this is not a problem with the grouped random effects, but a problem when there are random effects and an interaction only fixed effects: data <- oberauer_lin_2017
model <- mixture2p('dev_rad')
# this is fine
formula <- bmf(
kappa ~ 0 + set_size*session + (1|ID),
thetat ~ 0 + set_size*session + (1|ID)
)
default_prior(formula, data, model)
#> prior class coef group resp dpar nlpar lb ub source link
#> logistic(0, 1) theta2 -Inf Inf default identity
#> normal(0, 1) b session2 kappa <NA> <NA> (vectorized) identity
#> normal(0, 1) b set_size2:session2 kappa <NA> <NA> (vectorized) identity
#> normal(0, 1) b set_size3:session2 kappa <NA> <NA> (vectorized) identity
#> normal(0, 1) b set_size4:session2 kappa <NA> <NA> (vectorized) identity
#> normal(0, 1) b set_size5:session2 kappa <NA> <NA> (vectorized) identity
#> normal(0, 1) b set_size6:session2 kappa <NA> <NA> (vectorized) identity
#> normal(0, 1) b set_size7:session2 kappa <NA> <NA> (vectorized) identity
#> normal(0, 1) b set_size8:session2 kappa <NA> <NA> (vectorized) identity
#> student_t(3, 0, 2.5) sd kappa 0 default identity
#> student_t(3, 0, 2.5) sd ID kappa 0 (vectorized) identity
#> student_t(3, 0, 2.5) sd Intercept ID kappa 0 (vectorized) identity
#> (flat) b thetat default identity
#> (flat) b session2 thetat (vectorized) identity
#> (flat) b set_size2:session2 thetat (vectorized) identity
#> (flat) b set_size3:session2 thetat (vectorized) identity
#> (flat) b set_size4:session2 thetat (vectorized) identity
#> (flat) b set_size5:session2 thetat (vectorized) identity
#> (flat) b set_size6:session2 thetat (vectorized) identity
#> (flat) b set_size7:session2 thetat (vectorized) identity
#> (flat) b set_size8:session2 thetat (vectorized) identity
#> student_t(3, 0, 2.5) sd thetat 0 default identity
#> student_t(3, 0, 2.5) sd ID thetat 0 (vectorized) identity
#> student_t(3, 0, 2.5) sd Intercept ID thetat 0 (vectorized) identity
#> normal(0, 1) b kappa <NA> <NA> user identity
#> normal(2, 1) b set_size1 kappa <NA> <NA> user identity
#> normal(2, 1) b set_size2 kappa <NA> <NA> user identity
#> normal(2, 1) b set_size3 kappa <NA> <NA> user identity
#> normal(2, 1) b set_size4 kappa <NA> <NA> user identity
#> normal(2, 1) b set_size5 kappa <NA> <NA> user identity
#> normal(2, 1) b set_size6 kappa <NA> <NA> user identity
#> normal(2, 1) b set_size7 kappa <NA> <NA> user identity
#> normal(2, 1) b set_size8 kappa <NA> <NA> user identity
#> logistic(0, 1) b set_size1 thetat <NA> <NA> user identity
#> logistic(0, 1) b set_size2 thetat <NA> <NA> user identity
#> logistic(0, 1) b set_size3 thetat <NA> <NA> user identity
#> logistic(0, 1) b set_size4 thetat <NA> <NA> user identity
#> logistic(0, 1) b set_size5 thetat <NA> <NA> user identity
#> logistic(0, 1) b set_size6 thetat <NA> <NA> user identity
#> logistic(0, 1) b set_size7 thetat <NA> <NA> user identity
#> logistic(0, 1) b set_size8 thetat <NA> <NA> user identity
#> constant(0) Intercept mu1 <NA> <NA> user tan_half
#> constant(0) Intercept mu2 <NA> <NA> user identity
#> constant(-100) Intercept kappa2 <NA> <NA> user identity
# this is not fine
formula <- bmf(
kappa ~ 0 + set_size:session + (1|ID),
thetat ~ 0 + set_size:session + (1|ID)
)
default_prior(formula, data, model)
#> prior class coef group resp dpar nlpar lb ub source link
#> logistic(0, 1) theta2 -Inf Inf default identity
#> (flat) b kappa default identity
#> (flat) b set_size1:session1 kappa (vectorized) identity
#> (flat) b set_size1:session2 kappa (vectorized) identity
#> (flat) b set_size2:session1 kappa (vectorized) identity
#> (flat) b set_size2:session2 kappa (vectorized) identity
#> (flat) b set_size3:session1 kappa (vectorized) identity
#> (flat) b set_size3:session2 kappa (vectorized) identity
#> (flat) b set_size4:session1 kappa (vectorized) identity
#> (flat) b set_size4:session2 kappa (vectorized) identity
#> (flat) b set_size5:session1 kappa (vectorized) identity
#> (flat) b set_size5:session2 kappa (vectorized) identity
#> (flat) b set_size6:session1 kappa (vectorized) identity
#> (flat) b set_size6:session2 kappa (vectorized) identity
#> (flat) b set_size7:session1 kappa (vectorized) identity
#> (flat) b set_size7:session2 kappa (vectorized) identity
#> (flat) b set_size8:session1 kappa (vectorized) identity
#> (flat) b set_size8:session2 kappa (vectorized) identity
#> student_t(3, 0, 2.5) sd kappa 0 default identity
#> student_t(3, 0, 2.5) sd ID kappa 0 (vectorized) identity
#> student_t(3, 0, 2.5) sd Intercept ID kappa 0 (vectorized) identity
#> (flat) b thetat default identity
#> (flat) b set_size1:session1 thetat (vectorized) identity
#> (flat) b set_size1:session2 thetat (vectorized) identity
#> (flat) b set_size2:session1 thetat (vectorized) identity
#> (flat) b set_size2:session2 thetat (vectorized) identity
#> (flat) b set_size3:session1 thetat (vectorized) identity
#> (flat) b set_size3:session2 thetat (vectorized) identity
#> (flat) b set_size4:session1 thetat (vectorized) identity
#> (flat) b set_size4:session2 thetat (vectorized) identity
#> (flat) b set_size5:session1 thetat (vectorized) identity
#> (flat) b set_size5:session2 thetat (vectorized) identity
#> (flat) b set_size6:session1 thetat (vectorized) identity
#> (flat) b set_size6:session2 thetat (vectorized) identity
#> (flat) b set_size7:session1 thetat (vectorized) identity
#> (flat) b set_size7:session2 thetat (vectorized) identity
#> (flat) b set_size8:session1 thetat (vectorized) identity
#> (flat) b set_size8:session2 thetat (vectorized) identity
#> student_t(3, 0, 2.5) sd thetat 0 default identity
#> student_t(3, 0, 2.5) sd ID thetat 0 (vectorized) identity
#> student_t(3, 0, 2.5) sd Intercept ID thetat 0 (vectorized) identity
#> normal(2, 1) b 1 | ID kappa <NA> <NA> user identity
#> logistic(0, 1) b 1 | ID thetat <NA> <NA> user identity
#> constant(0) Intercept mu1 <NA> <NA> user tan_half
#> constant(0) Intercept mu2 <NA> <NA> user identity
#> constant(-100) Intercept kappa2 <NA> <NA> user identity Created on 2024-04-07 with reprex v2.1.0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Describe the bug
When using a
bmmformula
that includes grouped random effects, such as the formula we use in the second example of our Tutorial manuscript:then the
default_prior
function does not parse these effects correctly. As a result it only sets priors on the whole formula, as it does not recognize thegr()
commond around the grouping variableID
.To Reproduce
Using the
wmData
of the second example, you can reproduce the error specifying the followingbmmodel
andbmf
:Here is a screenshot from the output:
Expected behavior
If implemented correctly, the
bmm
default priors specified in thebmmodel
should be applied to theflat
priors listed in the output.The text was updated successfully, but these errors were encountered: