3
$\begingroup$

I would like to know if it is possible to compute a BIC for a multivariate regression (One predictor X and 3 responses outcomes Y). If yes, how?

In R, when I run:

M1 <- lm(cbind(Y1, Y2, Y3) ~ X, data = dataset) M0 <- lm (cbind(Y1, Y2, Y3) ~1, data = dataset) BIC(M1, M0) 

I have the following output error: Error in logLik.lm(X[[i]], ...) : 'logLik.lm' does not support multiple responses

So it is possible to have BIC for multivariate regression, and if yes how can I compute the BIC on R?

Thanks

$\endgroup$

2 Answers 2

3
$\begingroup$

BIC is not defined for multivariate regression analysis, because you would have a log-likelihood per response variable.

There are, however, implementations of extensions of AIC and BIC to the multivariate case, like the mvIC function from the identically named package mvIC.

The help page describes:

Evaluate multivariate BIC while considering correlation between response variables.

$\endgroup$
1
  • 1
    $\begingroup$ Is it obvious that the "BIC is not defined for multivariate regression analysis"? I'm currently studying the different references cited in the mvIC package (which extend BCI and AIC to multivariate settings), but intuitively I'm having trouble understanding why the classical derivation of the BIC cannot be extended to vectors instead of scalar observations. $\endgroup$ Commented Jul 22, 2024 at 13:30
0
$\begingroup$

I implemented this formula in my R package StepReg based on this paper.

"Al-Subaihi, A.A. 2002. Variable Selection in Multivariable Regression Using SAS/IML. Journal of Statistical Software. 7, 12 (Nov. 2002), 1–20."

You can use anova(reducedmodel, fullmodel) to get the approximate F value and its p-value to compare the 2 models.

Usually, BIC is computed based on a single model(M0 or M1)

$\endgroup$

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.