Nothing
knitr::opts_chunk$set(collapse = TRUE, comment = "#>", eval = FALSE)
Item selection can be treated as a constrained multi-objective decision rather than a sequence of isolated cutoffs.
objectives <- item_objective_spec( information = "test_information", process_burden = "pupil_effort", fairness = "absolute_dif", exposure = "exposure_rate", content_constraints = list(content_domain = c(1, 5)) ) pareto <- item_pareto_front(item_bank, objectives) plot_item_pareto(pareto) selected <- optimize_item_bank( pareto, n_items = 20, objectives = objectives, method = "evolutionary" ) plot_selected_bank_profile(selected) stability <- audit_bank_decision_stability(selected) plot_decision_stability(stability)
Process-DIF is reported separately from psychometric DIF and can be monitored over deployment batches.
dif <- fit_process_dif( person_item_data, response = "accuracy", process = "dwell_ms", group = "group", item = "item_id", ability = "theta" ) plot_process_dif_forest(dif) drift <- monitor_dif_drift( monitoring_data, time = "deployment_batch", group = "group", metrics = c("difficulty", "dwell_ms", "pupil_auc"), item = "item_id" ) plot_dif_drift_heatmap(drift)
Conditional centiles are reference distributions, not clinical classifications.
norms <- fit_process_norms(reference_sample, "dwell_ms", c("age", "item_difficulty")) predict_process_centiles(norms, new_people) score_process_deviation(norms, new_people, type = "centile") plot_process_centiles(norms) audit_norm_transportability(norms, external_sample)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.