{
  "_id": "6a142a98acfb0bcc41d4094f",
  "Type": "Package",
  "Package": "autoFC",
  "Title": "Automatic Construction of Forced-Choice Tests",
  "Version": "0.2.0",
  "Authors@R": "c(\nperson(\"Mengtong\", \"Li\", , \"ml70@illinois.edu\", role = c(\"cre\", \"aut\"),\ncomment = c(ORCID = \"0000-0002-1766-4976\")),\nperson(\"Tianjun\", \"Sun\", , \"tsun5@illinois.edu\", role = \"aut\",\ncomment = c(ORCID = \"0000-0002-3655-0042\")),\nperson(\"Bo\", \"Zhang\", , \"bozhang3065@gmail.com\", role = \"aut\")\n)",
  "Author": "Mengtong Li [cre, aut]\n(<https://orcid.org/0000-0002-1766-4976>), Tianjun Sun [aut]\n(<https://orcid.org/0000-0002-3655-0042>), Bo Zhang [aut]",
  "Maintainer": "Mengtong Li <ml70@illinois.edu>",
  "Description": "Forced-choice (FC) response has gained increasing\npopularity and interest for its resistance to faking when\nwell-designed (Cao & Drasgow, 2019 <doi:10.1037/apl0000414>).\nTo established well-designed FC scales, typically each item\nwithin a block should measure different trait and have similar\nlevel of social desirability (Zhang et al., 2020\n<doi:10.1177/1094428119836486>). Recent study also suggests the\nimportance of high inter-item agreement of social desirability\nbetween items within a block (Pavlov et al., 2021\n<doi:10.31234/osf.io/hmnrc>). In addition to this, FC\ndevelopers may also need to maximize factor loading differences\n(Brown & Maydeu-Olivares, 2011 <doi:10.1177/0013164410375112>)\nor minimize item location differences (Cao & Drasgow, 2019\n<doi:10.1037/apl0000414>) depending on scoring models. Decision\nof which items should be assigned to the same block, termed\nitem pairing, is thus critical to the quality of an FC test.\nThis pairing process is essentially an optimization process\nwhich is currently carried out manually. However, given that we\noften need to simultaneously meet multiple objectives, manual\npairing becomes impractical or even not feasible once the\nnumber of latent traits and/or number of items per trait are\nrelatively large. To address these problems, autoFC is\ndeveloped as a practical tool for facilitating the automatic\nconstruction of FC tests (Li et al., 2022\n<doi:10.1177/01466216211051726>), essentially exempting users\nfrom the burden of manual item pairing and reducing the\ncomputational costs and biases induced by simple ranking\nmethods. Given characteristics of each item (and item\nresponses), FC tests can be automatically constructed based on\nuser-defined pairing criteria and weights as well as customized\noptimization behavior. Users can also construct parallel forms\nof the same test following the same pairing rules.",
  "License": "GPL-3",
  "URL": "https://github.com/tspsyched/autoFC",
  "BugReports": "https://github.com/tspsyched/autoFC/issues",
  "VignetteBuilder": "knitr",
  "Encoding": "UTF-8",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-05-25 10:50:32 UTC",
    "User": "root"
  },
  "RoxygenNote": "7.2.3",
  "Config/pak/sysreqs": "cmake make libicu-dev libuv1-dev libx11-dev",
  "Repository": "https://tspsyched.r-universe.dev",
  "Date/Publication": "2025-10-24 06:30:16 UTC",
  "RemoteUrl": "https://github.com/tspsyched/autofc",
  "RemoteRef": "HEAD",
  "RemoteSha": "aef369f40912918d4d8d784626d429538522be60",
  "MD5sum": "2b063735560c788ca21a5a1a06f0aee7",
  "_user": "tspsyched",
  "_type": "src",
  "_file": "autoFC_0.2.0.tar.gz",
  "_fileid": "557dcd7c4279365d03f2a3572579af6995143a3c2347fe205b13e36abfd4b5c7",
  "_filesize": 276407,
  "_sha256": "557dcd7c4279365d03f2a3572579af6995143a3c2347fe205b13e36abfd4b5c7",
  "_created": "2026-05-25T10:50:32.000Z",
  "_published": "2026-05-25T10:55:19.983Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 77699040210,
      "time": 243,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "ERROR",
      "artifact": "7196799217"
    },
    {
      "job": 77699040199,
      "time": 227,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "ERROR",
      "artifact": "7196795527"
    },
    {
      "job": 77699040223,
      "time": 221,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "ERROR",
      "artifact": "7196794020"
    },
    {
      "job": 77699040229,
      "time": 138,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "ERROR",
      "artifact": "7196774136"
    },
    {
      "job": 77697430153,
      "time": 769,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7196739964"
    },
    {
      "job": 77699040201,
      "time": 141,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7196774450"
    },
    {
      "job": 77699040319,
      "time": 207,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "ERROR",
      "artifact": "7196791963"
    },
    {
      "job": 77699040274,
      "time": 172,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "ERROR",
      "artifact": "7196782035"
    },
    {
      "job": 77699040280,
      "time": 194,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "ERROR",
      "artifact": "7196787634"
    }
  ],
  "_buildurl": "https://github.com/r-universe/tspsyched/actions/runs/26396214058",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/tspsyched/autofc",
  "_commit": {
    "id": "aef369f40912918d4d8d784626d429538522be60",
    "author": "MT Li <45687429+MTAmaranth@users.noreply.github.com>",
    "committer": "GitHub <noreply@github.com>",
    "message": "Update fit_TIRT_mplus_new.R",
    "time": 1761287416
  },
  "_maintainer": {
    "name": "Mengtong Li",
    "email": "ml70@illinois.edu",
    "login": "mengtong805",
    "description": "",
    "uuid": 126314013,
    "orcid": "0000-0002-1766-4976"
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 2.10",
      "role": "Depends"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "irrCAC",
      "role": "Imports"
    },
    {
      "package": "lavaan",
      "role": "Imports"
    },
    {
      "package": "MASS",
      "role": "Imports"
    },
    {
      "package": "SimDesign",
      "role": "Imports"
    },
    {
      "package": "thurstonianIRT",
      "role": "Imports"
    },
    {
      "package": "tidyr",
      "role": "Imports"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    }
  ],
  "_owner": "tspsyched",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2025-43",
      "n": 3
    }
  ],
  "_tags": [],
  "_stars": 6,
  "_contributors": [
    {
      "user": "mtlpsych",
      "count": 64,
      "uuid": 45687429
    },
    {
      "user": "tspsyched",
      "count": 31,
      "uuid": 17503009
    },
    {
      "user": "jkillisch",
      "count": 1,
      "uuid": 95357082
    }
  ],
  "_userbio": {
    "uuid": 17503009,
    "type": "user",
    "name": "Tianjun Sun",
    "description": "Asst Prof at rice.edu\r\n#IOPsych #Personality #Psychometrics #QuantMethods"
  },
  "_downloads": {
    "count": 503,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/autoFC"
  },
  "_devurl": "https://github.com/tspsyched/autofc",
  "_searchresults": 3,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/autoFC.html",
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/readme.html",
    "extra/readme.md",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/tspsyched/autofc",
  "_realowner": "tspsyched",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.2",
      "date": "2021-06-07"
    },
    {
      "version": "0.2.0.1001",
      "date": "2024-02-17"
    },
    {
      "version": "0.2.0.1002",
      "date": "2025-03-13"
    },
    {
      "version": "0.2.0.1010",
      "date": "2026-04-29"
    }
  ],
  "_exports": [
    "build_scale_with_blueprint",
    "build_TIRT_var_names",
    "cal_block_energy",
    "cal_block_energy_with_iia",
    "construct_blueprint",
    "convert_to_TIRT_response",
    "empirical_reliability",
    "facfun",
    "fit_TIRT_model",
    "get_CFA_estimates",
    "get_iia",
    "get_simulation_matrices",
    "get_TIRT_long_data",
    "make_random_block",
    "plot_scores",
    "RMSE_range",
    "sa_pairing_generalized"
  ],
  "_help": [
    {
      "page": "build_scale_with_blueprint",
      "title": "Construct Forced-Choice Blocks Aligned with the Specifications in a Blueprint",
      "topics": [
        "build_scale_with_blueprint"
      ]
    },
    {
      "page": "build_TIRT_var_names",
      "title": "Build Variable Names for the Pairwise/Rank Responses in the TIRT Model",
      "topics": [
        "build_TIRT_var_names"
      ]
    },
    {
      "page": "cal_block_energy",
      "title": "Calculation of Item Block \"Energy\"",
      "topics": [
        "cal_block_energy"
      ]
    },
    {
      "page": "cal_block_energy_with_iia",
      "title": "Calculation of Item Block \"Energy\" with IIAs Included",
      "topics": [
        "cal_block_energy_with_iia"
      ]
    },
    {
      "page": "construct_blueprint",
      "title": "Build a Blueprint Data Frame for the Focal FC Scale",
      "topics": [
        "construct_blueprint"
      ]
    },
    {
      "page": "convert_to_TIRT_response",
      "title": "Convert the Latent Utility Values into Thurstonian IRT Pairwise/Rank Responses with Pre-Specified Block Design",
      "topics": [
        "convert_to_TIRT_response"
      ]
    },
    {
      "page": "empirical_reliability",
      "title": "Calculate the Empirical Reliability of the Latent Trait Scores, Following the Formula in Brown & Maydeu-Olivares (2018).",
      "topics": [
        "empirical_reliability"
      ]
    },
    {
      "page": "facfun",
      "title": "Function for Checking If All Items in a Vector Are Unique",
      "topics": [
        "facfun"
      ]
    },
    {
      "page": "fit_TIRT_model",
      "title": "Fit the Thurstonian IRT Model with Long Format Response Data",
      "topics": [
        "fit_TIRT_model"
      ]
    },
    {
      "page": "get_CFA_estimates",
      "title": "Conduct Confirmatory Factor Analysis (CFA) and Obtain Parameter Estimates",
      "topics": [
        "get_CFA_estimates"
      ]
    },
    {
      "page": "get_iia",
      "title": "Helper Function for Outputting IIA Characteristics of Each Block",
      "topics": [
        "get_iia"
      ]
    },
    {
      "page": "get_simulation_matrices",
      "title": "Generate Simulated Person and Item Parameter Matrices for the Thurstonian IRT Model Based on Confirmatory Factor Analysis Results",
      "topics": [
        "get_simulation_matrices"
      ]
    },
    {
      "page": "get_TIRT_long_data",
      "title": "Convert the TIRT Pairwise/Rank Response Data into Long Format Compatible with the thurstonianIRT Package",
      "topics": [
        "get_TIRT_long_data"
      ]
    },
    {
      "page": "HEXACO_example_data",
      "title": "Example HEXACO Response Data",
      "topics": [
        "HEXACO_example_data"
      ]
    },
    {
      "page": "make_random_block",
      "title": "Construction of Random Item Blocks",
      "topics": [
        "make_random_block"
      ]
    },
    {
      "page": "plot_scores",
      "title": "Scatter Plot for True vs Estimated Scores, True Score vs Absolute Error, etc.",
      "topics": [
        "plot_scores"
      ]
    },
    {
      "page": "RMSE_range",
      "title": "Calculate the Overall RMSE of the Trait Scores, or the RMSE in a Certain Trait Score Range",
      "topics": [
        "RMSE_range"
      ]
    },
    {
      "page": "sa_pairing_generalized",
      "title": "Automatic Item Pairing Method in Forced-Choice Test Construction",
      "topics": [
        "sa_pairing_generalized"
      ]
    },
    {
      "page": "triplet_block_info",
      "title": "Block Information for the Example Triplet Response Data",
      "topics": [
        "triplet_block_info"
      ]
    },
    {
      "page": "triplet_example_data",
      "title": "Example Triplet Response Data",
      "topics": [
        "triplet_example_data"
      ]
    }
  ],
  "_readme": "https://github.com/tspsyched/autofc/raw/HEAD/README.md",
  "_rundeps": [
    "abind",
    "audio",
    "backports",
    "beepr",
    "BH",
    "brio",
    "callr",
    "checkmate",
    "class",
    "cli",
    "clipr",
    "codetools",
    "cpp11",
    "crayon",
    "desc",
    "diffobj",
    "digest",
    "distributional",
    "dplyr",
    "e1071",
    "evaluate",
    "farver",
    "fs",
    "future",
    "future.apply",
    "generics",
    "ggplot2",
    "globals",
    "glue",
    "gridExtra",
    "gtable",
    "inline",
    "irrCAC",
    "isoband",
    "jsonlite",
    "labeling",
    "lavaan",
    "lifecycle",
    "listenv",
    "loo",
    "magrittr",
    "MASS",
    "matrixStats",
    "mirai",
    "mnormt",
    "mvtnorm",
    "nanonext",
    "numDeriv",
    "parallelly",
    "pbapply",
    "pbivnorm",
    "pillar",
    "pkgbuild",
    "pkgconfig",
    "pkgload",
    "posterior",
    "praise",
    "processx",
    "progressr",
    "proxy",
    "ps",
    "purrr",
    "qs2",
    "quadprog",
    "QuickJSR",
    "R.methodsS3",
    "R.oo",
    "R.utils",
    "R6",
    "RColorBrewer",
    "Rcpp",
    "RcppEigen",
    "RcppParallel",
    "rlang",
    "rprojroot",
    "rstan",
    "rstantools",
    "S7",
    "scales",
    "sessioninfo",
    "SimDesign",
    "StanHeaders",
    "stringfish",
    "stringi",
    "stringr",
    "tensorA",
    "testthat",
    "thurstonianIRT",
    "tibble",
    "tidyr",
    "tidyselect",
    "utf8",
    "vctrs",
    "viridisLite",
    "waldo",
    "withr"
  ],
  "_vignettes": [
    {
      "source": "autoFC.Rmd",
      "filename": "autoFC.html",
      "title": "autoFC: An R Package for Automatic Item Pairing in Forced-Choice Test Construction",
      "author": "Mengtong Li, Tianjun Sun, Bo Zhang",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Overview",
        "Functions",
        "Tutorial",
        "Step 1: Input data",
        "Step 2: Construct an initial solution",
        "Step 3: Calculate the energy for the initial FC scale, without and with IIAs",
        "Step 4: Automatic pairing",
        "Explanation for arguments",
        "Explanation for arguments (If IIAs are of concern)",
        "Step 5: See how this improves over the initial one",
        "Step 6: Automatic pairing with a multi-step optimization process",
        "Step 7: See how a multi-step iteration improves",
        "Conclusion"
      ],
      "created": "2021-06-02 05:00:32",
      "modified": "2021-06-05 07:19:53",
      "commits": 2
    }
  ],
  "_score": 4.778151250383644,
  "_indexed": true,
  "_nocasepkg": "autofc",
  "_universes": [
    "tspsyched",
    "mengtong805"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.2.0",
      "date": "2026-05-25T10:53:40.000Z",
      "distro": "noble",
      "commit": "aef369f40912918d4d8d784626d429538522be60",
      "fileid": "516246f0f0f76ffa943fdb89509d932d67ed80c6e86e5e4a944bead7fcfd8f43",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/tspsyched/actions/runs/26396214058"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.2.0",
      "date": "2026-05-25T10:53:22.000Z",
      "distro": "noble",
      "commit": "aef369f40912918d4d8d784626d429538522be60",
      "fileid": "2732d3e77dcca66c9169983dda300638fa2d78e78afc6d5736a8f4bed5f1648a",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/tspsyched/actions/runs/26396214058"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.2.0",
      "date": "2026-05-25T10:53:39.000Z",
      "commit": "aef369f40912918d4d8d784626d429538522be60",
      "fileid": "3e6e2c5dce398108d510d913f940bd10392f7aa0e91af43dc14e730637c64f21",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/tspsyched/actions/runs/26396214058"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "0.2.0",
      "date": "2026-05-25T10:52:30.000Z",
      "commit": "aef369f40912918d4d8d784626d429538522be60",
      "fileid": "f0651a66850d30ba36c4d5d96ba7dca8d17f3b96f837228a748b26d8977bfc7f",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/tspsyched/actions/runs/26396214058"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.2.0",
      "date": "2026-05-25T10:53:15.000Z",
      "commit": "aef369f40912918d4d8d784626d429538522be60",
      "fileid": "77c070f52e9f4dc1b2597a7d96819f085c5db76caf72f45afc8bcfb0ed67c6a8",
      "status": "success",
      "buildurl": "https://github.com/r-universe/tspsyched/actions/runs/26396214058"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.2.0",
      "date": "2026-05-25T10:52:57.000Z",
      "commit": "aef369f40912918d4d8d784626d429538522be60",
      "fileid": "65f782118231d4f3d9c8a99a9aaaabf4fd9242f79f70e70c6dba2b6185931e53",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/tspsyched/actions/runs/26396214058"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.2.0",
      "date": "2026-05-25T10:52:09.000Z",
      "commit": "aef369f40912918d4d8d784626d429538522be60",
      "fileid": "69b6b0d4fdeb28e8f0599a1161cf383e753d35e35b99c13594f344bfe764ed01",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/tspsyched/actions/runs/26396214058"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "0.2.0",
      "date": "2026-05-25T10:52:26.000Z",
      "commit": "aef369f40912918d4d8d784626d429538522be60",
      "fileid": "dece5c6ecfb8bdef2ae60e5812b20403cfe365ffb738d3e58b1735083f66f86f",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/tspsyched/actions/runs/26396214058"
    }
  ]
}