gen.data {MPTinR} | R Documentation |
Generate or bootstrap data and get predictions from a model specified in a model file (or connection).
Description
gen.data
generates random dataset(s) from given paramater values and model (specified via model file or textConnection) for paramteric bootstrap.
sample.data
generates random dataset(s) from given data for nonparametric bootstrap.
gen.predictions
generates response probabilities or predicted responses from given paramater values and model (specified via model file or textConnection).
Usage
gen.data(parameter.values, samples,
model.filename,
data = NULL, n.per.item.type = NULL,
restrictions.filename = NULL, model.type = c("easy", "eqn", "eqn2"),
reparam.ineq = TRUE, check.model = TRUE)
sample.data(data, samples,
model.filename = NULL, categories.per.type = NULL,
model.type = c("easy", "eqn", "eqn2"), check.model = TRUE)
gen.predictions(parameter.values,
model.filename,
restrictions.filename = NULL,
n.per.item.type = NULL,
model.type = c("easy", "eqn", "eqn2"),
reparam.ineq = TRUE, check.model = TRUE)
Arguments
parameter.values |
|
samples |
Number of random datasets to be generated from a given set of paramater values. |
n.per.item.type |
|
data |
data |
categories.per.type |
numeric vector indicating how many response categories each item type has. |
model.filename |
A character |
restrictions.filename |
|
model.type |
Character vector specifying whether the model file is formatted in the easy way ( |
reparam.ineq |
Should inequality restrictions be applied (i.e., the model reparametrized)? Default is |
check.model |
logical. Should model be chekced with random values whether or not the expected values sum to one per tree? Default is |
Details
gen.data
and sample.data
are basically wrapper for rmultinom
(called multiple times, if there is more than one item type). The prob
argument of rmultinom
is obtained differently for the two functions. For gen.data
it corresponds to the predicted response proportions as returned by get.predictions
(which is actually called by gen.data
). For sample.data
it is the proprtion of responses for each item type.
gen.data
needs to know how big the n for each item type is. This can either be specified via the data
or the n.per.item.type
argument (i.e., one of those needs to be non-NULL
). See the examples.
sample.data
needs to know which response categories correspond to each item type. This can either be specified via the model.filename
or the categories.per.type
argument (i.e., one of those needs to be non-NULL
). See the examples.
Value
Either a vector or matrix containing the generated data (for gen.data
and sample.data
) or a vector containing the predictions (for gen.predictions
).
Author(s)
Henrik Singmann and David Kellen
See Also
fit.mpt
or fit.model
for functions that will fit the generated data. Note that it is probably a very good idea to set fit.aggregated = FALSE
when fitting larger sets of generated data.
Examples
#### using the model and data from Broeder & Schuetz:
data(d.broeder, package = "MPTinR")
m.2htm <- system.file("extdata", "5points.2htm.model", package = "MPTinR")
m.sdt <- "pkg/MPTinR/inst/extdata/broeder.sdt.model"
m.sdt <- system.file("extdata", "broeder.sdt.model", package = "MPTinR")
# fit the 2HTM
br.2htm <- fit.mpt(colSums(d.broeder), m.2htm)
# fit the SDT model
br.sdt <- fit.model(colSums(d.broeder), m.sdt, lower.bound = c(rep(-Inf, 5), 0, 1),
upper.bound = Inf)
# get one random dataset using the paramater values obtained (i.e., parametric bootstrap)
# and the data argument.
gen.data(br.2htm[["parameters"]][,1], 1, m.2htm, data = colSums(d.broeder))
gen.data(br.sdt[["parameters"]][,1], 1, m.sdt, data = colSums(d.broeder))
# get one random dataset using the paramater values obtained (i.e., parametric bootstrap)
# and the n.per.item.type argument.
gen.data(br.2htm[["parameters"]][,1], 1, m.2htm,
n.per.item.type = c(240, 2160, 600, 1800, 1200, 1200, 1800, 600, 2160, 240))
gen.data(br.sdt[["parameters"]][,1], 1, m.sdt,
n.per.item.type = c(240, 2160, 600, 1800, 1200, 1200, 1800, 600, 2160, 240))
# sample one random dataset from the original data:
sample.data(colSums(d.broeder), 1, model.filename = m.2htm)
# above uses the model.filename argument
sample.data(colSums(d.broeder), 1, categories.per.type = rep(2,10))
# above uses the categories.per.type argument
# just get the predicted proportions:
predictions.mpt <- gen.predictions(br.2htm[["parameters"]][,1], m.2htm)
predictions.sdt <- gen.predictions(br.sdt[["parameters"]][,1], m.sdt)
# predicting using the proactive Inhibiton Model (Riefer & Batchelder, 1988, Figure 1)
model1 <- system.file("extdata", "rb.fig1.model", package = "MPTinR")
gen.predictions(c(r = 0.3, p = 1, q = 0.4944), model1)
gen.predictions(c(r = 0.3, p = 1, q = 0.4944), model1, n.per.item.type = 180)
# the order of parameters is reordered (i.e., not alphabetically)
# but as the vector is named, it does not matter!
# Compare with:
data(rb.fig1.data, package = "MPTinR")
fit.mpt(rb.fig1.data[1,], model1, n.optim = 1)