#subset to limit example run time
df <- vi[1:1000, ]
predictors <- vi_predictors[1:10]
predictors_numeric <- vi_predictors_numeric[1:10]
#predictors has mixed types
sapply(
X = df[, predictors, drop = FALSE],
FUN = class
)
#categorical predictors are ignored
x <- vif_select(
df = df,
predictors = predictors,
max_vif = 2.5
)
x
#all these have a VIF lower than max_vif (2.5)
vif_df(
df = df,
predictors = x
)
#higher max_vif results in larger selection
x <- vif_select(
df = df,
predictors = predictors_numeric,
max_vif = 10
)
x
#smaller max_vif results in smaller selection
x <- vif_select(
df = df,
predictors = predictors_numeric,
max_vif = 2.5
)
x
#custom preference order
x <- vif_select(
df = df,
predictors = predictors_numeric,
preference_order = c(
"swi_mean",
"soil_temperature_mean",
"topo_elevation"
),
max_vif = 2.5
)
x
#using automated preference order
df_preference <- preference_order(
df = df,
response = "vi_numeric",
predictors = predictors_numeric
)
x <- vif_select(
df = df,
predictors = predictors_numeric,
preference_order = df_preference,
max_vif = 2.5
)
x
#categorical predictors are ignored
#the function returns NA
x <- vif_select(
df = df,
predictors = vi_predictors_categorical
)
x
#if predictors has length 1
#selection is skipped
#and data frame with one row is returned
x <- vif_select(
df = df,
predictors = predictors_numeric[1]
)
x
Run the code above in your browser using DataLab