I found this pre-print a while ago and I found it very interesting: https://osf.io/evxn6/
My first thought was regaring if it would be possible to setup their model(s) with brms, extended with partial pooling.
EDIT: Model A (slightly rewritten from reference): \text{logit}(Pr(y_{ij}=1))=\alpha_j-\beta_j(o_j-x_i)^2, i - index for party, j - index for ideology/tag
I have the data, but it needs cleaning, but I think a non-linear formula (for their model A) would look something like:
nl(binary ~ a + exp(b)*(o-x)^2,
a ~ 1 + (1|ideology), # ideology tag specific constant (prevalence)
b ~ 1 + (1|ideology), # ideology tag discrimination parameter
o ~ (1|ideology), # ideology tag location
x ~ (1|party)) # party location
#family = binomial(link="logit")
I think we would like to set the prior for the SD of the party locations and the ideology tag as fixed at 1 to resolve the multiplicative invariance. The means are both fixed at zero to resolve the addition invariance. However, we still have the rotational/sign invariance to resolve, which is the tricky part to do directly in brms. In the paper they fix the ideology tag location for conservatism to be larger than 0. I am thinking along the line of changing the non-linear formula into something like
~ a + exp(b)*(o-(x+x*conservative*(x<0)*2*abs(x))^2
Conservative would an indicator for whether the ideology tag is conservatism. Do you think that would work?