Standardized coefficients vary when set to be equal

96 views
Skip to first unread message

Silvana González

unread,
Mar 23, 2023, 4:01:41 PM3/23/23
to lavaan
Hello everyone,

I'm fitting a model where I set a number of path coefficients to be equal across groups. When I look at the summary the estimates are equal but the standardized values are not. I understand that standardized coefficients can vary even among constrained paths because they are calculated on a per group basis because of the difference in variances among groups.

So, how do I report my results in a path diagram? I want to show a unique value for all groups for those paths that I fixed to an equal coefficient and be able to compare effects within and across groups.

Thank you!

Keith Markus

unread,
Mar 24, 2023, 10:25:03 AM3/24/23
to lavaan
sil,
I may be missing something in your question.  However, if it is a relatively simple diagram, then the most effective graphical presentation may be to reproduce the diagram once or each group and present the estimates for each group in a separate diagram.  If the diagram is too large to allow for that, then the best option might be to present the estimates inside the diagram as a series a values in a standardized order and include a table note explaining the order of the groups.  For example, a given effect coefficient could be labeled '(.41, .32, .49)' and the figure note could explain which estimates correspond to which groups.  You could also experiment with using different colors for different groups and/or including a legend -- or better yet choosing one parameter where you have plenty of space and adding group labels for that parameter: '(Group1: .41, Group2: .32, Group3: .49)'.

Keith
------------------------
Keith A. Markus
John Jay College of Criminal Justice, CUNY
http://jjcweb.jjay.cuny.edu/kmarkus
Frontiers of Test Validity Theory: Measurement, Causation and Meaning.
http://www.routledge.com/books/details/9781841692203/

Silvana González

unread,
Mar 24, 2023, 10:40:43 AM3/24/23
to lavaan
Thank you Keith, what I want is for some paths to have an equal coefficient for all groups and have that represented in my path diagram as a single arrow with a single coefficient.  However, the model gives me one different standardized coefficient for each group even when fixing the coefficients to be equal in the model. What confuses me is that I ran a test that proves there are no sig differences across groups for one link, I modify the model to have equal parameters for that link, but then I have to report four (I have four groups) different coefficients...

Shu Fai Cheung

unread,
Mar 25, 2023, 6:04:02 AM3/25/23
to lav...@googlegroups.com
This question is an interesting one, though not an easy one. I would love to see more discussion on this topic.

Anyway, let me share my two cents.

I use a 1-predictor regression for illustration.

y ~ x

Let:
The variance of x, x~~x, be v_x.
The coefficient of x to y be B.
The *error* variance of y, y~~y, be ev_y.

The variance of y, v_y, is not a parameter, but is equal to (B^2)v_x + ev_y.

