Simsem - Power Analysis - Standardized Betas

22 views
Skip to first unread message

John Pap

unread,
Jun 9, 2026, 11:10:15 AM (2 days ago) Jun 9
to lavaan

Hi,

I am conducting a power analysis for an experiment in which one of the two key variables (X) is measured as continuous, while the other, which i experimentally manipulate (Y) is dichotomous. I am interested in setting standardized effect sizes (small, medium, or large betas) so that I can communicate power results clearly.

Initially, I considered standardizing the continuous variable after data generation step. However, since the model also includes an interaction between X and Y, as well as a quadratic term X², standardizing the derived terms separately would break the mathematical relationship between X and X² from what i read online and it is not right.

Following this, and reading the Donnelly et al. 2022 ("Alternatively, one could use the findFactorResidualVar() function to set total variances to 1, so that regression slopes are standardized parameters (Table 6, lines 14–15)."), I implemented the function as below, where Comp and Warm are mediators, Outcome is the dependent variable, and X, Y, X², and XY are the exogenous predictors:

resid.free <- resid.pop <- matrix(0, 3, 3,
                                  dimnames = list(c("Comp", "Warm", "Outcome"),
                                                  c("Comp", "Warm", "Outcome")))

corPsi_mat <- diag(3)
rownames(corPsi_mat) <- colnames(corPsi_mat) <- c("Comp", "Warm", "Outcome")

resVars <- findFactorResidualVar(
  beta   = beta.pop,
  corPsi = corPsi_mat,
  gamma  = kappa.pop,
  covcov = exoCov
)

diag(resid.free) <- NA
diag(resid.pop)  <- resVars
resid.free["Comp","Warm"] <- resid.free["Warm","Comp"] <- "covCW"
resid.pop["Comp","Warm"]  <- resid.pop["Warm","Comp"]  <- 0

residCov <- simsem::binds(free = resid.free, popParam = resid.pop)

My question is: is this implementation sufficient for all betas to be interpretable as standardized effect sizes in the conventional sense (i.e., comparable to small/medium/large benchmarks)? 

Or do I also need to standardize X and Y explicitly before constructing exoCov and entering them into the model?

And still will the betas for  X² or XY be interpret able as standardized betas?

Thank you very much for your time checking my question.

Ioannis


Reply all
Reply to author
Forward
0 new messages