Hi all
I am trying to convert a simple path model from Stata. In Stata I use
clear all ssd init EE DR RO SE ssd set observations 321 ssd set sd 15.23 10.15 16.27 1.01 ssd set correlations /// 1 \ /// 0.25 1 \ /// 0.78 0.21 1 \ /// -0.47 -0.27 -0.35 1 sem (SE -> EE) (EE -> DR) (EE -> RO) (DR -> RO), nocapslatent
This generates the following output
------------------------------------------------------------------------------ | OIM | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- Structural | EE <- | SE | -7.087228 .7428868 -9.54 0.000 -8.543259 -5.631196 _cons | 59.18695 3.629161 16.31 0.000 52.07392 66.29997 -----------+---------------------------------------------------------------- DR <- | EE | .166612 .0360163 4.63 0.000 .0960213 .2372026 _cons | 16.53305 1.063443 15.55 0.000 14.44874 18.61736 -----------+---------------------------------------------------------------- RO <- | EE | .8289902 .0385246 21.52 0.000 .7534834 .9044969 DR | .0256473 .0578058 0.44 0.657 -.08765 .1389446 _cons | 51.46608 1.458225 35.29 0.000 48.60801 54.32415 -------------+---------------------------------------------------------------- Variance | e.EE | 180.1515 14.22003 154.3297 210.2938 e.DR | 96.28271 7.599951 82.48212 112.3924 e.RO | 103.2753 8.151902 88.47244 120.5549 ------------------------------------------------------------------------------ LR test of model vs. saturated: chi2(2) = 10.78, Prob > chi2 = 0.0046
My attempt to reproduce this in OpenMX is
vars <- c("SE","EE","DR","RO") cormat <- matrix(c(1,0.25, 0.78, -0.47, 0.25, 1, 0.21, -0.27, 0.78, 0.21 , 1, -0.35, -0.47, -0.27, -0.35, 1 ), nrow=4) sds <- c(15.23, 10.15, 16.27, 1.01) rownames(cormat) <- colnames(cormat) <- vars covmat <- round(cor2cov(cormat,sds),2) m.cleary <- mxModel("mcleary", manifestVars = vars, type="RAM", mxPath( from=vars[c(1,2,3,2)], to=vars[c(2,3,4,4)], values=1, labels=c("p1","p2","p3","p4") ), mxPath( from=vars, # “to=vars” is implicit arrows=2, # the default is 1 values=.9, labels=paste("var", vars, sep="") ), mxData( observed=covmat, type="cov", # data is a covariance matrix numObs=321 ) ) f.cleary <- mxRun(m.cleary) summary(f.cleary)
and this produced:
data: $mcleary.data $mcleary.data$cov SE EE DR RO SE 231.95 38.65 193.28 -7.23 EE 38.65 103.02 34.68 -2.77 DR 193.28 34.68 264.71 -5.75 RO -7.23 -2.77 -5.75 1.02 free parameters: name matrix row col Estimate Std.Error Std.Estimate Std.SE lbound ubound 1 p1 A EE SE 0.16663073 0.036072013 0.2500296 0.05412611 2 p2 A DR EE 0.33663366 0.087610155 0.2100067 0.05465502 3 p4 A RO EE -0.02047884 0.005205191 -0.2058098 0.05231152 4 p3 A RO DR -0.01903892 0.003247224 -0.3067097 0.05231152 5 varSE S SE SE 231.94999676 18.337149808 1.0000000 0.07905648 6 varEE S EE EE 96.57972313 7.635160662 0.9374852 0.07411338 7 varDR S DR DR 253.03554502 20.004099673 0.9558972 0.07556987 8 varRO S RO RO 0.85379980 0.067498669 0.8370586 0.06617517 observed statistics: 10 estimated parameters: 8 degrees of freedom: 2 -2 log likelihood: 6205.556 saturated -2 log likelihood: 5886.007 number of observations: 321 chi-square: 319.5493 p: 4.080808e-70
Could anyone advise where I am going wrong ?
Thanks
RL