mvIC: Evaluate multivariate BIC

View source: R/evalCriterion.R

mvICR Documentation

Evaluate multivariate BIC

Description

Evaluate multivariate BIC while considering correlation between response variables. For n samples, p responses and m parameters for each model, evaluate the multivariate BIC as

n * logDet(Σ) + log(n) * (p*m + 0.5*p*(p+1))

where Σ is the residual covariance matrix. This formula extends the standard univariate BIC to the multivariate case. For one response the standard penalty is log(n)*m, this just adds a log(n) to that value, but only the differences between two models is important. Estimating the p x p covariance matrix requires 0.5*p*(p+1) parameters. When p > m the residual covariance matrix Sigma is not full rank. In this case the psudo-determinant is used instead.

See References

Pauler, DK. The Schwarz criterion and related methods for normal linear models. Biometrika (1998), 85, 1, pp. 13-27

Edward J. Bedrick and Chih-Ling Tsai. Model Selection for Multivariate Regression in Small Samples. Biometrics, 50:1 1994 226-231

TJ Wu, P Chen, Y Yan. The weighted average information criterion for multivariate regression model selection. Signal Processing 93.1 (2013): 49-55.

Usage

mvIC(
  fitList,
  criterion = c("BIC", "sum BIC", "AIC", "AICC", "CAIC", "sum AIC"),
  shrink.method = c("EB", "none", "var_equal", "var_unequal"),
  nparamsMethod = c("edf", "countLevels", "lme4"),
  ...
)

Arguments

fitList

list of model fits with lm() or lmer(). All models must have same data, response and formula.

criterion

multivariate criterion ('AIC', 'BIC') or summing score assuming independence of reponses ('sum AIC', 'sum BIC')

shrink.method

Shrink covariance estimates to be positive definite. Using "var_equal" assumes all variance on the diagonal are equal. This method is the fastest because it is linear time. Using "var_unequal" allows each response to have its own variance term, however this method is quadratic time. Using "none" does not apply shrinkge, but is only valid when there are very few responses

nparamsMethod

"edf": effective degrees of freedom. "countLevels" count number of levels in each random effect. "lme4" number of variance compinents, as used by lme4. See description in nparam

...

additional arguements passed to logDet

Details

Evaluate multivariate BIC from a list of regression fits

Value

multivariate BIC value

Examples

# Predict Sepal width and Length given Species 
# Evaluate model fit
fit1 = lm( cbind(Sepal.Width, Sepal.Length) ~ Species, data=iris)
mvIC( fit1 )

# add Petal width and length
# smaller mvIC means better model
fit2 = lm( cbind(Sepal.Width, Sepal.Length) ~ Petal.Width + Petal.Length + Species, data=iris)
mvIC( fit2 )


GabrielHoffman/mvIC documentation built on Aug. 30, 2022, 7:58 p.m.