createShadowTestConfig is a config function for creating a config_Shadow object for shadowtest assembly. Default values are used for any unspecified parameters/slots.

createShadowTestConfig(
  item_selection = NULL,
  content_balancing = NULL,
  MIP = NULL,
  MCMC = NULL,
  exclude_policy = NULL,
  refresh_policy = NULL,
  exposure_control = NULL,
  overlap_control = NULL,
  stopping_criterion = NULL,
  interim_theta = NULL,
  final_theta = NULL,
  theta_grid = seq(-4, 4, 0.1)
)

Arguments

item_selection

a named list containing item selection criteria.

  • method the type of selection criteria. Accepts MFI, MPWI, FB, EB, GFI. (default = MFI)

  • info_type the type of information. Accepts FISHER. (default = FISHER)

  • initial_theta (optional) initial theta values to use.

  • fixed_theta (optional) fixed theta values to use throughout all item positions.

  • target_value (optional) the target value to use for method = 'GFI'.

content_balancing

a named list containing content balancing options.

  • method the type of balancing method. Accepts NONE, STA. (default = STA)

MIP

a named list containing solver options.

  • solver the type of solver. Accepts Rsymphony, highs, gurobi, lpSolve, Rglpk. (default = HIGHS)

  • verbosity verbosity level of the solver. (default = -2)

  • time_limit time limit in seconds. Used in solvers Rsymphony, gurobi, Rglpk. (default = 60)

  • gap_limit search termination criterion. Gap limit in relative scale passed onto the solver. Used in solver gurobi. (default = .05)

  • gap_limit_abs search termination criterion. Gap limit in absolute scale passed onto the solver. Used in solvers Rsymphony. (default = 0.05)

  • obj_tol search termination criterion. The lower bound to use on the minimax deviation variable. Used when item_selection$method is GFI, and ignored otherwise. (default = 0.05)

  • retry number of times to retry running the solver if the solver returns no solution. Some solvers incorrectly return no solution even when a solution exists. This is the number of attempts to verify that the problem is indeed infeasible in such cases. Set to 0 to not retry. (default = 5)

MCMC

a named list containing Markov-chain Monte Carlo configurations for obtaining posterior samples.

  • burn_in the number of chains from the start to discard. (default = 100)

  • post_burn_in the number of chains to use after discarding the first burn_in chains. (default = 500)

  • thin thinning interval to apply. 1 represents no thinning. (default = 1)

  • jump_factor the jump (scaling) factor for the proposal distribution. 1 represents no jumping. (default = 2.4)

exclude_policy

a named list containing the exclude policy for use with the exclude argument in Shadow.

  • method the type of policy. Accepts HARD, SOFT. (default = HARD)

  • M the Big M penalty to use on item information. Used in the SOFT method.

refresh_policy

a named list containing the refresh policy for when to obtain a new shadowtest.

  • method the type of policy. Accepts ALWAYS, POSITION, INTERVAL, THRESHOLD, INTERVAL-THRESHOLD, STIMULUS, SET, PASSAGE. (default = ALWAYS)

  • interval used in methods INTERVAL, INTERVAL-THRESHOLD. Set to 1 to refresh at each position, 2 to refresh at every two positions, and so on. (default = 1)

  • threshold used in methods THRESHOLD, INTERVAL-THRESHOLD. The absolute change in between interim theta estimates to trigger the refresh. (default = 0.1)

  • position used in methods POSITION. Item positions to trigger the refresh. (default = 1)

exposure_control

a named list containing exposure control settings.

  • method the type of exposure control method. Accepts NONE, ELIGIBILITY, BIGM, BIGM-BAYESIAN. (default = ELIGIBILITY)

  • M used in methods BIGM, BIGM-BAYESIAN. the Big M penalty to use on item information.

  • max_exposure_rate target exposure rates for each segment. (default = rep(0.25, 7))

  • acceleration_factor the acceleration factor to apply. (default = 1)

  • n_segment the number of theta segments to use. (default = 7)

  • first_segment (optional) the theta segment assumed at the beginning of test for all participants.

  • segment_cut theta segment cuts. (default = c(-Inf, seq(-2.5, 2.5, 1), Inf))

  • initial_eligibility_stats (optional) initial eligibility statistics to use.

  • fading_factor the fading factor to apply. (default = .999)

  • diagnostic_stats set to TRUE to generate segment-wise diagnostic statistics. (default = FALSE)

overlap_control

