set.seed(789)
require("semtree")
data(lgcm)
lgcm$agegroup <- ordered(lgcm$agegroup, labels=c("young","old") )
lgcm$training <- as.factor(lgcm$training)
lgcm$noise <- as.factor(lgcm$noise)
# LOAD IN OPENMX MODEL.
# A SIMPLE LINEAR GROWTH MODEL WITH 5 TIME POINTS FROM SIMULATED DATA
manifests <- names(lgcm)[1:5]
lgcModel <- mxModel("Linear Growth Curve Model Path Specification",
type="RAM",
manifestVars=manifests,
latentVars=c("intercept","slope"),
# residual variances
mxPath(
from=manifests,
arrows=2,
free=TRUE,
values = c(1, 1, 1, 1, 1),
labels=c("residual1","residual2","residual3","residual4","residual5")
),
# latent variances and covariance
mxPath(
from=c("intercept","slope"),
connect="unique.pairs",
arrows=2,
free=TRUE,
values=c(1, 1, 1),
labels=c("vari", "cov", "vars")
),
# intercept loadings
mxPath(
from="intercept",
to=manifests,
arrows=1,
free=FALSE,
values=c(1, 1, 1, 1, 1)
),
# slope loadings
mxPath(
from="slope",
to=manifests,
arrows=1,
free=FALSE,
values=c(0, 1, 2, 3, 4)
),
# manifest means
mxPath(
from="one",
to=manifests,
arrows=1,
free=FALSE,
values=c(0, 0, 0, 0, 0)
),
# latent means
mxPath(
from="one",
to=c("intercept", "slope"),
arrows=1,
free=TRUE,
values=c(1, 1),
labels=c("meani", "means")
),
mxData(lgcm,type="raw")
)
# TREE CONTROL OPTIONS.
# TO OBTAIN BASIC/DEFAULT SMETREE OPTIONS, SIMPLY TPYE THE FOLLOWING:
controlOptions <- semtree.control(method = "naive")
controlOptions$alpha <- 0.05
# RUN TREE.
tree <- semtree(model=lgcModel, data=lgcm, control = controlOptions)
# RERUN TREE WITH MODEL CONSTRAINTS.
# MODEL CONSTRAINTS CAN BE ADDED BY IDENTIFYING THE PARAMETERS TO BE
# CONSTRAINED IN EVERY NODE. ONLY UNCONSTRAINED PARAMETERS ARE THEN
# TESTED AT EACH NODE FOR GROUP DIFFERENCES. IN THIS EXAMPLE THE MODEL
# RESIDUALS ARE CONSTRAINED OVER THE NODES.
constraints <- semtree.constraints(global.invariance = names(omxGetParameters(lgcModel))[1:5])
treeConstrained <- semtree(model=lgcModel, data=lgcm, control = controlOptions,
constraints=constraints)
# SEE PLOT.
# THE PLOT FUNCTION WILL SHOW ALL FREE PARAMETERS AT EACH TERMINAL NODE.
# THIS CAN CREATE UNREADABLE FIGURES FOR MODELS WITH MANY FREE PARAMETERS.
plot(tree)
summary(tree)
summary(treeConstrained)
print(tree)
parameters(tree)
parameters(tree, leafs.only=FALSE)
treeSub <- subtree(tree, startNode=3)
if (!is.null(treeSub))
plot(treeSub)
toTable(tree)
controlOptions <- semtree.control(method = "fair")
tree2 <- semtree(lgcModel, lgcm, control=controlOptions)
controlOptions <- semtree.control(method = "score")
tree3 <- semtree(lgcModel, lgcm, control=controlOptions)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.