fscores function

Factor Scores for Latent Variables

Factor Scores for Latent Variables

Calculate factor scores or factor-score coefficients for the latent variables in a structural-equation model.

## S3 method for class 'sem' fscores(model, data=model$data, center=TRUE, scale=FALSE, ...) ## S3 method for class 'msem' fscores(model, data=model$data, center=TRUE, scale=FALSE, ...)

Arguments

  • model: an object of class "sem" or "msem", produced by the sem

    function.

  • data: an optional numeric data frame or matrix containing the observed variables in the model; if not NULL, the estimated factor scores are returned; if NULL, the factor-score coefficients are returned. The default is the data element of model, which is non-NULL if the model was fit to a data set rather than a covariance or moment matrix.

  • center: if TRUE, the default, the means of the observed variables are subtracted prior to computing factor scores. One would normally use this option if the model is estimated from a covariance or correlation matrix among the observed variables.

  • scale: if TRUE, the possibly centered variables are divided by their root-mean-squares; the default is FALSE. One would normally use this option if the model is estimated from a correlation matrix among the observed variables. Centering and scaling are performed by the scale function.

  • ...: arguments to pass down.

Details

Factor-score coefficients are computed by the regression method as C1CC^-1 C*, where CC is the model-implied covariance or moment matrix among the observed variables and CC* is the matrix of model-implied covariances or moments between the observed and latent variables.

Returns

Either a matrix of estimated factor scores (if the data argument is supplied) or a matrix of factor-score coefficients (otherwise). In the case of an "msem"

argument, a list of matrices is returned.

References

Bollen, K. A. (1989) Structural Equations With Latent Variables. Wiley.

Author(s)

John Fox jfox@mcmaster.ca

See Also

sem, scale

Examples

# In the first example, readMoments() and specifyModel() read from the # input stream. This example cannot be executed via example() but can be entered # at the command prompt. The example is repeated using file input; # this example can be executed via example(). ## Not run: S.wh <- readMoments(names=c('Anomia67','Powerless67','Anomia71', 'Powerless71','Education','SEI')) 11.834 6.947 9.364 6.819 5.091 12.532 4.783 5.028 7.495 9.986 -3.839 -3.889 -3.841 -3.625 9.610 -21.899 -18.831 -21.748 -18.775 35.522 450.288 # This model in the SAS manual for PROC CALIS model.wh.1 <- specifyModel() Alienation67 -> Anomia67, NA, 1 Alienation67 -> Powerless67, NA, 0.833 Alienation71 -> Anomia71, NA, 1 Alienation71 -> Powerless71, NA, 0.833 SES -> Education, NA, 1 SES -> SEI, lamb, NA SES -> Alienation67, gam1, NA Alienation67 -> Alienation71, beta, NA SES -> Alienation71, gam2, NA Anomia67 <-> Anomia67, the1, NA Anomia71 <-> Anomia71, the1, NA Powerless67 <-> Powerless67, the2, NA Powerless71 <-> Powerless71, the2, NA Education <-> Education, the3, NA SEI <-> SEI, the4, NA Anomia67 <-> Anomia71, the5, NA Powerless67 <-> Powerless71, the5, NA Alienation67 <-> Alienation67, psi1, NA Alienation71 <-> Alienation71, psi2, NA SES <-> SES, phi, NA sem.wh.1 <- sem(model.wh.1, S.wh, 932) fscores(sem.wh.1) ## End(Not run) # The following example can be executed via example(): etc <- system.file(package="sem", "etc") # path to data and model files (S.wh <- readMoments(file=file.path(etc, "S-Wheaton.txt"), names=c('Anomia67','Powerless67','Anomia71', 'Powerless71','Education','SEI'))) (model.wh.1 <- specifyModel(file=file.path(etc, "model-Wheaton-1.txt"))) (sem.wh.1 <- sem(model.wh.1, S.wh, 932)) fscores(sem.wh.1)