Projpred: Interactions without marginal terms?

(Edited after I found the correct citation)

In my younger days, we learned from Bill Venable’s Exegeses (still available on the Internet) never to use interactions without the marginal terms, so weight_loss = bmi + bmi*sex was definitively not what the teacher expects.

I checked projpred today, and it happily returned such lonely interactions.

Any reasons?

From Venables/Ripley MASS, page 184 third edition:

A two-factor interaction a:b is marginal to any higher order interaction that contains a and b. Fitting a model such as a +a:b leasts to a model matrix where the columns corresponding to :b are extended to compensate for the absent marginal terms, b, and the fitte values are the same as if it were present. Fitting models with marginal terms removed such as with a*b-b generates a model whith no readily understood statistical meaning… In other words removing marginal factors terms from a fitted model is either statistically meangingless or futile in the sense that the model simply changes its parametrization to something equivalent.

The current projpred doesn’t know about the structure. The new version coming soon supports formula syntax and knows about interactions, “random effects”, and smooths.


I’m keen to use projpred on a brm model containing random effects, interactions and multi-level factors. Can you please tell me if these are available in projpred-1.1.6? I can’t tell from the package NEWS ( If not, will the GitHub master contain these additions?

Thanks very much for a great package; and an impressive amount of help via these forums.

Thanks you “everyone of the Stan developer community” for all the work made! Moreover, the projpred package is really boosting my everyday work.


Hi @andd, the new features are still only in the develop branch. The new features required major refactoring of the code and thus we need to be extra careful before making a new release. @AlejandroCatalina can provide a better estimate when that would be merged to master or point to an example how to use the features in the develop branch.

As @avehtari mentions, we have to be very careful when merging develop branch into master as it involves a very thorough rewriting of many core sections. That said, all the functionality should be complete for a few weeks already and we are planning to merge this into master soon (my personal estimate is before August). For a vignette showcasing the new functionality you can go to vignettes/quickstart_glmm.html. Do not hesitate in opening an issue to discuss whatever you don’t find clear enough for your purposes. Keep in mind that projpred's develop branch requires that you install brms's projpred branch.


Brilliant: thanks @avehtari and @AlejandroCatalina for the very quick response. I’ll try the develop branch.