easystats / performance

:muscle: Models' quality and performance metrics (R2, ICC, LOO, AIC, BF, ...)
https://easystats.github.io/performance/
GNU General Public License v3.0
1.02k stars 89 forks source link

check_colinearity() returns warning for no intercept with 0 + Intercept syntax in {brms} #417

Open rbcavanaugh opened 2 years ago

rbcavanaugh commented 2 years ago

Reprex:

mod = brm(mpg ~ 0 + Intercept + cyl + disp + hp, data = mtcars, backend = "cmdstan", refresh = 0)

Warning message:
Model has no intercept. VIFs may not be sensible. 

High Correlation

      Term   VIF Increased SE Tolerance
 Intercept 24.89         4.99      0.04
       cyl 94.79         9.74      0.01
      disp 26.63         5.16      0.04
        hp 19.57         4.42      0.05

My understanding is that this model does include the intercept, but allows a prior on the intercept. Am I correct in thinking this is an ignorable warning?

Population-Level Effects: 
          Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
Intercept    34.28      2.79    28.69    39.88 1.00     1503     1926
cyl          -1.26      0.85    -2.95     0.40 1.00     1402     1653
disp         -0.02      0.01    -0.04     0.00 1.00     1734     2301
hp           -0.01      0.02    -0.04     0.02 1.00     2232     1960
bwiernik commented 2 years ago

Yes this warning is erroneous

bwiernik commented 2 years ago

(And just to be clear, the default syntax in brms allows a prior on the intercept. What the 0 + Intercept syntax permits is for the same prior to be used for the intercept as for the other coefficients.)

rbcavanaugh commented 2 years ago

ah thanks! I didn't pick up on that nuance with the 0 + Intercept syntax. Glad to know I can ignore the warning.