Added 'dimnames' argument to mxFIMLObjective() and mxMLObjective().
[openmx:openmx.git] / demo / BivariateSaturated_MatrixRawCholesky.R
1 # Saturated Model with RawData and Matrix-Style Input
2 # Based on Example 6 ...?
3 # Can we embed a page reference or clickable file:// or http:// link here?
4
5
6 require(OpenMx)
7 #Simulate Data
8 require(MASS)
9 set.seed(200)
10 rs=.5 # set the correlation of the simulated data
11 testData <- mvrnorm (1000, c(0,0), matrix(c(1,rs,rs,1),2,2)) # make the simulated data
12 selVars <- c('X','Y')
13 dimnames(testData) <- list(NULL, selVars)
14 summary(testData)
15 R.cov = cov(testData)
16
17 bivSatModel6 <- mxModel("bivSat6",
18     mxMatrix(type="Full", nrow=2, ncol=2, free=c(TRUE,TRUE,FALSE,TRUE), values=c(1,.2,0,1), name="Chol"),
19                 mxMatrix(type="Full", nrow=1, ncol=2, free=TRUE, values=c(0,0), name="expMean"),
20     mxAlgebra(Chol %*% t(Chol), name="expCov"),
21                 mxData(observed=testData, type="raw"),
22                 mxFIMLObjective(covariance="expCov",means="expMean",dimnames=selVars)
23                 )
24 bivSatFit6 <- mxRun(bivSatModel6)
25 EM <- mxEval(expMean, bivSatFit6)
26 EC <- mxEval(expCov, bivSatFit6)
27 LL <- mxEval(objective,bivSatFit6)
28
29 #Mx answers hard-coded
30 #example Mx..2: Saturated Model with Raw Data
31 Mx.EM <- matrix(c(0.03211188, -0.004889211),1,2)
32 Mx.EC <- matrix(c(1.0092891, 0.4813504, 0.4813504, 0.9935366),2,2)
33 Mx.LL <- 5415.772
34
35 # Compare OpenMx results to Mx results (LL: likelihood; EC: expected covariance, EM: expected means)
36 #6: RawMat Cholesky
37 omxCheckCloseEnough(LL,Mx.LL,.001)
38 omxCheckCloseEnough(EC,Mx.EC,.001)
39 omxCheckCloseEnough(EM,Mx.EM,.001)
40
41 # Print out the covariance we generated in R, and that from this model in OpenMx
42 R.cov
43 EC