Last chance! 50% off unlimited learning
Sale ends in
This function conducts dominance analysis (Budescu, 1993; Azen & Budescu, 2003)
for linear models estimated by using the lm()
function to determine the
relative importance of predictor variables. By default, the function reports
general dominance, but conditional and complete dominance can be requested by
specifying the argument print
.
dominance(model, print = c("all", "gen", "cond", "comp"), digits = 3,
write = NULL, check = TRUE, output = TRUE)
Returns an object of class misty.object
, which is a list with following
entries:
call
function call
type
type of analysis
model
model specified in model
args
specification of function arguments
result
list with results, i.e., gen
for general dominance,
cond
for conditional dominance, comp
for complete dominance,
and condtsat
for the statistics of the conditional dominance
a fitted model of class lm
.
a character string or character vector indicating which results
to show on the console, i.e. "all"
for all results, "gen"
for general dominance, "cond"
for conditional dominance,
and "comp"
for complete dominance.
an integer value indicating the number of decimal places to be
used for displaying results. Note that the percentage relative
importance of predictors are printed with digits
minus 1
decimal places.
a character string for writing the results into a Excel file
naming a file with or without file extension '.xlsx', e.g.,
"Results.xlsx"
or "Results"
.
logical: if TRUE
, argument specification is checked.
logical: if TRUE
, output is shown.
Takuya Yanagida takuya.yanagida@univie.ac.at
Dominance analysis (Budescu, 1993; Azen & Budescu, 2003) is used to determine
the relative importance of predictor variables in a statistical model by examining
the additional contribution of predictors in R-squared relative to each
other in all of the possible
A predictor completely dominates another
predictor if its additional contribution in R-Squared is higher than that
of the other predictor across all possible subset models that do not include both
predictors. For example, in a regression model with four predictors, NA
A predictor conditionally dominates another
predictor if its average additional contribution in R-squared is higher
within each model size than that of the other predictor. For example, in a
regression model with four predictors,
A predictor generally dominates another predictor
if its overall averaged additional contribution in R-squared is higher
than that of the other predictor. For example, in a regression model with four
predictors,
The three levels of dominance are related to each other in a hierarchical fashion: Complete dominance implies conditional dominance, which in turn implies general dominance. However, the converse may not hold for more than three predictors. That is, general dominance does not imply conditional dominance, and conditional dominance does not necessarily imply complete dominance.
Azen, R., & Budescu, D. V. (2003). The dominance analysis approach for comparing predictors in multiple regression. Psychological Methods, 8(2), 129–148. https://doi.org/10.1037/1082-989X.8.2.129
Budescu, D. V. (1993). Dominance analysis: A new approach to the problem of relative importance of predictors in multiple regression. Psychological Bulletin, 114(3), 542–551. https://doi.org/10.1037/0033-2909.114.3.542
Luchman J (2023). domir: Tools to support relative importance analysis. R package version 1.0.1, https://CRAN.R-project.org/package=domir.
dominance.manual
, std.coef
, write.result
dat <- data.frame(x1 = c(3, 2, 4, 9, 5, 3, 6, 4, 5, 6, 3, 5),
x2 = c(1, 4, 3, 1, 2, 4, 3, 5, 1, 7, 8, 7),
x3 = c(0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1),
y = c(0, 1, 0, 2, 0, 1, 0, 0, 1, 2, 1, 0))
#----------------------------
# Dominance analysis for a linear model
mod <- lm(y ~ x1 + x2 + x3, data = dat)
dominance(mod)
# Print all results
dominance(mod, print = "all")
if (FALSE) {
#----------------------------
# Write Results into a Excel file
mod <- lm(y ~ x1 + x2 + x3, data = dat)
dominance(mod, write = "Dominance.xlsx", output = FALSE)
result <- dominance(mod, print = "all", output = FALSE)
write.result(result, "Dominance.xlsx")
}
Run the code above in your browser using DataLab