[R] Structural Equation Models(SEM)
William Revelle
lists at revelle.net
Wed Nov 25 18:42:31 CET 2009
Ralf,
If you are representing this as a factor model, you need to have
the factors lead to the variables:
model.RLIM <- specify.model()
f1 -> R , laddR, NA
f1 -> L , laddL, NA
f1 -> I , laddI, NA
f1 -> M, laddM, NA
R <-> R, dR,NA
L <-> L, dL,NA
I <-> I, dI,NA
M <-> M, dM,NA
f1 <-> f1, df1,NA
> sem(mod1,tcv,101)
Model Chisquare = 5.955411 Df = 3
F1R F1L F1I x1e x2e x3e x4e
0.20301850 0.28443881 0.39421470 0.10734247 0.09951485 0.09105800 0.31702970
Iterations = 24
For a simple way to create the sem commands from an exploratory
factor analysis, you might want to look at the psych package and the
vignette: psych_for_sem.
e.g.,
> library(psych)
> f1 <- fa(tcv) #do the exploratory factor analysis
> mod1 <- structure.diagram(f1,errors=TRUE) #draw the path diagram
>from the model and create the sem commands
> mod1
Path Parameter StartValue
1 MR1->R F1R
2 MR1->L F1L
3 MR1->I F1I
4 R<->R x1e
5 L<->L x2e
6 I<->I x3e
7 M<->M x4e
8 MR1<->MR1 <fixed> 1
> sem(mod1,tcv,101) #do the sem
Model Chisquare = 5.955411 Df = 3
F1R F1L F1I x1e x2e x3e x4e
0.20301850 0.28443881 0.39421470 0.10734247 0.09951485 0.09105800 0.31702970
Iterations = 24
Best wishes,
Bill
>
At 6:23 PM +0200 11/25/09, Ralf Finne wrote:
>Hi R-colleagues.
>
>In the sem-package
>i have a problem to introduce hidden variables.
>As a simple example I take an ordinary factor analysis.
>The program:
>
>cmat=c(0.14855886, 0.05774635, 0.08003300, 0.04900990,
> 0.05774635, 0.18042029, 0.11213013, 0.03752475,
> 0.08003300, 0.11213013, 0.24646337, 0.03609901,
> 0.04900990, 0.03752475, 0.03609901, 0.31702970)
>rn=c("R","L","I","M")
>cn=c("R","L","I","M")
>
>tcv=matrix(cmat,nrow=4,ncol=4,dimnames=list(rn,cn))
>
>model.RLIM <- specify.model()
> R -> f1, laddR, NA
> L -> f1, laddL, NA
> I -> f1, laddI, NA
> M -> f1, laddM, NA
> R <-> R, dR,NA
> L <-> L, dL,NA
> I <-> I, dI,NA
> M <-> M, dM,NA
> f1 <-> f1, df1,NA
>
>sem.RLIM=sem(model.RLIM,tcv,101)
>
>The output:
>Error in dimnames(x) <- dn :
> length of 'dimnames' [2] not equal to array extent
>In addition: Warning messages:
>1: In sem.default(ram = ram, S = S, N = N, param.names = pars,
>var.names = vars, :
> singular Hessian: model is probably underidentified.
>
>2: In sem.default(ram = ram, S = S, N = N, param.names = pars,
>var.names = vars, :
> refitting without aliased parameters.
>
>I use R version 2.10.0 (2009-10-26) under Windows XP
>sem_0.9-19 version.
>
>Where did I make a mistake? Have anyone of you knowledge
>of any other package doing similar things like Confirmative Factor Analysis
>Ralf Finne
>Novia University of Applied Science
>Vasa Finland
>
>______________________________________________
>R-help at r-project.org mailing list
>https://stat.ethz.ch/mailman/listinfo/r-help
>PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>and provide commented, minimal, self-contained, reproducible code.
--
William Revelle http://personality-project.org/revelle.html
Professor http://personality-project.org/personality.html
Department of Psychology http://www.wcas.northwestern.edu/psych/
Northwestern University http://www.northwestern.edu/
Use R for psychology http://personality-project.org/r
It is 5 minutes to midnight http://www.thebulletin.org
More information about the R-help
mailing list