Add deps on MASS and mvtnorm
[openmx:openmx.git] / models / passing / PPML_test2L3M.R
1 require(OpenMx)\r
2 require(MASS)\r
3 \r
4 # Seed\r
5 set.seed(4)\r
6 \r
7 # Data covariance matrix\r
8 dataCov <- rbind(c(10,3,1),\r
9                                  c(3,8,2),\r
10                                  c(1,2,6))\r
11 dataMean <- c(1,1,10)\r
12 #dataMean <- c(2,-2,1)\r
13 \r
14 # Variable names\r
15 manifests <- c('X','Y','Z')\r
16 latents <- c('G', 'H')\r
17 \r
18 # Dimnames\r
19 colnames(dataCov) <- manifests\r
20 rownames(dataCov) <- manifests\r
21 names(dataMean) <- manifests\r
22 \r
23 factorModel <- mxModel("Factor Model 2L3M",\r
24       type="RAM",\r
25       manifestVars = manifests,\r
26       latentVars = latents,\r
27           \r
28           # Regression Loadings\r
29       mxPath(from='G', to=manifests,value=c(1,2,3),free=FALSE),\r
30           mxPath(from='H', to=manifests,value=c(1,1,1),free=FALSE),\r
31           \r
32           # Variances\r
33       mxPath(from=manifests, arrows=2,value=c(1,1,1), labels=c('E1','E1','E1')), # error variance\r
34       mxPath(from=latents, arrows=2,values=1.0, labels=c("VG", "VH")), # variances of the latents\r
35          \r
36           # Latent means vector\r
37       mxPath(from="one", to=latents, arrows=1, values=0, labels=c("MG", "MH"), free=TRUE),\r
38 \r
39           mxData(dataCov, mean=dataMean, type="cov",numObs=5)\r
40           )\r
41 \r
42 # Latent Covariance     Path\r
43 satPath <- mxPath(from='G', to='H', labels="Cov", arrows=2, values=0.1) # Saturated (covariance between the latents)\r
44 \r
45 for (fixALatent in 0:1)\r
46 {\r
47         testModel <- factorModel\r
48         if (as.logical(fixALatent))\r
49                 testModel <- mxModel(testModel, mxPath(from="one", to=latents, arrows=1, values=0, labels=c("MG", "MH"), free=c(TRUE, FALSE)) )\r
50 \r
51         # Test unsaturated latent covariance matrix\r
52         imxPPML.Test.Battery(testModel, testPermutations=FALSE, verbose=TRUE, tolerances=c(NA, .0001, .0001) ) # NA -> Don't check covariance data w/ means\r
53         \r
54         # Test saturated latent covariance matrix\r
55         testModel <- mxModel(testModel, satPath)\r
56         imxPPML.Test.Battery(testModel, testPermutations=FALSE, verbose=TRUE, tolerances=c(NA, .0001, .0001) ) # NA -> Don't check covariance data w/ means\r
57 }\r