File: xxm-mplus9.6.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 (72 lines) | stat: -rw-r--r-- 2,679 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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
library(xxm)

ex96 <- read.table("ex9.6.dat")
ex96$V8 <- as.integer(ex96$V8)
bData <- ex96[!duplicated(ex96$V8), c('V7', 'V8')]
colnames(bData) <- c('w', 'clusterID')
bData <- bData[,c('clusterID', colnames(bData)[-2])]

wData <- ex96[,-match(c('V7'), colnames(ex96))]
colnames(wData) <- c(paste0('y', 1:4), paste0('x', 1:2), 'clusterID')
wData$within <- 1:nrow(wData)
wData <- wData[,c('within', 'clusterID', colnames(wData)[c(-7,-8)])]

m1 <- xxmModel(levels = c("within", "clusterID"))

wModel <- xxmSubmodel(model = m1, level = "within", parents = c("clusterID"), 
                     ys = paste0('y', 1:4),
                     xs = paste0('x', 1:2),
                     etas = "fw",
                     data = wData)

cModel <- xxmSubmodel(model = m1, level = "clusterID", parents = ,
                      ys = , xs = 'w', 
                     etas = c("fb"), data = bData)

# -------------------------- clusterID model

# observed to latent
cModel <- xxmWithinMatrix(model = cModel, level = "clusterID", "gamma",
                          pattern=matrix(1, 1, 1),
                          value=matrix(.5, 1, 1))

# latent covariance
cModel <- xxmWithinMatrix(model = cModel, level = "clusterID", "psi",
  pattern=diag(c(1)),
  value=diag(c(1)))

# -------------------------- within model
# loadings
wModel <- xxmWithinMatrix(model = wModel, level = "within", "lambda",
                          pattern = matrix(c(0, 1, 1, 1), 4, 1),
                          value = matrix(rep(1,4), 4, 1))

# residuals
wModel <- xxmWithinMatrix(model = wModel, level="within", "theta",
                          pattern=diag(4), value=diag(4))

# observed intercepts
wModel <- xxmWithinMatrix(model = wModel, level="within", "nu",
                          pattern=matrix(1,4,1), value=matrix(0,4,1))

# latent intercepts
wModel <- xxmWithinMatrix(model = wModel, level="within", "alpha",
                          pattern=matrix(c(0),1,1),
                          value=matrix(0,1,1))

# latent covariance
wModel <- xxmWithinMatrix(model = wModel, level="within", "psi",
                          pattern=diag(c(1)),
                          value=diag(c(1)))

# observed to latent
wModel <- xxmWithinMatrix(model = wModel, level="within", "gamma",
                          pattern=matrix(1, 1, 2),
                          value=matrix(.5, 1, 2))

m1 <- xxmBetweenMatrix(model = m1, parent = "clusterID", child = "within", 
                        type = "lambda",
                       pattern = matrix(c(0, 1, 1, 1), 4, 1),
                       value = matrix(rep(1,4), 4, 1))

m1 <- xxmRun(m1)