View source: R/evalCriterion.R
mvIC | R Documentation |
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.
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"), ... )
fitList |
list of model fits with |
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 |
... |
additional arguements passed to logDet |
Evaluate multivariate BIC from a list of regression fits
multivariate BIC value
# 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 )
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.