copied scripts from passing
[openmx:openmx.git] / demo / BivariateSaturated_MatrixRaw.R
1 require(OpenMx)
2
3 #Simulate Data
4 require(MASS)
5 set.seed(200)
6 rs=.5
7 xy <- mvrnorm (1000, c(0,0), matrix(c(1,rs,rs,1),2,2))
8 testData <- xy
9 selVars <- c('X','Y')
10 dimnames(testData) <- list(NULL, selVars)
11 summary(testData)
12 cov(testData)
13
14 #examples 4: Saturated Model with Raw Data and Matrix-Style Input
15 bivSatModel4 <- mxModel("bivSat4",
16 mxMatrix(
17     type="Symm", 
18     nrow=2, 
19     ncol=2, 
20     free=T, 
21     values=c(1,.5,1), 
22     dimnames=list(selVars,selVars), 
23     name="expCov"
24 ),
25 mxMatrix(
26     type="Full", 
27     nrow=1, 
28     ncol=2, 
29     free=T, 
30     values=c(0,0), 
31     dimnames=list(NULL,selVars), 
32     name="expMean"
33 ),
34 mxData(
35     observed=testData, 
36     type="raw", 
37 ),
38 mxFIMLObjective(
39     covariance="expCov",
40     means="expMean"
41 )
42 )
43 bivSatFit4 <- mxRun(bivSatModel4)
44 EM4 <- mxEvaluate(expMean, bivSatFit4)
45 EC4 <- mxEvaluate(expCov, bivSatFit4)
46 LL4 <- mxEvaluate(objective,bivSatFit4)
47
48
49 #Mx answers hard-coded
50 #example Mx..2: Saturated Model with Raw Data
51 Mx.EM2 <- matrix(c(0.03211188, -0.004889211),1,2)
52 Mx.EC2 <- matrix(c(1.0092891, 0.4813504, 0.4813504, 0.9935366),2,2)
53 Mx.LL2 <- 5415.772
54
55
56 #Compare OpenMx results to Mx results (LL: likelihood; EC: expected covariance, EM: expected means)
57 #4:RawMat
58 omxCheckCloseEnough(LL4,Mx.LL2,.001)
59 omxCheckCloseEnough(EC4,Mx.EC2,.001)
60 omxCheckCloseEnough(EM4,Mx.EM2,.001)