Description Usage Arguments Details Value Author(s) Examples
Generates recursive partitioning trees using Mplus models. MplusTrees()
takes an
Mplus model written in the form of an MplusAutomation
script, uses
MplusAutomation
to fit the model in Mplus, and performs recursive partitioning
using rpart
.
1 2 3  MplusTrees(script, data, rPartFormula, catvars = NULL, group = ~id,
control = rpart.control(), se = F, psplit = F, palpha = 0.05,
cv = F, k = 5)

script 
An 
data 
Dataset that is specified in the script 
rPartFormula 
Formula of the form ~ variable names 
catvars 
Vector of names of categorical covariates 
group 
id variable. If not specified an id variable is created for each row 
control 
Control object for 
se 
Whether to print standard errors and p values. In general should be set to FALSE 
psplit 
Whether to use likelihood ratio p values as a splitting criterion 
palpha 
Type I error rate (alpha level) for rejecting with likelihood ratio test when

cv 
Performs kfold crossvalidation to select value of 
k 
number of folds for crossvalidation 
The function temporarily changes the working directory to the temporary directory. Files used
and generated by Mplus are stored here and can be accessed using tempdir()
.
By default MplusTrees()
only splits on the criteria specified in the control
argument, the most important of which is the cp
parameter. The user can also split on the
p value generated from the likelihood ratio test comparing the parent node to a multiple group
model consisting of 2 groups (the daughter nodes). This p value criterion is used in addition
to the cp
criterion in that both must be met for a split to be made. The psplit
argument
turns this option on, and palpha
sets the alpha level criterion for rejection.
Crossvalidation (CV) can also be used to choose the cp
parameter. If this option is used, any
userspecified cp
value will be overridden by the optimal cp
value chosen by CV. CV fits
the model to the training set and calculates an expected minus 2 loglikelihood (2LL) for each terminal
node. In the test set, individuals are assigned to terminal nodes based on the tree structure found in
the training set. Their "expected" values are the 2LL values from the respective training set terminal
nodes. The "observed" values are the 2LL values from fitting a multiple group model, with each terminal
node as a group. The cp
value chosen is the one that produces the smallest MSE.
CV should only be used when (1) the Mplus model can be fit relatively quickly, (2) there are only a few covariates with a few response options, and (3) the sample size is large enough that the user is confident the model can be fit without issue in a sample of size N/k and a tree that partitions this sample further. If these conditions are not met, the process could take prohibitively long to arrive at a solution. Note that if even a single model fails to produce a valid loglikelihood value, the function will terminate with an error.
An object of class 'mplustree
'. rpart_out
provides the tree structure, terminal
gives a vector of terminal nodes, where
shows the terminal node of each id, and estimates
gives
the parameter estimates for each terminal node.
Ross Jacobucci and Sarfaraz Serang
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16  ## Not run:
library(lavaan)
script = mplusObject(
TITLE = "Example #1  Factor Model;",
MODEL = "f1 BY x1x3; f2 BY x4x6; f3 BY x7x9;",
usevariables = c('x1','x2','x3','x4','x5','x6','x7','x8','x9'),
rdata = HolzingerSwineford1939)
fit = MplusTrees(script, HolzingerSwineford1939, group=~id,
rPartFormula=~sex+school+grade,
control=rpart.control(minsplit=100, minbucket=100, cp=.01))
fit
## End(Not run)

Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.