Problem with convergence in hierarchical partially pooled model

You model would be over specify if you do:

    sd_a_r = pm.HalfNormal("sd_a_r", sd=100, shape=n_res_rate)
    sd_b_r = pm.HalfNormal("sd_b_r", sd=100, shape=n_res_rate)

    a_r = pm.HalfNormal("a_r", sd=sd_a_r, shape=n_res_rate)
    b_r = pm.HalfNormal("b_r", sd=sd_b_r, shape=n_res_rate)

plus sd=100 is likely too much. Try instead:

    sd_a_r = pm.HalfNormal("sd_a_r", sd=5)
    sd_b_r = pm.HalfNormal("sd_b_r", sd=5)

    a_r = pm.HalfNormal("a_r", sd=sd_a_r, shape=n_res_rate)
    b_r = pm.HalfNormal("b_r", sd=sd_b_r, shape=n_res_rate)