View source: R/multilevel.cor.R
| multilevel.cor | R Documentation |
This function computes the within-group and between-group correlation matrix by
calling the sem function in the R package lavaan and provides standard
errors, z test statistics, and significance values (p-values) for testing
the hypothesis H0: \rho = 0 for all pairs of variables within and between
groups. By default, the function provides the within-group and
between-group correlation matrix. Statistically significant correlations can
be highlighted by specifying the argument color.
multilevel.cor(data, ..., cluster, estimator = c("ML", "MLR"), constr.var = FALSE,
optim.method = c("nlminb", "em"), optim.switch = TRUE,
print = c("all", "summary", "cor", "se", "stat", "p"), split = FALSE,
order = FALSE, tri = c("both", "lower", "upper"), tri.lower = TRUE,
missing = c("listwise", "fiml"), alpha = 0.05,
color = "default", style = c("regular", "bold", "italic"),
p.adj = c("none", "bonferroni", "holm", "hochberg", "hommel",
"BH", "BY", "fdr"),
digits = 2, p.digits = 3, as.na = NULL, write = NULL,
append = TRUE, check = TRUE, output = TRUE)
data |
a data frame. |
... |
an expression indicating the variable names in |
cluster |
either a character string indicating the variable name of
the cluster variable in |
estimator |
a character string indicating the estimator to be used, i.e.,
|
constr.var |
logical: if |
optim.method |
a character string indicating the optimizer, i.e.,
|
optim.switch |
logical: if |
print |
a character string or character vector indicating which
results to show on the console, i.e. |
split |
logical: if |
order |
logical: if |
tri |
a character string indicating which triangular of the
matrix to show on the console when |
tri.lower |
logical: if |
missing |
a character string indicating how to deal with missing
data, i.e., |
alpha |
a numeric value between 0 and 1 indicating the significance
level at which correlation coefficients are printed
boldface when when specifying the argument |
color |
a character string indicating the text color for highlighting
statistically significant correlation coefficients , i.e.,
|
style |
a character vector indicating the font style for
statistically significant correlation coefficients, i.e.,
|
p.adj |
a character string indicating an adjustment method for
multiple testing based on |
digits |
an integer value indicating the number of decimal places to be used for displaying correlation coefficients. |
p.digits |
an integer value indicating the number of decimal places to be used for displaying p-values. |
as.na |
a numeric vector indicating user-defined missing values,
i.e. these values are converted to |
write |
a character string naming a file for writing the output into
either a text file with file extension |
append |
logical: if |
check |
logical: if |
output |
logical: if |
The function automatically
identifies (1) variables in the data frame specified in data that are
measured at the individual level and modeled only at the within level and (2)
variables in the data frame specified in data that are measured at the
cluster level and modeled only at the between level. The former variables have
no variance in the between part of the model (i.e., ICC(1) is 0 e.g. due to centering
within clusters), while the latter variables do not have any variance within clusters.
The default setting
for the argument estimator is depending on the setting of the argument
color. If color = "default" (default), maximum likelihood estimation
(estimator = "ML") is used, while maximum likelihood with Huber-White
robust standard errors (estimator = "MLR") that are robust against
non-normality is used when when specifying a color for the argument color.
In the presence of missing data, full information
maximum likelihood (FIML) method (missing = "fiml") is used by default.
Note that FIML method cannot deal with within-group variables that have no
variance within some clusters. In this cases, the function will switch to
listwise deletion. Using FIML method might result in issues with model convergence,
which might be resolved by switching to listwise deletion (missing = "listwise").
The lavaan package uses a quasi-Newton optimization
method ("nlminb") by default. If the optimizer does not converge, model
estimation switches to the Expectation Maximization (EM) algorithm ("em")
if the argument optim.switch is specified as TRUE (default).
Statistically significant correlation
coefficients can be shown color coded on the console by specifying the argument
color. However, this option is not supported when using R Markdown.
Adjustment method for
multiple testing when specifying the argument p.adj is applied to
the within-group and between-group correlation matrix separately.
Returns an object of class misty.object, which is a list with following
entries:
call |
function call |
type |
type of analysis |
data |
data frame specified in |
args |
specification of function arguments |
model.fit |
fitted lavaan object ( |
result |
list with result tables, i.e., |
The function uses the functions sem, lavInspect,
lavMatrixRepresentation, lavTech, parameterEstimates,
and standardizedsolution provided in the R package lavaan by
Yves Rosseel (2012).
Takuya Yanagida takuya.yanagida@univie.ac.at
Hox, J., Moerbeek, M., & van de Schoot, R. (2018). Multilevel analysis: Techniques and applications (3rd. ed.). Routledge.
Snijders, T. A. B., & Bosker, R. J. (2012). Multilevel analysis: An introduction to basic and advanced multilevel modeling (2nd ed.). Sage Publishers.
write.result, multilevel.descript,
multilevel.icc, cluster.scores
## Not run:
# Load data set "Demo.twolevel" in the lavaan package
data("Demo.twolevel", package = "lavaan")
#————————————————————————————————————————————————————————————————————————————
# Cluster Variable Specification
# Example 1a: Specification using the argument '...'
multilevel.cor(Demo.twolevel, y1, y2, y3, cluster = "cluster")
# Example 1b: Alternative specification with cluster variable 'cluster' in 'data'
multilevel.cor(Demo.twolevel[, c("y1", "y2", "y3", "cluster")], cluster = "cluster")
# Example 1c: Alternative specification with cluster variable 'cluster' not in 'data'
multilevel.cor(Demo.twolevel[, c("y1", "y2", "y3")], cluster = Demo.twolevel$cluster)
#————————————————————————————————————————————————————————————————————————————
# Arguments 'color', 'style', 'split', 'print', and 'p.adj'
# Example 2a: Highlight statistically significant result in bright red
multilevel.cor(Demo.twolevel, y1, y2, y3, cluster = "cluster", color = "b.red")
# Example 2b: Highlight statistically significant result in boldface
multilevel.cor(Demo.twolevel, y1, y2, y3, cluster = "cluster", color = "black",
style = "bold")
# Example 3: Split output table in within-group and between-group correlation matrix
multilevel.cor(Demo.twolevel, y1, y2, y3, cluster = "cluster", split = TRUE,
color = "green", style = "bold")
# Example 4a: Print summary of the lavaan specification and all results
multilevel.cor(Demo.twolevel, y1, y2, y3, cluster = "cluster", print = "all")
# Example 4b: Print summary of the lavaan specification and correlation coefficients
multilevel.cor(Demo.twolevel, y1, y2, y3, cluster = "cluster", print = c("summary", "cor"))
# Example 5: Significance values with Bonferroni correction
multilevel.cor(Demo.twolevel, y1, y2, y3, cluster = "cluster", print = c("cor", "p"),
p.adj = "bonferroni")
#————————————————————————————————————————————————————————————————————————————
# Variables Measured at the Within and Cluster Level
# Example 6a: Variables "y1", "y2", and "y2" modeled at both the within and between level
# Variables "w1" and "w2" modeled at the cluster level
multilevel.cor(Demo.twolevel, y1, y2, y3, w1, w2, cluster = "cluster")
# Example 6b: Print cluster level variables first
multilevel.cor(Demo.twolevel, y1, y2, y3, w1, w2, cluster = "cluster", order = TRUE)
#————————————————————————————————————————————————————————————————————————————
# lavaan Model and Summary of the Estimated Model
# Example 7: lavaan model and summary of the multilevel model used to compute
# the within-group and between-group correlation matrix
mod <- multilevel.cor(Demo.twolevel, y1, y2, y3, cluster = "cluster", output = FALSE)
# lavaan model syntax
mod$model
# Fitted lavaan object
lavaan::summary(mod$model.fit, standardized = TRUE)
#————————————————————————————————————————————————————————————————————————————
# Write Results
# Example 8a: Write Results into a text file
multilevel.cor(Demo.twolevel, y1, y2, y3, cluster = "cluster",
write = "Multilevel_Correlation.txt")
# Example 8b: Write Results into a Excel file
multilevel.cor(Demo.twolevel, y1, y2, y3, cluster = "cluster",
write = "Multilevel_Correlation.xlsx")
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.