a named list containing overlap control settings.

  • method the type of overlap control method. Accepts NONE, ELIGIBILITY, BIGM, BIGM-BAYESIAN. (default = NONE)

  • M used in methods BIGM, BIGM-BAYESIAN. the Big M penalty to use on item information.

  • max_overlap_rate target overlap rate. (default = 0.20)

stopping_criterion

a named list containing stopping criterion.

  • method the type of stopping criterion. Accepts FIXED. (default = FIXED)

  • test_length test length.

  • min_ni the maximum number of items to administer.

  • max_ni the minimum number of items to administer.

  • se_threshold standard error threshold. Item administration is stopped when theta estimate standard error becomes lower than this value.

interim_theta

a named list containing interim theta estimation options.

  • method the type of estimation. Accepts EAP, MLE, MLEF, EB, FB, CARRYOVER. (default = EAP)

  • shrinkage_correction set TRUE to apply shrinkage correction. Used when method is EAP. (default = FALSE)

  • prior_dist the type of prior distribution. Accepts NORMAL, UNIFORM. (default = NORMAL)

  • prior_par distribution parameters for prior_dist. (default = c(0, 1))

  • bound_ML theta bound in c(lower_bound, upper_bound) format. Used when method is MLE. (default = -4, 4)

  • truncate_ML set TRUE to truncate ML estimate within bound_ML. (default = FALSE)

  • max_iter maximum number of Newton-Raphson iterations. Used when method is MLE. (default = 50)

  • crit convergence criterion. Used when method is MLE. (default = 1e-03)

  • max_change maximum change in ML estimates between iterations. Changes exceeding this value is clipped to this value. Used when method is MLE. (default = 1.0)

  • use_step_size set TRUE to use step_size. Used when method is MLE or MLEF. (default = FALSE)

  • step_size upper bound to impose on the absolute change in initial theta and estimated theta. Absolute changes exceeding this value will be capped to step_size. Used when method is MLE or MLEF. (default = 0.5)

  • do_Fisher set TRUE to use Fisher's method of scoring. Used when method is MLE. (default = TRUE)

  • fence_slope slope parameter to use for method = 'MLEF'. This must have two values in total, for the lower and upper bound item respectively. Use one value to use the same value for both bounds. (default = 5)

  • fence_difficulty difficulty parameters to use for method = 'MLEF'. This must have two values in total, for the lower and upper bound item respectively. (default = c(-5, 5))

  • hand_scored_attribute (optional) the item attribute name for whether each item is hand-scored or not. The attribute should have TRUE (hand-scored) and FALSE (machine-scored) values. If a hand-scored item is administered to an examinee, the previous interim theta (or the starting theta if this occurs for the first item) is reused without updating the estimate.

final_theta

a named list containing final theta estimation options.

  • method the type of estimation. Accepts EAP, MLE, MLEF, EB, FB, CARRYOVER. (default = EAP)

  • shrinkage_correction set TRUE to apply shrinkage correction. Used when method is EAP. (default = FALSE)

  • prior_dist the type of prior distribution. Accepts NORMAL, UNIFORM. (default = NORMAL)

  • prior_par distribution parameters for prior_dist. (default = c(0, 1))

  • bound_ML theta bound in c(lower_bound, upper_bound) format. Used when method is MLE. (default = -4, 4)

  • truncate_ML set TRUE to truncate ML estimate within bound_ML. (default = FALSE)

  • max_iter maximum number of Newton-Raphson iterations. Used when method is MLE. (default = 50)

  • crit convergence criterion. Used when method is MLE. (default = 1e-03)

  • max_change maximum change in ML estimates between iterations. Changes exceeding this value is clipped to this value. Used when method is MLE. (default = 1.0)

  • use_step_size set TRUE to use step_size. Used when method is MLE or MLEF. (default = FALSE)

  • step_size upper bound to impose on the absolute change in initial theta and estimated theta. Absolute changes exceeding this value will be capped to step_size. Used when method is MLE or MLEF. (default = 0.5)

  • do_Fisher set TRUE to use Fisher's method of scoring. Used when method is MLE. (default = TRUE)

  • fence_slope slope parameter to use for method = 'MLEF'. This must have two values in total, for the lower and upper bound item respectively. Use one value to use the same value for both bounds. (default = 5)

  • fence_difficulty difficulty parameters to use for method = 'MLEF'. This must have two values in total, for the lower and upper bound item respectively. (default = c(-5, 5))

theta_grid

the theta grid to use as quadrature points.

Examples

cfg1 <- createShadowTestConfig(refresh_policy = list(
  method = "STIMULUS"
))
cfg2 <- createShadowTestConfig(refresh_policy = list(
  method = "POSITION",
  position = c(1, 5, 9)
))