You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm using tidybayes to visualize the results of a (mixed-effects) categorical ('multinomial') regression fit with brms::brm(). Even when I apply recover_types to the model prior to using add_linpred_draws(), the output of add_linpred_draws() has only integer values in the .category column, rather than the original labels of the outcome.
For example:
# make some categorical data
d <-
rmultinom(n = 100, size = 1, prob = c(.1, .4, .5)) %>%
as_tibble(.name_repair) %>%
mutate(response = case_when(V1 == 1 ~ "A", V2 == 1 ~ "B", T ~ "C")) %>%
select(response)
# fit categorical model
m <- brm(
bf(response ~ 1),
family = categorical,
data = d,
backend = "cmdstanr")
# apply (or not) recover types to model
m %<>% recover_types(d)
# get draws from linear predictor
d %>%
add_linpred_draws(
object = m,
ndraws = 100,
re_formula = NA,
value = "logit",
category = "predicted_response")
yields:
# A tibble: 20,000 × 7
# Groups: response, .row, predicted_response [200]
response .row .chain .iteration .draw predicted_response logit
<chr> <int> <int> <int> <int> <fct> <dbl>
1 B 1 NA NA 1 1 1.22
2 B 1 NA NA 2 1 1.09
3 B 1 NA NA 3 1 1.35
4 B 1 NA NA 4 1 2.01
5 B 1 NA NA 5 1 1.79
6 B 1 NA NA 6 1 2.10
7 B 1 NA NA 7 1 1.69
8 B 1 NA NA 8 1 1.57
9 B 1 NA NA 9 1 2.09
10 B 1 NA NA 10 1 1.67
# ℹ 19,990 more rows
# ℹ Use `print(n = ...)` to see more rows
rather than:
# A tibble: 20,000 × 7
# Groups: response, .row, predicted_response [200]
response .row .chain .iteration .draw predicted_response logit
<chr> <int> <int> <int> <int> <fct> <dbl>
1 B 1 NA NA 1 B 1.22
2 B 1 NA NA 2 B 1.09
3 B 1 NA NA 3 B 1.35
4 B 1 NA NA 4 B 2.01
5 B 1 NA NA 5 B 1.79
6 B 1 NA NA 6 B 2.10
7 B 1 NA NA 7 B 1.69
8 B 1 NA NA 8 B 1.57
9 B 1 NA NA 9 B 2.09
10 B 1 NA NA 10 B 1.67
# ℹ 19,990 more rows
# ℹ Use `print(n = ...)` to see more rows
Despite the fact that the original category labels are available in the model object:
Family: categorical
Links: muB = logit; muC = logit
Formula: response ~ 1
Data: d (Number of observations: 100)
Draws: 4 chains, each with iter = 2000; warmup = 1000; thin = 1;
total post-warmup draws = 4000
Population-Level Effects:
Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
muB_Intercept 1.66 0.36 1.01 2.44 1.00 1043 929
muC_Intercept 1.51 0.36 0.86 2.28 1.00 1071 906
(I also note that the transform argument also doesn't work for this type of model though I imagine that issues lies with brms?).
Thank you for looking into this! (and apologies if it's a false alarm)
The text was updated successfully, but these errors were encountered:
Hi,
I'm using tidybayes to visualize the results of a (mixed-effects) categorical ('multinomial') regression fit with brms::brm(). Even when I apply recover_types to the model prior to using add_linpred_draws(), the output of add_linpred_draws() has only integer values in the .category column, rather than the original labels of the outcome.
For example:
yields:
rather than:
Despite the fact that the original category labels are available in the model object:
(I also note that the
transform
argument also doesn't work for this type of model though I imagine that issues lies withbrms
?).Thank you for looking into this! (and apologies if it's a false alarm)
The text was updated successfully, but these errors were encountered: