Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: cfa1: How to obtain standardized coefficients?

From   Stas Kolenikov <>
Subject   Re: st: cfa1: How to obtain standardized coefficients?
Date   Thu, 29 Apr 2010 13:40:26 -0500

There is no canned way to generate the standardized coefficients. You
can obtain the necessary results with -nlcom-. You need to multiply
the loading by the standard deviation of the latent variable, and
divide by the standard deviation of the indicator. In fact, these are
the square roots of the reported R-squares for the simple one-factor
model that -cfa1- fits.

set obs 100
set seed 12345
gen f = rnormal()
gen x1 = f + 0.5*rnormal()
gen x2 = 1.2*f + 0.7*rnormal()
gen x3 = 1.5*f + rnormal()
cfa1 x*
nlcom _b[x1:_cons]*sqrt(_b[phi:_cons]
/(_b[x1:_cons]*_b[x1:_cons]*_b[phi:_cons] + _b[x1_v:_cons]))
nlcom _b[x2:_cons]*sqrt(_b[phi:_cons]
/(_b[x2:_cons]*_b[x2:_cons]*_b[phi:_cons] + _b[x2_v:_cons]))
nlcom _b[x3:_cons]*sqrt(_b[phi:_cons]
/(_b[x3:_cons]*_b[x3:_cons]*_b[phi:_cons] + _b[x3_v:_cons]))

If you like, you can combine the three -nlcom-s into a single one:

nlcom ( stlambda1: _b[x1:_cons]*sqrt(_b[phi:_cons] / ( _b[x1:_cons] *
_b[x1:_cons] * _b[phi:_cons] + _b[x1_v:_cons])) ) ( stlambda2:
_b[x2:_cons]*sqrt(_b[phi:_cons] / ( _b[x2:_cons] * _b[x2:_cons] *
_b[phi:_cons] + _b[x2_v:_cons])) ) ( stlambda3: _b[x3:_cons] * sqrt(
_b[phi:_cons] /(_b[x3:_cons] * _b[x3:_cons] * _b[phi:_cons] +
_b[x3_v:_cons])) )

I COULD consider providing the standardized loadings for the more
recent -confa- package (that's also better documented, see I don't
really support and develop -cfa1- anymore.

On Thu, Apr 29, 2010 at 1:16 PM, Bryan Chung <> wrote:
> I'm currently performing a confirmatory factor analysis on a questionnaire in which each item in the questionnaire is supposed to correspond to a single factor. I am also trying to figure out whether further item reduction can be performed (the original factor analysis that reduced the generated items to the existing questionnaire has never been replicated or verified and the questionnaire is quite lengthy!).
> I understand that there is a somewhat arbitrary cutoff of 0.3 for a standardized coefficient in a CFA to drop an item, but am at somewhat of a loss as to how to generate these standardized coefficients with the cfa1 command.

Stas Kolenikov, also found at
Small print: I use this email account for mailing lists only.

*   For searches and help try:

© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index