Multicollinearity test before fitting the INLA model

20 views
Skip to first unread message

Babu Lawrence

unread,
Dec 8, 2025, 1:44:29 PM (8 days ago) Dec 8
to R-inla discussion group
Hi all,
Is it recommended to perform a multicollinearity test to filter out variables with high VIF values before fitting the INLA model?

Many thanks and best wishes,

Lawrence

Helpdesk (Haavard Rue)

unread,
Dec 8, 2025, 2:08:54 PM (8 days ago) Dec 8
to Babu Lawrence, R-inla discussion group
In general, this is not needed, as the prior will regularize this automatically.

however, with multicollinearity, there is an issue about the interpretation of
marginal distributions, since the uncertainty will be inflated.

here is an example

> n=100
> x=rnorm(n)
> xx = x + rnorm(n, sd=0.01)
> y = x + xx + rnorm(n, sd=0.1)

if you do not do anything, the 'sd' for 'x' and 'xx' is high due to co-lin

> r=inla(y ~ x + xx, data=data.frame(x,xx,y),
control.fixed=list(correlation.matrix=TRUE))
> r$misc$lincomb.derived.correlation.matrix
> r$summary.fixed[, c("mean", "sd")]
mean sd
(Intercept) -0.002613851231 0.01046462064
x -1.048997163900 1.01893598347
xx 3.033589783438 1.01915485993


if we simply skip 'xx' then its all good

> rr=inla(y ~ x, data=data.frame(x,xx,y),
control.fixed=list(correlation.matrix=TRUE))
> rr$misc$lincomb.derived.correlation.matrix
(Intercept) x
(Intercept) 1.0000000000 -0.1397949111
x -0.1397949111 1.0000000000
> rr$summary.fixed[, c("mean", "sd")]
mean sd
(Intercept) -0.004610456321 0.01084912133
x 1.983788524350 0.01061801634
> --
> You received this message because you are subscribed to the Google Groups "R-
> inla discussion group" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to r-inla-discussion...@googlegroups.com.
> To view this discussion, visit
> https://groups.google.com/d/msgid/r-inla-discussion-group/dcdcff74-68f1-47a6-9d6d-cfbca5faade8n%40googlegroups.com
> .

--
Håvard Rue
he...@r-inla.org

Helpdesk (Haavard Rue)

unread,
Dec 8, 2025, 2:13:30 PM (8 days ago) Dec 8
to Babu Lawrence, R-inla discussion group
to add here, with co-lin, we can interpret

beta.x * x + beta.xx * xx

but not each term individually

so, in practice you may want to do something about it
--
Håvard Rue
he...@r-inla.org
Reply all
Reply to author
Forward
0 new messages