Title: | Automated Test Assembly |
---|---|
Description: | Provides a collection of psychometric methods to process item metadata and use target assessment and measurement blueprint constraints to assemble a test form. Currently two automatic test assembly (ata) approaches are enabled. For example, the weighted (positive) deviations method, wdm(), proposed by Swanson and Stocking (1993) <doi:10.1177/014662169301700205> was implemented in its full specification allowing for both item selection as well as test form refinement. The linear constraint programming approach, atalp(), uses the linear equation solver by Berkelaar et. al (2014) <http://lpsolve.sourceforge.net/5.5/> to enable a variety of approaches to select items. |
Authors: | Gulsah Gurkan [aut], Michael Chajewski [aut, cre], Sam Buttrey [cph] |
Maintainer: | Michael Chajewski <[email protected]> |
License: | LGPL-2 |
Version: | 1.1.1 |
Built: | 2025-02-17 04:44:55 UTC |
Source: | https://github.com/cran/ata |
Ingests item metadata jointly with target test form constraints, and can be parametarized to uses either Boolean (0-1) Integer Linear Programming (ILP) or Mixed Integer Linear Programming (MILP) to construct a test form based on the desired objectives. When MILP is desired the selection of the objective function type should be changed.
atalp( ipool, id, constraints, refine = FALSE, permutate = FALSE, sorttimes = 999, tieselect = -1, type = "const", verbose = TRUE, aprioriadd = NA, posthocadd = NA )
atalp( ipool, id, constraints, refine = FALSE, permutate = FALSE, sorttimes = 999, tieselect = -1, type = "const", verbose = TRUE, aprioriadd = NA, posthocadd = NA )
ipool |
Item by characteristic (property) metadata pool. |
id |
Name of unique item identifier. |
constraints |
Complex list object identifying the constraints to be applied in the ATA (see |
refine |
Creates a final test form from permutated solutions, refined to attempt a deviation balance between the observed form and the constraints. Option only effective if |
permutate |
Requests the test form to be assembled by resorting ( |
sorttimes |
Number of how often the original input metadata should be resorted. Only functional if |
tieselect |
How should tied items be resolved: -1 (default) - do not manipulate items (which allows for identically functioning items to be included), 1 - select the first item in the list of candidates (sensitive to data sorting); not applicable for situations with all categorical constraints only, 0 - randomly select candidate; not applicable for situations with all categorical constraints only. |
type |
Type of objective function: |
verbose |
Should progress be printed to the console? Default |
aprioriadd |
Force item addition (via IDs) to test form before ATA, which affects item selection and constraint attainment success (currently not available). |
posthocadd |
Force item addition (via IDs) to test form after ATA, which affects final form specifications (currently not available). |
A complex list object with test assembly specific estimates:
objective |
Constrained objective function value. |
items_removed |
Removed items from item pool when |
excluded |
Items from pool excluded. |
excluded_set |
Item sets excluded. Only included if input |
included |
Items from pool included in new test form. |
included_set |
Item sets from pool included in new test form. Only included if input |
final_ids |
Final item ids in the test form. |
final_setids |
Final set ids in the test form. Only included if input |
Michael Chajewski ([email protected]), Gulsah Gurkan ([email protected])
Chen, P. (2017). Should we stop developing heuristics and only rely on mixed integer programming solvers in automated test assembly? Applied Psychological Measurement, 41, 227-240.
Diao, Q., & van der Linden, W. J. (2011). Automated test assembly using lp_Solve Version 5.5 in R. Applied Psychological Measurement, 35, 398-409.
Shao, C., Liu, S., Yang, H., & Tsai, T. (2019). Automated test assembly using SAS operations research software in a medical licensing examination. Applied Psychological Measurement, 00, 1-15.
van der Linden, W. J. (2005). A comparison of item-selection methods for adaptive tests with content constraints. Journal of Educational Measurement, 42, 283-302.
# Specifying constraints constin <- list( nI = 5, # Number of items on the future test nC = 4, # Number of constraints to be satisfied nameC = c("Content_A","Content_B","p","iSx"), # Name of constraint; must be numeric and must # reflect variable name in input lowerC = c(2, 3, 3.00, 0.50), # Lower bound total constraint value on ATA form upperC = c(2, 3, 3.50, 0.60), # Upper bound total constraint value on ATA form wC = c(1, 1, 1, 1), # Constraint weight used for weighted sum of # (positive) deviations St set_id = NA # Aggregation ID for units / sets ) # Running atalp testLP <- atalp(ipool = metadata_example, id = "Item", constraints = constin) # Summary of results summary(testLP)
# Specifying constraints constin <- list( nI = 5, # Number of items on the future test nC = 4, # Number of constraints to be satisfied nameC = c("Content_A","Content_B","p","iSx"), # Name of constraint; must be numeric and must # reflect variable name in input lowerC = c(2, 3, 3.00, 0.50), # Lower bound total constraint value on ATA form upperC = c(2, 3, 3.50, 0.60), # Upper bound total constraint value on ATA form wC = c(1, 1, 1, 1), # Constraint weight used for weighted sum of # (positive) deviations St set_id = NA # Aggregation ID for units / sets ) # Running atalp testLP <- atalp(ipool = metadata_example, id = "Item", constraints = constin) # Summary of results summary(testLP)
Guides the user to create a complex list object identifying the constraints to be applied in automated test assembly functions from the ata
package.
makeconstobj( ipool, id, empty = FALSE)
makeconstobj( ipool, id, empty = FALSE)
ipool |
Item by characteristic (or property) metadata. |
id |
Name (not actual codes) of unique item identifier (variable). |
empty |
Should the function return an empty list to be filled in manually. Default is |
A list object with "nC" "nameC" "lowerC" "upperC" "wC" "nI" "set_id"
Gulsah Gurkan ([email protected]), Michael Chajewski ([email protected])
Parshall, C. G., et al. (2002). Automated test assembly for online administration. In C. G. Parshall, J. A. Spray, J. C. Kalohn, & T. Davey, Practical considerations in computer based testing (pp.106-125). New York, NY: Springer-Verlag New York, Inc.
Sample data based on data from Parshall et al. (2002) used for the demonstration of the Weighted (positive) Deviations Method (WDM).
metadata_example
metadata_example
A data frame with 10 rows and 10 variables:
Unique item identifier, integer.
Content label, as factor identifying content "A" and "B".
Dummy code for content "A", 0 and 1 indicators.
Dummy code for content "B", 0 and 1 indicators.
Item proportion correct responding, rounded decimal.
Item-total point biserial correlation, rounded decimal correlation in range -1.00 to 1.00.
Item contribution to total composite standard deviation, double precision numeric.
Expected item response time, in minutes.
Item set ID–initial, unique item set name.
Item set ID–modified, unique item set name.
Parshall, C. G., et al. (2002). Automated test assembly for online administration. In C. G. Parshall, J. A. Spray, J. C. Kalohn, & T. Davey, Practical considerations in computer based testing (pp.106-125). New York, NY: Springer-Verlag New York, Inc.
Sample data used to demonstrate automated test assembly.
metadata_large_example
metadata_large_example
A data frame with 1096 rows and 44 variables:
Unique item identifier, alpha-numeric index code.
Content label, as factor identifying content "A" and "B".
Dummy code for content "A", 0 and 1 indicators.
Dummy code for content "B", 0 and 1 indicators.
Dummy code for content "C", 0 and 1 indicators.
Dummy code for content "D", 0 and 1 indicators.
Dummy code for content "E", 0 and 1 indicators.
Dummy code for content "F", 0 and 1 indicators.
Dummy code for content "G", 0 and 1 indicators.
Dummy code for content "H", 0 and 1 indicators.
Dummy code for content "I", 0 and 1 indicators.
Dummy code for content "J", 0 and 1 indicators.
Dummy code for content "K", 0 and 1 indicators.
Dummy code for content "L", 0 and 1 indicators.
Dummy code for content "M", 0 and 1 indicators.
Dummy code for content "N", 0 and 1 indicators.
Dummy code for content "O", 0 and 1 indicators.
Dummy code for content "P", 0 and 1 indicators.
Dummy code for content "Q", 0 and 1 indicators.
Dummy code for content "R", 0 and 1 indicators.
Dummy code for content "S", 0 and 1 indicators.
Dummy code for content "T", 0 and 1 indicators.
Dummy code for content "U", 0 and 1 indicators.
Dummy code for content "V", 0 and 1 indicators.
Dummy code for content "W", 0 and 1 indicators.
Dummy code for content "X", 0 and 1 indicators.
Dummy code for content "Y", 0 and 1 indicators.
Dummy code for content "Z", 0 and 1 indicators.
Item proportion correct responding.
Item-total point biserial correlation, rounded decimal correlation in range -1.00 to 1.00
Item contribution to total composite standard deviation.
Observed median item response time, in seconds.
Number of response choices in the multiple-choice question.
Correct answer key. In the multiple-choice questions answer 1 = A, 2 = B, and so on.
Formative insight skill classification.
Formative skill insight dummy code for skill 1 (S1): Interpretive.
Formative skill insight dummy code for skill 2 (S2): Factual.
Formative skill insight dummy code for skill 3 (S3): Evaluative.
Item Response Theory (IRT) item information function value at a theta = -2.0.
Item Response Theory (IRT) item information function value at a theta = -1.0.
Item Response Theory (IRT) item information function value at a theta = 0.0.
Item Response Theory (IRT) item information function value at a theta = 1.0.
Item Response Theory (IRT) item information function value at a theta = 2.0.
Passage based item set parent identification.
Sample data based on data from Parshall et al. (2002) used for the demonstration of the Weighted (positive) Deviations Method (WDM).
metadata_withreplic_example
metadata_withreplic_example
A data frame with 14 rows and 10 variables:
Unique item identifier, integer.
Unique item identifier, character letter.
Content label, as factor identifying content "A" and "B".
Dummy code for content "A", 0 and 1 indicators.
Dummy code for content "B", 0 and 1 indicators.
Item proportion correct responding, rounded decimal.
Item-total point biserial correlation, rounded decimal correlation in range -1.00 to 1.00.
Item contribution to total composite standard deviation, double precision numeric.
Expected item response time, in minutes.
Original item copy, corresponding "Item" column ID.
Parshall, C. G., et al. (2002). Automated test assembly for online administration. In C. G. Parshall, J. A. Spray, J. C. Kalohn, & T. Davey, Practical considerations in computer based testing (pp.106-125). New York, NY: Springer-Verlag New York, Inc.
ata
Default plotting function for output objects of class ata. The function detects the object's method and renders the appropriate visualizations.
\method{plot}{ata}(x, conditem=NA, useconst=TRUE, itemorder=NA, itemlab=NA, useitemlab=FALSE, together=FALSE, ...)
\method{plot}{ata}(x, conditem=NA, useconst=TRUE, itemorder=NA, itemlab=NA, useitemlab=FALSE, together=FALSE, ...)
x |
An output object of class ata generated by either |
conditem |
Provides a conditional or secondary item classification (i.e. content label). If provided, it must be given in the order of |
useconst |
Indicator whether all constraints from the test assembly process should be visualized or whether only a selection is desired. If a selection is desired, the name of the constraint as given by the |
itemorder |
Identifies the item order with which to visualize constraints. If |
itemlab |
Identifies item labels. Default is |
useitemlab |
Identifies if items should be labeled. Default is |
together |
Should progress plots be stacked together in one plot? Default is |
... |
Arguments to be passed to methods. |
The function returns plots of the test form constraints and a cumulative additive constraint list for each constraint if assigned to an object.
plots |
For each constraint in the test form two visualizations are considered: 1) A cumulative additive progressive plot showing the change in the constraint total value per selected item, and 2) a plot of the constraint item specific value for each selected item. |
cumulative |
If |
Michael Chajewski ([email protected])
ata
Default summary function for output objects of class ata
. The function provides a brief summary of the ATA form in text, and provides a binary table of constraint success.
\method{summary}{ata}(object, ...)
\method{summary}{ata}(object, ...)
object |
An output object of class |
... |
Additional arguments affecting the summary produced. |
The function returns a statement summarizing the evaluation of the assembled test form. Additionally, the function will return a pattern matrix for the test form constraints if assigned to an object.
statement |
A summary of items (and/or item sets) in the test form and the overview of constraint success. |
pattern |
A matrix of constraints by a classification if the additive constraints are below, at or above the constraint specific user provided bounds. This matrix, only returned if |
Gulsah Gurkan ([email protected]), Michael Chajewski ([email protected])
Ingests item metadata jointly with target test form constraints and uses the Weighted (positive) Deviations Method (WDM) to construct a test form based on the desired objectives.
wdm( ipool, id, constraints, first = NA, refine = TRUE, permutate = FALSE, tieselect = 1, verbose = TRUE, aprioriadd = NA, posthocadd = NA )
wdm( ipool, id, constraints, first = NA, refine = TRUE, permutate = FALSE, tieselect = 1, verbose = TRUE, aprioriadd = NA, posthocadd = NA )
ipool |
Item by characteristic (property) metadata pool. |
id |
Name of unique item identifier. |
constraints |
Complex list object identifying the constraints to be applied in the ATA (see |
first |
How should item selection start: |
refine |
Should the final test form be refined against the remaining item pool? Default is |
permutate |
Assemble test forms starting with each item sequentially (as many forms as items in pool) and define final test form based on eligible constraint compliant solutions; Default is |
tieselect |
How should tied items be resolved: 1 (default) - select the first item in the list of candidates (sensitive to data sorting); not applicable for situations with all categorical constraints only, 0 - randomly select candidate; not applicable for situations with all categorical constraints only |
verbose |
Should progress of |
aprioriadd |
Force item addition (via IDs) to test before ATA, which affects item selection and constraint attainment success (currently not available). |
posthocadd |
Force item addition (via IDs) to test after ATA, which affects final form specifications (currently not available). |
A complex list object with test assembly specific estimates:
wde |
Estimates of the computational steps deriving the positive weighted deviations and item selection. |
evaluation |
Final assembled test form additive properties across constraints. |
considered |
Estimates of the computational steps when |
excluded |
Items from pool excluded. |
excluded_set |
Item sets excluded. Only included if input |
included |
Items from pool included in new test form. |
included_set |
Item sets from pool included in new test form. Only included if input |
initial_ids |
Item sets from pool included in new test form. |
initial_setids |
Item sets from pool included in new test form. Only included if input |
final_ids |
Final item ids in the test form. |
final_setids |
Final set ids in the test form. Only included if input |
Gulsah Gurkan ([email protected]), Michael Chajewski ([email protected])
Parshall, C. G., et al. (2002). Automated test assembly for online administration. In C. G. Parshall, J. A. Spray, J. C. Kalohn, & T. Davey, Practical considerations in computer based testing (pp.106-125). New York, NY: Springer-Verlag New York, Inc.
Sanders, P. F., & Verschoor, A. J. (1998). Parallel test construction using classical item parameters. Applied Psychological Measurement, 22, 212-223.
Swanson, L., & Stocking, M. L. (1993). A Model and heuristic for solving Very large item selection problems. Applied Psychological Measurement, 17, 151-166.
# Specifying constraints constin <- list( nI = 5, # Number of items on the future test nC = 4, # Number of constraints to be satisfied nameC = c("Content_A","Content_B","p","iSx"), # Name of constraint; must be numeric and must # reflect variable name in input lowerC = c(2, 3, 3.00, 0.50), # Lower bound total constraint value on ATA form upperC = c(2, 3, 3.50, 0.60), # Upper bound total constraint value on ATA form wC = c(1, 1, 1, 1), # Constraint weight used for weighted sum of # (positive) deviations St set_id = NA # Aggregation ID for units / sets ) # Running WDM example from Parshall et al. (2002) testWDM <- wdm( ipool = metadata_example, id = "Item", constraints = constin, first = 2) # Summary of results summary(testWDM)
# Specifying constraints constin <- list( nI = 5, # Number of items on the future test nC = 4, # Number of constraints to be satisfied nameC = c("Content_A","Content_B","p","iSx"), # Name of constraint; must be numeric and must # reflect variable name in input lowerC = c(2, 3, 3.00, 0.50), # Lower bound total constraint value on ATA form upperC = c(2, 3, 3.50, 0.60), # Upper bound total constraint value on ATA form wC = c(1, 1, 1, 1), # Constraint weight used for weighted sum of # (positive) deviations St set_id = NA # Aggregation ID for units / sets ) # Running WDM example from Parshall et al. (2002) testWDM <- wdm( ipool = metadata_example, id = "Item", constraints = constin, first = 2) # Summary of results summary(testWDM)