File: MvtGradientTest.R

package info (click to toggle)
r-cran-openmx 2.21.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 14,412 kB
  • sloc: cpp: 36,577; ansic: 13,811; fortran: 2,001; sh: 1,440; python: 350; perl: 21; makefile: 5
file content (36 lines) | stat: -rw-r--r-- 940 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
library(OpenMx)

data(demoOneFactor)

manifests <- names(demoOneFactor)
latents <- c("G")

m1 <- mxModel(
    "m1",
    mxMatrix("Symm",5,5, name="S"),
    mxMatrix("Full",1,5, free=TRUE, name="M"),
    mxExpectationNormal("S","M", dimnames = paste0('x',1:5)),
    mxFitFunctionML(),
    mxData(observed=cov(demoOneFactor), means=colMeans(demoOneFactor),
	    type="cov", numObs=nrow(demoOneFactor)))
diag(m1$S$free) <- TRUE
diag(m1$S$values) <- 1

m1f <- mxRun(m1)

m2 <- m1
m2$expectation$covariance <- "Sprime"
m2 <- mxModel(m2, mxAlgebra(S, name="Sprime"))
m2f <- mxRun(m2)

m3 <- m1
m3$expectation$covariance <- "Sprime"
m3 <- mxModel(m3, mxMatrix(type = "Symm", nrow = 5, ncol=5,
                          name="Sprime"))
for (rx in 1:5) {
    m3$Sprime$labels[rx,rx] <- paste0('S[',rx,',',rx,']')
}
m3f <- mxRun(m3)

omxCheckCloseEnough(m1f$output$fit, m2f$output$fit, 1e-6)
omxCheckCloseEnough(m1f$output$fit, m3f$output$fit, 1e-6)