fic.lm {fic} | R Documentation |
Focused information criteria for linear models
Description
Focused information criteria for linear models fitted with lm
.
Typically used to compare models with different covariates (more generally,
different linear terms).
Usage
## S3 method for class 'lm'
fic(wide, inds, inds0 = NULL, gamma0 = 0, focus = NULL,
focus_deriv = NULL, wt = NULL, sub = "auto", B = 0, loss = loss_mse,
...)
Arguments
wide |
Fitted model object containing the wide model. |
inds |
Matrix or vector of indicators for which parameters are included in the submodel or submodels to be assessed. A matrix should be supplied if there are multiple submodels. This should have number of rows equal to the number of submodels, and number of columns equal to the total number of parameters in the wide model. It contains 1s in the positions where the parameter is included in the submodel, and 0s in positions where the parameter is excluded. This should always be 1 in the positions defining the narrow model, as specified in |
inds0 |
Vector of indicators specifying the narrow model, in the same format as |
gamma0 |
Vector of special values taken by the parameters This defaults to 0, as in covariate selection, where "excluded" coefficients are fixed to 0. This should either be a scalar, assumed to be the same for all parameters fixed in the narrow model, or a vector of length equal to the number of parameters from the wide model which are fixed in the narrow model, that is, the number of entries of |
focus |
An R function with:
The function should return the focus quantity of interest. If additional arguments are supplied which are vectors or matrices, e.g. Not required if Alternatively,
See |
focus_deriv |
Vector of partial derivatives of the focus function with respect to the parameters in the wide model. This is not usually needed, as it can generally be computed automatically and accurately from the function supplied in |
wt |
Vector of weights to apply to different covariate values in |
sub |
If The model parameters include the intercept, followed by the coefficients of any covariates. The standard deviation is excluded. Only covariate selection problems are supported in this function. To compare between models with a fixed and unknown standard deviation, hand-written maximum likelihood estimation routines would be needed, along the lines described in the "skew-normal models" vignette. The focus can depend on the standard deviation. The focus function should then have an argument See the vignette "Using the fic R package for focused model comparison: linear regression" for some examples. |
B |
If |
loss |
A function returning an estimated loss for a submodel estimate under the sampling distribution of the wide model. Only applicable when using bootstrapping. This should have two arguments |
... |
Other arguments to the focus function can be supplied here. The built-in focus functions If just one focus is needed, then To compute focused model comparison statistics for multiple focuses defined by the same focus function evaluated at multiple covariate values, For a typical regression model, the first parameter will denote an intercept, so the first value of Arguments to the focus function other than |
Examples
## Covariate selection in Motor Trend cars data
## See the "fic" package vignette on linear models for more details
wide.lm <- lm(mpg ~ am + wt + qsec + disp + hp, data=mtcars)
## Select between all submodels
ncovs_wide <- length(coef(wide.lm)) - 1
inds0 <- c(1, rep(0, ncovs_wide))
inds <- all_inds(wide.lm, inds0)
## Two focuses: mean MPG for automatic and manual transmission,
## given mean values of the other covariates
cmeans <- colMeans(model.frame(wide.lm)[,c("wt","qsec","disp","hp")])
X <- rbind(
"auto" = c(intercept=1, am=0, cmeans),
"manual" = c(intercept=1, am=1, cmeans)
)
ficres <- fic(wide.lm, inds=inds, focus=mean_normal, X=X)
summary(ficres)
ggplot_fic(ficres)