R/fscores.R

Defines functions fscores fscores.sem

Documented in fscores fscores.sem

# last modified 30 March 2009 by J. Fox

fscores <- function(model, ...){
	UseMethod("fscores")
}

fscores.sem <- function(model, data, center=TRUE, scale=FALSE, ...){
	m <- model$m
	P <- model$P
	A <- model$A
	var.names <- model$var.names
	observed <- var.names %in% rownames(model$C)
	if (all(observed)) stop("there are no latent variables")
	IAinv <- solve(diag(m) - A)
	Sigma <- IAinv %*% P %*% t(IAinv)
	B <- solve(Sigma[observed, observed]) %*% Sigma[observed, !observed]
	rownames(B) <- var.names[observed]
	colnames(B) <- var.names[!observed]
	if (missing(data)) return(B)
	X <- as.matrix(data[,var.names[observed]])
	if (center || scale) X <- scale(X, center=center, scale=scale)
	X %*% B
}

Try the sem1 package in your browser

Any scripts or data that you put into this service are public.

sem1 documentation built on May 2, 2019, 6:38 p.m.