19.12 Group specific parameters

  • Climb model 2:

log(πijk1πijk)=(β0+b0j+p0k)+β1Xijk1+β2Xijk2

  • For each of the 200 sampled expeditions and 46 sampled peaks, we have associated posterior distributions for the b0j and p0k
group_levels_2 <- tidy(climb_model_2, effects = "ran_vals") %>% 
  select(level, group, estimate)
  • Example tweaks for peaks:
group_levels_2 %>% 
  filter(group == "peak_name") %>% 
  head(2)
# A tibble: 2 × 3
  level       group     estimate
  <chr>       <chr>        <dbl>
1 Ama_Dablam  peak_name     2.91
2 Annapurna_I peak_name    -2.05
  • Example tweaks for expedition:
group_levels_2 %>% 
  filter(group == "expedition_id") %>% 
  head(2)
# A tibble: 2 × 3
  level     group         estimate
  <chr>     <chr>            <dbl>
1 AMAD03107 expedition_id -0.00442
2 AMAD03327 expedition_id  3.36 
  • For example, to predict success probability for a climber new expedition to an existing peak (say Ama_Dablam, an ‘easy one’), we would would use b=0 and the appropriate p0j=2.91. If the climber were 30 years old but did not plan to use oxygen:
logit_p = -1.53 +  2.91 - .0474*30 

invlogit(logit_p)
## [1] 0.4895015

49% chance of success. Could also use posterior_prediction

new_expedition <- data.frame(
  age = c(30), oxygen_used = c(FALSE), 
  expedition_id = c("new"), peak_name = c("Ama_Dablam") )

binary_prediction <- posterior_predict(climb_model_2, newdata = new_expedition)

mean(binary_prediction)

# [1] 0.49425

If they did use oxygen:

logit_p = -1.53 +  2.91 - .0474*30  + 6.2

invlogit(logit_p)
## [1] 0.997888

With prediction:

new_expedition <- data.frame(
  age = c(30), oxygen_used = c(TRUE), 
  expedition_id = c("new"), peak_name = c("Ama_Dablam") )

binary_prediction <- posterior_predict(climb_model_2, newdata = new_expedition)

mean(binary_prediction)
# [1] 0.95185

Why different? invlogit is nonlinear (but monotonic)