# [R] Difficulty understanding sem errors / failed confirmatory factor analysis

Thu Sep 18 19:01:30 CEST 2008

```Hello,

I'm trying to fit a pretty simple confirmatory factor analysis using
the sem package. There's a CFA example in the examples, which is helpful,
but the output for my (failing) model is hard to understand. I'd be
interested in any other ways to do a CFA in R, if this proves troublesome.

The CFA is replicating a 5 uncorrelated-factor structure (for those
interested, it is a structure of word usage patterns in weblogs) in a
special population. The model looks like model.txt (attached as many people
hate long emails); the correlation matrix cors.txt as well.

I'm setting no overlap between factors, no correlation between
factors, and estimating a separate variance for each observed variable
(which should be everything on the right-hand side of the -> arrows), but
setting the factor variances equal to 1...pretty standard. I've ensured that
everything is typed correctly to the best I am able.

The problem:

library(sem)
model.kr <- specify.model(file="model.txt") # printing it checks out ok
kr.sem <- sem(ram=model.kr,S=correl,N=3034)
Warning message:
In sem.default(ram = ram, S = S, N = N, param.names = pars, var.names = vars,  :
Could not compute QR decomposition of Hessian.
Optimization probably did not converge.

(running qr on correl works fine; randomly-generated correl matrices fail in
the same way; I do not know how to further troubleshoot this)

...and then the model itself (which is produced, as the above was just a
warning):

summary(kr.sem)
Error in data.frame(object\$coeff, se, z, 2 * (1 - pnorm(abs(z))), par.code) :
arguments imply differing number of rows: 47, 0

...both of these error messages are beyond my ability to troubleshoot. Any
help would be greatly appreciated. Because I am unsure what exactly the
problem with this analysis is, I can't create a simpler example for testing
purposes...but I think my model and correlation matrix are fairly simple.

> unlist(R.Version())
platform                           arch
"x86_64-unknown-linux-gnu"                       "x86_64"
os                         system
"linux-gnu"            "x86_64, linux-gnu"
status                          major
""                            "2"
minor                           year
"7.2"                         "2008"
month                            day
"08"                           "25"
svn rev                       language
"46428"                            "R"
version.string
"R version 2.7.2 (2008-08-25)"

...sem installed via install.packages("sem") which I assume is current.

Cordially,