The standardized coefficient of x to y (with std.all), beta, is then B*sqrt(v_x/v_y) = B*sqrt(v_x/((B^2)v_x + ev_y)

So, for a multiple-group model, as you already found, it is possible that even if a regression coefficient is constrained to be equal across groups, the standardized coefficients are still different across groups. In this simple scenario, the standardized coefficient depends on (is a function of) *three* parameters, not one. Even if the (unstandardized) coefficient are the same, differences in the variance of the predictor and the error variance of outcome can result in different standardized coefficients, unless sqrt(v_x/((B^2)v_x + ev_y) is also the same across group.

Things get much more complicated when there are more than one predictor for a dependent variable.

This is an illustration in lavaan:

library(lavaan)
#> This is lavaan 0.6-15
#> lavaan is FREE software! Please report any bugs.
dat <- HolzingerSwineford1939
dat$x <- dat$x1
dat$y <- dat$x4
mod <-
"
y ~ c(B1, B2) * x
x ~~ c(v_x1, v_x2) * x
y ~~ c(ev_y1, ev_y2) * y
v_y1 := (B1^2) * v_x1 + ev_y1
v_y2 := (B2^2) * v_x2 + ev_y2
B1 == B2
beta1 := B1 * sqrt(v_x1 / v_y1)
beta2 := B2 * sqrt(v_x2 / v_y2)
"
fit <- sem(mod, data = dat, group = "school")
est <- parameterEstimates(fit, standardized = TRUE, ci = FALSE, se = FALSE)
est
#>      lhs op                rhs block group label   est std.lv std.all std.nox
#> 1      y  ~                  x     1     1    B1 0.373  0.373   0.389   0.389
#> 2      x ~~                  x     1     1  v_x1 1.395  1.395   1.000   1.000
#> 3      y ~~                  y     1     1 ev_y1 1.090  1.090   0.849   0.849
#> 4      y ~1                        1     1       0.979  0.979   0.864   0.864
#> 5      x ~1                        1     1       4.941  4.941   4.183   4.183
#> 6      y  ~                  x     2     2    B2 0.373  0.373   0.376   0.376
#> 7      x ~~                  x     2     2  v_x2 1.319  1.319   1.000   1.000
#> 8      y ~~                  y     2     2 ev_y2 1.113  1.113   0.858   0.858
#> 9      y ~1                        2     2       1.478  1.478   1.298   1.298
#> 10     x ~1                        2     2       4.930  4.930   4.293   4.293
#> 11  v_y1 :=  (B1^2)*v_x1+ev_y1     0     0  v_y1 1.284  1.284   1.000   1.000
#> 12  v_y2 :=  (B2^2)*v_x2+ev_y2     0     0  v_y2 1.296  1.296   1.000   1.000
#> 14 beta1 := B1*sqrt(v_x1/v_y1)     0     0 beta1 0.389  0.389   0.389   0.389
#> 15 beta2 := B2*sqrt(v_x2/v_y2)     0     0 beta2 0.376  0.376   0.376   0.376

# Compare the lavaan std.all values and user-defined values
est[c(1, 6, 13, 14), ]
#>      lhs op                rhs block group label   est std.lv std.all std.nox
#> 1      y  ~                  x     1     1    B1 0.373  0.373   0.389   0.389
#> 6      y  ~                  x     2     2    B2 0.373  0.373   0.376   0.376
#> 14 beta1 := B1*sqrt(v_x1/v_y1)     0     0 beta1 0.389  0.389   0.389   0.389
#> 15 beta2 := B2*sqrt(v_x2/v_y2)     0     0 beta2 0.376  0.376   0.376   0.376
No simple solution, and also nothing wrong with this phenomenon.

Assuming the error variance is also constrained to be the same, then the only parameter that can lead to the discrepancy between B and "beta" in the model above is the variance of x. So, even if the unstandardized effect of x is the same across group, a group difference in the variances, and so the SDs, of x certainly should lead to a difference in "beta" because "one SD increase of x" does not mean the same increase in x in its original unit across group.

But there is a possible solution. Constrain more parameters to be the same across groups. In the example above, if we also constrain the variances and the error variances to be equal across group, then both Bs and betas will be the same across groups (guarantee to be the same):
mod2 <-
"
y ~ c(B, B) * x
x ~~ c(v_x, v_x) * x
y ~~ c(ev_y, ev_y) * y
"
fit2 <- sem(mod2, data = dat, group = "school")
est2 <- parameterEstimates(fit2, standardized = TRUE, ci = FALSE, se = FALSE)
est2
#>    lhs op rhs block group label   est std.lv std.all std.nox
#> 1    y  ~   x     1     1     B 0.373  0.373   0.382   0.382
#> 2    x ~~   x     1     1   v_x 1.358  1.358   1.000   1.000
#> 3    y ~~   y     1     1  ev_y 1.101  1.101   0.854   0.854
#> 4    y ~1         1     1       0.981  0.981   0.864   0.864
#> 5    x ~1         1     1       4.941  4.941   4.240   4.240
#> 6    y  ~   x     2     2     B 0.373  0.373   0.382   0.382
#> 7    x ~~   x     2     2   v_x 1.358  1.358   1.000   1.000
#> 8    y ~~   y     2     2  ev_y 1.101  1.101   0.854   0.854
#> 9    y ~1         2     2       1.480  1.480   1.303   1.303
#> 10   x ~1         2     2       4.930  4.930   4.230   4.230
I rarely see researchers do this. The suggestion by Keith is much more common. Nevertheless, empirically, a model like this is possible. If you really want to have some unstandardized and standardized path coefficients to be the same across groups, and your data supports a model like this one, and you have theoretical reasons to fit this model, then I see no reason why you cannot try.

My two cents.

Regards,
Shu Fai Cheung (張樹輝)


--
You received this message because you are subscribed to the Google Groups "lavaan" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lavaan+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/lavaan/a49a620d-53ec-4c5f-be09-ff56e6b3021en%40googlegroups.com.

Keith Markus

unread,
Mar 26, 2023, 9:42:57 AM3/26/23
to lavaan
Sil,
I hesitate to post again on this thread because I do not fully understand your question.  However, perhaps it is helpful to point out that it is no longer considered adequate reporting to report only standardized estimates.  The reason is that these will be misleading to the reader if the groups differ in the variances of the variables.  As such, it is considered best practices to always report the raw estimates possibly supplemented with standardized estimates.

On one interpretation of your question, you already have what you describe wanting:  You constrained the raw estimates to be equal so reporting those on the path diagram would give you one number that applies to all the groups.

An important point from Shu Fai's post is the proviso that the data supports the model.  If the raw estimates are the same in every group and the groups differ in variances, then these two premises jointly imply that the standardized estimates are not equal.  So, asking for equal standardized estimates under those conditions is asking for something that is not there to be found.

You may wish to consider methods of presentation other than a path diagram.  For example, if you reported the effect size estimates in a Cleveland dot plot you could put each effect in a different row and provide a separate point in each row for each group, surrounded by an error bar representing the confidence interval.  Alternatively, you may wish to consider a tabular presentation.  Path diagrams tend to work best for relatively simple models.
Reply all
Reply to author
Forward
0 new messages