Last chance! 50% off unlimited learning
Sale ends in
This function conducts dominance analysis (Budescu, 1993; Azen & Budescu, 2003) based on a (model-implied) correlation matrix of the manifest or latent variables. Note that the function only provides general dominance.
dominance.manual(x, out = NULL, 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
x
correlation matrix specified in x
args
specification of function arguments
result
results table for the general dominance
a matrix or data frame with the (model-implied) correlation matrix
of the manifest or latent variables. Note that column names need
to represent the variables names in x
.
a character string representing the outcome variable. By default, the first row and column represents the outcome variable.
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
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
Bolker, B., Warnes, G., & Lumley, T. (2022). gtools: Various R Programming Tools. R package version 3.9.4, https://CRAN.R-project.org/package=gtools
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
Gu, X. (2022). Assessing the relative importance of predictors in latent regression models. Structural Equation Modeling: A Multidisciplinary Journal, 4, 569-583. https://doi.org/10.1080/10705511.2021.2025377
dominance
, std.coef
, write.result
if (FALSE) {
#----------------------------
# Linear model
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
dominance.manual(cor(dat[, c("y", "x1", "x2", "x3")]))
# Equivalent results using the dominance() function
mod <- lm(y ~ x1 + x2 + x3, data = dat)
dominance(mod)
# Outcome 'x3' predicted by 'y', 'x1', and 'x2'
dominance.manual(cor(dat[, c("y", "x1", "x2", "x3")]), out = "x3")
#----------------------------
# Structural equation modeling
library(lavaan)
#.............
# Latent variables
# Model specification
model <- '# Measurement model
ind60 =~ x1 + x2 + x3
dem60 =~ y1 + y2 + y3 + y4
dem65 =~ y5 + y6 + y7 + y8
# regressions
ind60 ~ dem60 + dem65'
# Model estimation
fit <- sem(model, data = PoliticalDemocracy)
# Model-implied correlation matrix of the latent variables
fit.cor <- lavInspect(fit, what = "cor.lv")
# Dominance analysis
dominance.manual(fit.cor)
#.............
# Latent and manifest variables
# Model specification, convert manifest to latent variable
model <- '# Measurement model
ind60 =~ x1 + x2 + x3
dem60 =~ y1 + y2 + y3 + y4
# Manifest as latent variable
ly5 =~ 1*y5
y5 ~~ 0*y5
# Regressions
ind60 ~ dem60 + ly5'
# Model estimation
fit <- sem(model, data = PoliticalDemocracy)
# Model-implied correlation matrix of the latent variables
fit.cor <- lavInspect(fit, what = "cor.lv")
# Dominance analysis
dominance.manual(fit.cor)
#----------------------------
# Multilevel modeling
# Model specification
model <- 'level: 1
fw =~ y1 + y2 + y3
# Manifest as latent variables
lx1 =~ 1*x1
lx2 =~ 1*x2
lx3 =~ 1*x3
x1 ~~ 0*x1
x2 ~~ 0*x2
x3 ~~ 0*x3
# Regression
fw ~ lx1 + lx2 + lx3
level: 2
fb =~ y1 + y2 + y3
# Manifest as latent variables
lw1 =~ 1*w1
lw2 =~ 1*w2
# Regression
fb ~ lw1 + lw2'
# Model estimation
fit <- sem(model, data = Demo.twolevel, cluster = "cluster")
# Model-implied correlation matrix of the latent variables
fit.cor <- lavInspect(fit, what = "cor.lv")
# Dominance analysis Within
dominance.manual(fit.cor$within)
# Dominance analysis Between
dominance.manual(fit.cor$cluster)
#----------------------------
# Mplus
#
# In Mplus, the model-impied correlation matrix of the latent variables
# can be requested by OUTPUT: TECH4 and imported into R by using the
# MplusAuomtation package, for example:
library(MplusAutomation)
# Read Mplus output
output <- readModels()
# Extract model-implied correlation matrix of the latent variables
fit.cor <- output$tech4$latCorEst
}
Run the code above in your browser using DataLab