I was trying to run a piece of code to measure MEBS (30 items) across gender and I got an error message which says: "Error: The job for model 'Moderated FI Model' exited abnormally with the error message: Expected covariance matrix is not positive-definite in row 0.".
I was trying to change the starting values (say, by making all of the covariances and free regressions .5) by taking suggestion posed on the forum and got the same error message. Does anyone can help on this? Thanks.
Yunfei
-------------the code ---------------
options(width=110)
library(psych)
library(OpenMx)
heritage <- read.table("heritage.csv", sep=',', header=TRUE, na.strings=c(9999, 9998))
look at summaries of each of the data columns
summary(heritage)
The describe() function doesn't like dates, so we find the number of columns
and don't pass the last three columns to describe.
dim(heritage)
describe(heritage[,1:47])
heritageFrame <- data.frame(y1=heritage$q1er,
y2=heritage$q2er,
y3=heritage$q3er,
y4=heritage$q4er,
y5=heritage$q5er,
y6=heritage$q6er,
y7=heritage$q7er,
y8=heritage$q8er,
y9=heritage$q9er,
y10=heritage$q10er,
y11=heritage$q11er,
y12=heritage$q12er,
y13=heritage$q13er,
y14=heritage$q14er,
y15=heritage$q15er,
y16=heritage$q16er,
y17=heritage$q17er,
y18=heritage$q18er,
y19=heritage$q19er,
y20=heritage$q20er,
y21=heritage$q21er,
y22=heritage$q22er,
y23=heritage$q23er,
y24=heritage$q24er,
y25=heritage$q25er,
y26=heritage$q26er,
y27=heritage$q27er,
y28=heritage$q28er,
y29=heritage$q29er,
y30=heritage$q30er,
female=heritage$gender)
describe(heritageFrame)
indicatorsY <- paste("y", 1:30, sep="")
covariates <- c("female")
latentsY <- c("F1")
----------------------------------
Moderated FI
Configural FI: Now set up configural FI model.
Reference standardization is variance=1 & mean=0 for moderator=0 condition.
#
dummies <- c("d_L1", "d_L2", "d_L3", "d_L4", "d_L5", "d_L6", "d_L7", "d_L8","d_L9","d_L10",
"d_L11","d_L12","d_L13","d_L14","d_L15","d_L16","d_L17","d_L18","d_L19","d_L20",
"d_L21","d_L22","d_L23","d_L24","d_L25","d_L26","d_L27","d_L28","d_L29","d_L30")
dum_F <- c("d_F1")
dum_Fv <- c("d_F1v")
dum_Fi <- c("d_i1", "d_i2", "d_i3", "d_i4", "d_i5", "d_i6", "d_i7", "d_i8","d_i9","d_i10",
"d_i11","d_i12","d_i13","d_i14","d_i15","d_i16","d_i17","d_i18","d_i19","d_i20",
"d_i21","d_i22","d_i23","d_i24","d_i25","d_i26","d_i27","d_i28","d_i29","d_i30")
dum_Fr <- c("d_r1", "d_r2", "d_r3", "d_r4", "d_r5", "d_r6", "d_r7", "d_r8","d_r9","d_r10",
"d_r11","d_r12","d_r13","d_r14","d_r15","d_r16","d_r17","d_r18","d_r19","d_r20",
"d_r21","d_r22","d_r23","d_r24","d_r25","d_r26","d_r27","d_r28","d_r29","d_r30")
FactorConfigFI <- mxModel("Moderated FI Model", type="RAM",
manifestVars=c(indicatorsY),
latentVars=c(latentsY, dummies, dum_F, dum_Fv, dum_Fi, dum_Fr),
Fix the factor mean for free estimation of intercepts (structural)
mxPath(from="one", to=c(latentsY), arrows=1, free=FALSE, values=0),
Moderate the factor variance (structural; variance fixed to 1 for moderater=0 reference)
mxPath(from=c(latentsY), arrows=2, free=FALSE, values=1, labels="varF1"),
mxPath(from=dum_Fv, to=c(latentsY), arrows=1, free=TRUE, values=1),
mxPath(from=c(latentsY), to=dum_Fv, arrows=1, free=FALSE, labels="data.female"),
mxPath(from=dum_Fv, arrows=2, free=FALSE, values=0),
mxData(heritageFrame, type="raw")
)
FactorConfigFIout <- mxRun(FactorConfigFI)
summary(FactorConfigFIout)