parcelAllocation
function (Quick & Schoemann, 2012), fits a SEM to each allocation, pools results across allocations from that iteration, and then assesses whether stopping criteria are met. If stopping criteria are not met, the algorithm increments the number of allocations used (generating all new allocations).
poolMAlloc(nPerPar, facPlc, nAllocStart, nAllocAdd = 0, parceloutput=0, syntax, dataset, stopProp, stopValue, selectParam = NULL, double = FALSE, checkConv = FALSE, names = 'default', leaveout = 0, useTotalAlloc=FALSE, ...)
nAllocAdd
can be set to 0 and results will be output for nAllocStart
allocations only.
selectParam
) that is allowable from one iteration of the algorithm to the next. That is, change in pooled estimates and pooled standard errors from one iteration to the next must all be less than (stopProp
) x (value from former iteration). Note that stopValue
can override this criterion (see below). Also note that values less than .01 are unlikely to lead to more substantively meaningful precision. Also note that if only stopValue
is a desired criterion, stopProp
can be set to 0.
stopValue
is a minimum allowable amount of absolute change (in any pooled parameter or pooled standard error estimate listed in selectParam
) from one iteration of the algorithm to the next. For a given pooled estimate or pooled standard error, stopValue
is only invoked as a stopping criteria when the minimum change required by stopProp
is less than stopValue
. Note that values less than .01 are unlikely to lead to more substantively meaningful precision. Also note that if only stopProp
is a desired criterion, stopValue
can be set to 0.
stopProp
and stopValue
). These parameters should appear in the order they are listed in the lavaan syntax. By default, all pooled parameters are used. Note that selectParam
should only contain freely-estimated parameters. In one example from Sterba and Rights (2016) selectParam
included all free parameters except item intercepts and in another example selectParam
included only structural parameters.
TRUE
, requires stopping criteria (stopProp
and stopValue
) to be met for all parameters (in selectParam
) for two consecutive iterations of the algorithm. By default, this is set to FALSE
, meaning stopping criteria need only be met at one iteration of the algorithm.
TRUE
, function will output a separate set of results that uses all allocations created by the algorithm, rather than M allocations (see "Allocations needed for stability" below). This distinction is further discussed in Sterba and Rights (2016).
lavaan
simParcel
dataset used below.parcelAllocation
. It implements a new algorithm for choosing the number of allocations (M), (described in Sterba & Rights (2016)), newly pools parameter estimate and standard error results across these M allocations, and produces indices for assessing the relative contributions of parcel-allocation variability vs. sampling variability in each estimate. This function randomly generates a given number (nAllocStart
) of item-to-parcel allocations, fits a SEM to each allocation, and then increments the number of allocations used (by nAllocAdd
) until the pooled parameter estimates and pooled standard errors fulfill stopping criteria (stopProp
and stopValue
, defined above). Results from the model that was fit to the M allocations are outputted. Additionally, this function newly outputs the proportion of allocations with solutions that converged (using a maximum likelihood estimator) as well as the proportion of allocations with solutions that were converged and proper. The converged and proper solutions among the final M allocations are used in computing pooled results. The original parcelAllocation function could not be employed if any allocations yielded nonconverged solutions.
For further details on the benefits of the random allocation of items to parcels, see Sterba (2011) and Sterba and MacCallum (2010).
Additionally, after each iteration of the algorithm, information useful in monitoring the algorithm is outputted. The number of allocations used at that iteration, the proportion of pooled parameter estimates meeting stopping criteria at the previous iteration, the proportion of pooled standard errors meeting stopping criteria at the previous iteration, and the runtime of that iteration are outputted. When stopping criteria are satisfied, the full set of results are outputted.
Sterba, S. K., & MacCallum, R. C. (2010). Variability in parameter estimates and model fit across repeated allocations of items to parcels. Multivariate Behavioral Research, 45(2), 322-358.
Sterba, S. K. & Rights, J. D. (2016). Accounting for parcel-allocation variability in practice: Combining sources of uncertainty and choosing the number of allocations. Multivariate Behavioral Research. http://www.tandfonline.com/doi/pdf/10.1080/00273171.2016.1144502
parcelAllocation
, PAVranking
## Not run:
# ## Lavaan syntax: A 2 Correlated
# ## factor CFA model to be fit to parceled data
#
# parmodel <- '
# f1 =~ NA*p1f1 + p2f1 + p3f1
# f2 =~ NA*p1f2 + p2f2 + p3f2
# p1f1 ~ 1
# p2f1 ~ 1
# p3f1 ~ 1
# p1f2 ~ 1
# p2f2 ~ 1
# p3f2 ~ 1
# p1f1 ~~ p1f1
# p2f1 ~~ p2f1
# p3f1 ~~ p3f1
# p1f2 ~~ p1f2
# p2f2 ~~ p2f2
# p3f2 ~~ p3f2
# f1 ~~ 1*f1
# f2 ~~ 1*f2
# f1 ~~ f2
# '
#
# ##specify items for each factor
# f1name <- colnames(simParcel)[1:9]
# f2name <- colnames(simParcel)[10:18]
#
# ##run function
# poolMAlloc(nPerPar=list(c(3,3,3),c(3,3,3)),
# facPlc=list(f1name,f2name), nAllocStart=10,
# nAllocAdd=10, syntax=parmodel,
# dataset=simParcel, stopProp=.03,
# stopValue=.03, selectParam=c(1:6,13:18,21),
# names=list("p1f1","p2f1","p3f1","p1f2","p2f2","p3f2"),
# double=FALSE, useTotalAlloc=FALSE)
# ## End(Not run)
Run the code above in your browser using DataLab