itemValuesConstraint {eatATA} | R Documentation |
Constrain the sum of item values per form.
Description
Create constraints related to an item parameter/value. That is, the created
constraints assure that the sum of the item values (itemValues
) per test form is either
(a) smaller than or equal to (operator = "<="
), (b) equal to
(operator = "="
), or (c) greater than or equal to (operator = ">="
)
the chosen targetValue
.
Usage
itemValuesConstraint(
nForms,
itemValues,
operator = c("<=", "=", ">="),
targetValue,
whichForms = seq_len(nForms),
info_text = NULL,
itemIDs = names(itemValues)
)
Arguments
nForms |
Number of forms to be created. |
itemValues |
Item parameter/values for which the sum per test form should be constrained. |
operator |
A character indicating which operator should be used in the
constraints, with three possible values: |
targetValue |
the target test form value. |
whichForms |
An integer vector indicating which test forms should be constrained. Defaults to all the test forms. |
info_text |
a character string of length 1, to be used in the |
itemIDs |
a character vector of item IDs in correct ordering, or NULL. |
Details
When operator
is "<="
, the constraint can be mathematically formulated as:
\[\sum_{i=1}^{I} v_i \times x_{if} \leq t , \; \; \; \code{for} \: f \in G,\]
where \(I\) refers to the number of items in the item pool, \(v_i\) is the
itemValue
for item \(i\) and \(t\) is the targetValue
. Further, \(G\)
corresponds to whichForms
, so that the above inequality constraint
is repeated for every test form \(f\) in \(G\). In addition, let \(\boldsymbol{x}\)
be a vector of binary decision variables with length \(I \times F\), where \(F\)
is nForms
. The binary decision variables \(x_{if}\) are defined as:
\(\;\;\;\;\;\;\;\;\) | \(x_{if} = 1\),\(\;\;\;\;\) | if item \(i\) is assigned to form \(f\), and |
\(\;\;\;\;\;\;\;\;\) | \(x_{if} = 0\),\(\;\;\;\;\) | otherwise. |
Value
An object of class "constraint"
.
Examples
## constraints to make sure that the sum of the item values (1:10) is between
## 4 and 6
combineConstraints(
itemValuesConstraint(2, 1:10, operator = ">=", targetValue = 4),
itemValuesConstraint(2, 1:10, operator = "<=", targetValue = 6)
)