I’m attempting to build a nested random effects model in Stan. (Note: This model works fine in lme4, produces recovers parameters nicely, etc.)
The general structure - We are looking at student test scores. The random effects:
- 4 grade levels (freshman, sophomore, junior, senior)
- 100 classes (actual “class” in school)
- 20 teachers
- 2 past educations levels (public/private)
- 1000 students
The fixed effect:
- Hours of study (continuous)
The concept is that students are nested in classes, which are then nested in grade-level. The teacher and past education are random interactions that cross all the other groups.
In lme4: test_score ~ hours_study + (class|grade) + (1|teacher) + (1|pub_priv)
In Stan, no matter how I code this, I run into identifiability problems. conceptually the teacher and pub_priv variables should have small effects. However, Stan may assign the highest values to those, then small values to hours_study (or other similar problems)
I’ve read on past posts here, and in the Satan manual how identifiability can be an issue with multiple random effects. (Add a value one effect, subtract same value from second effect, and you get the same likelihood) .
How have others here approached this? Any suggestions or best practices?