Learn R Programming

modsem (version 1.0.11)

standardized_estimates: Get Standardized Estimates

Description

Computes standardized estimates of model parameters for various types of modsem objects.

Usage

standardized_estimates(object, ...)

# S3 method for lavaan standardized_estimates( object, monte.carlo = FALSE, mc.reps = 10000, tolerance.zero = 1e-10, ... )

# S3 method for modsem_da standardized_estimates( object, monte.carlo = FALSE, mc.reps = 10000, tolerance.zero = 1e-10, ... )

# S3 method for modsem_pi standardized_estimates( object, correction = FALSE, std.errors = c("rescale", "delta", "monte.carlo"), mc.reps = 10000, colon.pi = FALSE, ... )

Value

A data.frame with standardized estimates in the est column.

Arguments

object

An object of class modsem_da, modsem_mplus, modsem_pi, or a parameter table (parTable) of class data.frame.

...

Additional arguments passed on to lavaan::standardizedSolution().

monte.carlo

Logical. If TRUE, use Monte Carlo simulation to estimate standard errors; if FALSE, use the delta method (default).

mc.reps

Integer. Number of Monte Carlo replications to use if std.errors = "monte.carlo".

tolerance.zero

Threshold below which standard errors are set to NA.

correction

Logical. Whether to apply a correction to the standardized estimates of the interaction term. By default, FALSE, which standardizes the interaction term such that \(\sigma^2(XZ) = 1\), consistent with lavaan's treatment of latent interactions. This is usually wrong, as it does not account for the fact that the interaction term is a product of two variables, which means that the variance of the interaction term of standardized variables (usually) is not equal to 1.

Hence the scale of the interaction effect changes, such that the standardized interaction term does not correspond to one (standardized) unit change in the moderating variables. If TRUE, a correction is applied by computing the interaction term \(b_3 = \frac{B_3 \sigma(X) \sigma(Z)}{\sigma(Y)}\) (where \(B_3\) is the unstandardized coefficient for the interaction term), and solving for \(\sigma(XZ)\), which is used to correct the variance of the interaction term, and its covariances.

std.errors

Character string indicating the method used to compute standard errors when correction = TRUE. Options include:

"rescale"

Simply rescales the standard errors. Fastest option.

"delta"

Uses the delta method to approximate standard errors.

"monte.carlo"

Uses Monte Carlo simulation to estimate standard errors.

Ignored if correction = FALSE.

colon.pi

Logical. If TRUE, the interaction terms in the output will be will be formatted using : to seperate the elements in the interaction term. Default is FALSE, using the default formatting from lavaan. Only relevant if std.errors != "rescale" and correction = TRUE.

Methods (by class)

  • standardized_estimates(lavaan): Method for lavaan objects

  • standardized_estimates(modsem_da): Method for modsem_da objects

  • standardized_estimates(modsem_pi): Method for modsem_pi objects

Details

Standard errors can either be calculated using the delta method, or a monte.carlo simulation (monte.carlo is not available for modsem_pi objects if correction == FALSE.). NOTE that the standard errors of the standardized paramters change the assumptions of the model, and will in most cases yield different z and p-values, compared to the unstandardized solution. In almost all cases, significance testing should be based on the unstandardized solution. Since, the standardization process changes the model assumptions, it also changes what the p-statistics measure. I.e., the test statistics for the standardized and unstandardized solutions belong to different sets of hypothesis, which are not exactly equivalent to each other.

For modsem_da and modsem_mplus objects, the interaction term is not a formal variable in the model and therefore lacks a defined variance. Under assumptions of normality and zero-mean variables, the interaction variance is estimated as: $$var(xz) = var(x) * var(z) + cov(x, z)^2$$ This means the standardized estimate for the interaction differs from approaches like lavaan, which treats the interaction as a latent variable with unit variance.

For modsem_pi objects, the interaction term is standardized by default assuming var(xz) = 1, but this can be overridden using the correction argument.

NOTE: Standardized estimates are always placed in the est column, not est.std, regardless of model type.

Examples

Run this code
m1 <- '
  # Outer Model
  X =~ x1 + x2 + x3
  Z =~ z1 + z2 + z3
  Y =~ y1 + y2 + y3

  # Inner Model
  Y ~ X + Z + X:Z
'
# Double centering approach
est_dca <- modsem(m1, oneInt)

std1 <- standardized_estimates(est_dca) # no correction
summarize_partable(std1)

std2 <- standardized_estimates(est_dca, correction = TRUE) # apply correction
summarize_partable(std2)

if (FALSE) {
est_lms <- modsem(m1, oneInt, method = "lms")
standardized_estimates(est_lms) # correction not relevant for lms
}

Run the code above in your browser using DataLab