highs
solver. This can be a good
alternative to Rsymphony
, because Rsymphony
sometimes segfaults and would crash Rstudio.Shadow()
now calculates commonly used adaptivity
indices.plot()
for output_Shadow_all
object gains
type = 'overlap'
option for plotting overlap control
statitics.Split()
now returns a list of constraints
objects for the created partitions. Added a new helper function
makeConstraintsByEachPartition()
for doing this
manually.Shadow()
:
RANDOM
.Shadow()
:
NONE
.Shadow()
: CARRYOVER
.summary()
for output_Shadow_all
object now
prints scores.Split()
would sometimes parse solution
indices incorrectly and would return fewer items.TestDesign()
was not
generating simulee-wise plots.Split()
gains a new argument
n_maximum_partitions_per_item
for allowing items to be
assigned to multiple partitions.vignette('constraints')
.c()
and combineConstraints()
were incorrectly combining constraints.Split()
was erroneously returning set
indices even when the input item pool was entirely comprised of discrete
items.detectBestSolver()
for detecting the best
available solver on the system.plot(type = "audit")
now plots the initial theta SE
when available.lpsymphony
solver because of
installation issues. Users may use the Rsymphony
solver as
an alternative.include_items_for_estimation
argument
of Shadow()
was not being reflected in the initial theta
estimate.gurobi
solver would raise an ‘unused
argument’ error.Shadow()
was not working when
data
was supplied with true_theta
left empty.
(#118)BIGM
exposure control was ignoring the
M
value and defaulting to (maximum information + 1) even
when it was supplied.Shadow()
was not working when the
FIXED
item selection method was used with a single
$fixed_theta
value in the config. (#132)EB
or FB
, prior sample generation was ignoring prior
distribution type and assuming normal distribution.duplicate item IDs found
warning for R <= 3.6.FIXED
item selection method for
Shadow()
now does not approximate the supplied value to the
nearest theta quadrature when computing information.config_Shadow@interim_theta$prior_dist
and
config_Shadow@final_theta$prior_dist
now accept
RAW
. This is introduced to accommodate supplying raw
densities to the prior
argument of
Shadow()
.TestDesign()
.config_Static
and config_Shadow
and are
now exported classes.config_Shadow
and createShadowTestConfig()
gain a new slot exclude_policy
for configuring how excluded
items are treated. Excluded items are supplied through the
exclude
argument in Shadow()
.TestDesign()
gains a ‘close app’ button.Shadow()
would trigger a ‘incorrect number of subscripts’
error.loadConstraints()
that vary
the number of stimuli would incorrectly fail validation.Split()
for partitioning an item pool into
parallel tests/sub-pools that satisfy all constraints. This is an
experimental method we are currently working on. See
vignette('split')
for a quick introduction.plot()
now works better with ‘knitr’ markdown
documents. This is enabled by removing the use of
recordPlot()
inside plot()
. As a result,
p <- plot()
will not work anymore. Use
recordPlot()
for assigning plots into objects.TestDesign()
is updated to work with the
above change.plot()
gains a new use_par
argument to
override using default graphical parameters that are hard-coded into the
function. This allows for more flexible formatting.theta_segment
argument in
plot(type = "exposure")
is renamed to
theta_type
. The existing argument is deprecated and using
it will raise a warning.Shadow()
gains a new argument seed
.plot(type = "exposure")
gains new arguments
segment
, rmse
, and
use_segment_label
.summary()
for output_Shadow_all
objects
now also summarizes the number of selected items for ENEMY
,
INCLUDE
, EXCLUDE
, and ALLORNONE
constraints.citation("TestDesign")
summary()
of an
output_Shadow_all
object used to throw an
incorrect number of dimensions
error when there was only
one constraint.diagnostic_stats = TRUE
option in
createShadowTestConfig()
would generate unnecessarily large
amount of data when running Shadow()
.eap()
to handle input formats consistently
with mle()
. This should only affect use cases where
eap()
is called directly.Shadow()
now utilizes
include_items_for_estimation
for EAP estimation.plotInfo()
is removed. This is now
plot(type = "info")
.plotExposure()
is removed. This is now
plot(type = "exposure")
.output_Shadow
gains a new slot for initial theta
estimates. plot()
utilizes the new slot.TestDesign()
now checks whether each solver works, and
only shows solvers available on the user system.plot()
.toggleConstraints()
now also accepts character
IDs.summary()
for output_Shadow_all
and
output_Static
objects, and print()
for
constraints
objects. User-supplied constraint indices are
still printed as before.NA
values are now suppressed in printing, in
summary()
of output_Shadow_all
and
output_Static
objects.constraints
objects raised a
warning related to internal constraint indices.Shadow()
has a new argument
include_items_for_estimation
for including existing
response data to be used to supplement interim theta estimation.exclude_items
in Shadow()
is
now renamed to exclude
. The argument exclude
now also accepts stimulus IDs.use_step_size
and
step_size
for limiting the amount of change between item
administrations.loadConstraints()
now retains stimulus IDs in the
item_index_by_stimulus
slot for easier access.loadConstraints()
now accepts non-numeric character IDs
in the CONSTRAINT_ID
column.plot()
now accepts ylim
.config_Shadow
object for whether its solver was installed
on the system.updateConstraints()
is removed. This is now
toggleConstraints()
.showConstraints()
is removed. This is now
print()
.plotCAT()
is removed. This is now
plot(type = 'audit')
.plotShadow()
is removed. This is now
plot(type = 'shadow')
.Shadow()
. This can be
configured using config_Shadow@interim_theta
and
config_Shadow@final_theta
.output_Shadow_all
class.output_Shadow_all
objects now have print()
and show()
extensions.loadItemPool()
, loadItemAttrib()
,
loadStAttrib()
, loadConstraints()
,
buildConstraints()
are now capable of reading from data
frame objects.loadItemPool()
is now capable of reading from
SingleGroupClass
objects from mirt
package.item_pool
objects can be now subsetted and combined
with [
and c()
.constraints
objects can be now subsetted and combined
with [
and c()
.SUM
constraints now accept
VARIABLE, EXPRESSION
in CONDITION
for imposing
constraints on conditional sums
(e.g. WORDCOUNT, DOK == 1
).Static()
and Shadow()
now asks for
confirmation when attempting to use solvers other than
Rsymphony
, lpsymphony
and gurobi
for set-based assembly. This can be overridden by passing
force_solver = TRUE
.Shadow()
now uses progress
package if
available.Static()
now returns an output_Static
object.Shadow()
now returns an output_Shadow_all
object.print()
extensions for most objects.summary()
extensions for most objects.plot()
extensions for most objects.dataset_bayes
example dataset.plot(type = 'shadow')
(formerly
plotShadow()
) now groups items by stimulus.config_*
objects now have a new MIP$retry
slot. This specifies the number of retry attempts when the solver
encounters a ‘no solution’ error. This error is incorrect in some cases.
The intent of retrying is to verify whether the ‘no solution’ error
indeed indicates a true error.Shadow()
now has a new excluded_items
argument.updateConstraints()
is now
toggleConstraints()
.plotInfo()
is now
plot(type = 'info')
.plotCAT()
is now
plot(type = 'audit')
.plotShadow()
is now
plot(type = 'shadow')
.plotExposure()
is now
plot(type = 'exposure')
.calcDerivative()
is removed.calcDerivative2()
is removed.Shadow()
was marking eligible
items as ineligible when using ELIGIBILITY
exposure
control.loadItemPool()
was parsing standard errors
incorrectly for GR
models.loadConstraints()
was creating
unnecessarily large numbers of constraints when
TYPE = 'NUMBER'
and CONDITION
was an
item/stimulus attribute name, and the attribute did not have NA
values.loadConstraints()
was creating constraints
incorrectly when TYPE = 'NUMBER'
and CONDITION
was an item/stimulus attribute name, and the attribute had NA
values.loadConstraints()
was creating constraints
incorrectly when TYPE = 'NUMBER'
and CONDITION
was a stimulus attribute name, and LB
and UB
were not equal.loadConstraints()
was creating constraints
incorrectly when TYPE = 'SUM'
.lpSolve
to address
lpsymphony
being unavailable on Solaris.Shadow()
to run.BIGM
exposure control method
on set-based items.lpsymphony
is now the default solver.
lpsymphony
allows faster solving of set-based assembly
tasks, and is easily installable on various platforms.getSolution()
prints the indices of the selected items
from the results of Static()
or Shadow()
.showConstraints()
returns the constraints table from a
constraints
object. This is a shortcut to access the
@constraints
slot.TM_TARGET_GAP_ACHIEVED
as a valid status
message in lpsymphony
and Rsymphony
solvers.loadItemAttrib()
now ignores malformatted values in
‘INDEX’ column and regenerates correct indices.loadStAttrib()
now ignores malformatted values in
‘STINDEX’ column and regenerates correct indices.config_Static
object now shows the objective tolerance
value in slot @MIP$obj_tol
.TestDesign 1.0.0 is a major release that provides structural changes to better streamline the usage of functions and also achieve more structured abstraction.
ATA()
is now named
Static()
to match with Shadow()
for adaptive
assembly.Shadow()
now uses fewer arguments to match with
Static()
and to reduce redundant information in the
arguments.plotMaxInfo()
is removed. The functionality is subsumed
under plotInfo()
, which can be used by supplying a
constriants
object to the function.Static()
now does not return the information plot by
itself. The plotting should be done with plotInfo()
.plotInfo()
is now an S4 method.item_pool
object gives a pool-level
information plot.Static()
gives an information
plot based on the selected items.constraints
object gives an information
range plot from the test length specified in the constraints.item_attrib
),
set attributes (st_attrib
), and constraints
(constraints
).ATA()
and STA()
are merged into a single
core function runAssembly()
. The function translates
high-level user data to low-level solver data.ATA()
and STA()
are removed. Deprecating
the functions was not feasible because of the structural changes.lpsymphony
solver package from
Bioconductor repository. Note: The current version 1.12.0 of
lpsymphony
will not install on R-devel due to
R CMD config F77
being deprecated. Installs normally on R
3.6.1.plotShadow()
has a new simple
argument
that simplifies the chart by hiding items that are not included in any
shadow test.lpsymphony
and Rsymphony
instead of SYMPHONY
)vignette('rsymphony')
is improved.plotCAT()
and plotShadow()
now uses a
separate color for polytomous item responses.plotInfo()
now uses a more polished plotting
style.plotExposure()
was incorrectly plotting
stimulus-level exposure rates along with item-level exposure rates.Shadow()
.gap_limit
was being incorrectly passed onto
SYMPHONY
in ATA()
and Shadow()
,
instead of gap_limit_abs
.gap_limit
was not being passed onto
GUROBI
in ATA()
and
Shadow()
.time_limit
was not being passed onto
GUROBI
in Shadow()
.time_limit
was being incorrectly passed in
microseconds to GLPK
in Shadow()
.Shadow()
.config_ATA@MIP
now has a new slot $obj_tol
for controlling objective value tolerance.ATA()
and Shadow()
were
returning incorrect solutions with set-based item pools in some
cases.ATA()
and Shadow()
were
returning fewer than the specified number of items, due to solution
vectors being not strictly binary in some cases.vignette('constraints')
.URL
and BugReports
fields to
DESCRIPTION
file.