Computes Taylor polynomial regression models by evaluating a series of models with increasing predictors. It aims to find a consistent model that effectively captures the variance in the data. It draws on the regsubsets function from the leaps package and builds up to 20 models for each number of predictors, evaluates these models regarding model consistency and selects consistent model with the highest R^2. This automatic model selection should usually be accompanied with visual inspection of the percentile plots and assessment of fit statistics. Set R^2 or number of terms manually to retrieve a more parsimonious model, if desired.
bestModel( data, raw =NULL, R2 =NULL, k =NULL, t =NULL, predictors =NULL, terms =0, weights =NULL, force.in=NULL, plot =TRUE, extensive =TRUE, subsampling =TRUE)
Arguments
data: Preprocessed dataset with 'raw' scores, powers, interactions, and usually an explanatory variable (like age).
raw: Name of the raw score variable (default: 'raw').
R2: Adjusted R^2 stopping criterion for model building.
k: Power constant influencing model complexity (default: 4, max: 6).
t: Age power parameter. If unset, defaults to k.
predictors: List of predictors or regression formula for model selection. Overrides 'k' and can include additional variables.
terms: Desired number of terms in the model.
weights: Optional case weights. If set to FALSE, default weights (if any) are ignored.
force.in: Variables forcibly included in the regression.
plot: If TRUE (default), displays a percentile plot of the model and information about the regression object. FALSE turns off plotting and report.
extensive: If TRUE (default), screen models for consistency and - if possible, exclude inconsistent ones
subsampling: If TRUE (default), model coefficients are calculated using 10-folds and averaged across the folds. This produces more robust estimates with a slight increase in bias.
Returns
The model. Further exploration can be done using plotSubset(model) and plotPercentiles(data, model).
Details
The functions rankBySlidingWindow, rankByGroup, bestModel, computePowers and prepareData are usually not called directly, but accessed through other functions like cnorm.
Additional functions like plotSubset(model) and cnorm.cv can aid in model evaluation.
Examples
# Example with sample data## Not run:# It is not recommende to use this function. Rather use 'cnorm' instead.normData <- prepareData(elfe)model <- bestModel(normData)plotSubset(model)plotPercentiles(buildCnormObject(normData, model))# Specifying variables explicitlypreselectedModel <- bestModel(normData, predictors = c("L1","L3","L1A3","A2","A3"))print(regressionFunction(preselectedModel))## End(Not run)