Fri, 12/02/2011 - 13:22

I want to transform the results of a correlated-factor model into multivariate Cholesky form.

Loehlin (1996) [1] gives the formulae for a bivariate case, but I wonder if anyone has a reference or pseudo-code for the multivariate case?

My end goal is to set the correlations between factors in such a way as to be equivalent to dropping paths in a Cholesky.

[1] Loehlin, J. C. (1996). The Cholesky approach: A cautionary note. Behavior Genetics, 26(1), 65-69.

Attachment | Size |
---|---|

chol_correlatedFactors.png | 51.69 KB |

pretty please :-)

Er, doesn't cov2cor(A %*% t(A)) go at the top, and sqrt(diag(A %*% t(A))) on the paths?

thanks Mike! cov2cor makes it all fall into place!

perhaps i am being dense here, but mike's answer of "cov2cor(A %*% t(A)) go at the top, and sqrt(diag(A %*% t(A))) on the paths" does not seen to fit the bill of tim's original question of wanting "to transform the results of a correlated-factor model into multivariate Cholesky form."

let A = matrix(c(1, .4, .4, 1), 2, 2). then cov2cor(A %*% t(A)) cannot go at the "top" of a cholesky model because the first latent variable "at the top" is correlated with the second latent variable "at the top."

mike's formula seems appropriate to the opposite of tim's question. namely, if A is a Cholesky, then how does one translate A into a correlated factor model?

if X is the matrix in question for the correlated-factor model, then the multivariate Cholesky form is chol(X). note that this may not always work (see my paper Cholesky Problems in behavior genetics).

greg

Oddly, it indeed looks as though the question as asked was of correlated factors to cholesky translation, as you say, Greg, and that I answered the wrong question. However, my reply seems to have satisfied Tim, so perhaps both the question and the answer were incorrect, canceling each other out!