A toolkit for data-quality diagnostics in reverse correlation experiments. Covers 2IFC (rcicr) and Brief-RC pipelines.
Status: in development. The API is not yet stable and the package is not on CRAN. Distribution is GitHub-only.
A toolkit that runs data-quality diagnostics for reverse correlation experiments. Supports both the standard two-image forced-choice (2IFC) pipeline via the rcicr package (Dotsch, 2016, 2023) and the Brief-RC pipeline (Schmitz, Rougier, & Yzerbyt, 2024). Designed to be run before computing classification images or information values so that silent data-processing errors are caught early.
The diagnostics catch failures that neither base R nor rcicr catches because they live in the match between your response data and the files that generated the stimuli — miscoded responses, misaligned stimulus numbers, mismatched .RData parameter files, malformed noise matrices.
Exported functions fall into three families:
check_*()— individual diagnostics (response coding, stimulus alignment, trial counts, duplicates, response bias, RT, version compatibility, response inversion).compute_*()— summary computations (batch infoVal with flags, RT × infoVal cross-validation).run_diagnostics()— orchestrator that runs the full battery and returns a formatted pass/warn/fail report.
From GitHub (primary):
# install.packages("remotes")
remotes::install_github("olivethree/rcicrdiagnostics")Or with pak:
# install.packages("pak")
pak::pak("olivethree/rcicrdiagnostics")rcicr (Dotsch, 2016) is a Suggests dependency needed only for the 2IFC infoVal-based checks. Brief-RC users do not need it; the Brief-RC infoVal path is intentionally skipped in this package (a proper Brief-RC infoVal implementation is planned for the companion rcicrely). To install rcicr, follow Dotsch's own instructions:
# Stable release (CRAN):
install.packages("rcicr")
# Or latest development version from GitHub:
install.packages("devtools")
devtools::install_github("rdotsch/rcicr")The expected inputs are a response CSV (columns participant_id, stimulus, response, optionally rt; response coding {-1, +1}) plus one auxiliary file per pipeline: an rcicr stimulus .RData for 2IFC, or a space-delimited noise matrix for Brief-RC. See the user's guide for full column specifications.
library(rcicrdiagnostics)
# --- 2IFC ---
responses <- read.csv("path/to/your/responses.csv")
report <- run_diagnostics(
responses,
method = "2ifc",
rdata = "path/to/your/rcicr_stimuli.RData",
col_rt = "rt" # omit if you do not have reaction times
)
print(report)
# --- Brief-RC (12 or 20 alternatives; row format is the same) ---
responses <- read.csv("path/to/your/responses.csv")
report <- run_diagnostics(
responses,
method = "briefrc",
noise_matrix = "path/to/your/noise_matrix.txt",
col_rt = "rt"
)
print(report)The package ships runnable example scripts under inst/examples/ that generate a small synthetic dataset for each pipeline and demonstrate the diagnostic battery end-to-end. They use an AI-generated base face (from thispersondoesnotexist.com; no real person depicted).
library(rcicrdiagnostics)
# Where to put the generated files (default is a tempdir folder).
OUTPUT_DIR <- file.path(getwd(), "rcicrdiag-demo")
# Generate stimuli (~30–60 s) and bogus responses, then run diagnostics
# on each pipeline:
source(system.file("examples", "01_generate_stimuli.R", package = "rcicrdiagnostics"))
source(system.file("examples", "02a_bogus_responses_2ifc.R", package = "rcicrdiagnostics"))
source(system.file("examples", "02b_bogus_responses_briefrc12.R", package = "rcicrdiagnostics"))
source(system.file("examples", "02c_bogus_responses_briefrc20.R", package = "rcicrdiagnostics"))
source(system.file("examples", "03_run_diagnostics_demo.R", package = "rcicrdiagnostics"))See inst/examples/README.md for what each script does, expected runtimes, and the participant "truth tables" that let you confirm the checks flagged the right participants.
A comprehensive walk-through covering installation, data format requirements, every implemented function, and how to interpret the report:
-
Web: https://olivethree.github.io/rcicrdiagnostics/articles/tutorial.html
-
Locally, after installation:
vignette("tutorial", package = "rcicrdiagnostics")
Full function reference: https://olivethree.github.io/rcicrdiagnostics/
Pipeline-specific quickstarts (quickstart-2ifc, quickstart-briefrc)
are planned once the CI-generation–dependent checks land.
If you use rcicrdiagnostics in your research, please cite it as:
Oliveira, M. (2026). rcicrdiagnostics: Data quality diagnostics for reverse correlation experiments in social psychology using the rcicr package (Version 0.1.0) [R package]. Zenodo. https://doi.org/10.5281/zenodo.19734757
The concept DOI above always resolves to the latest version. For citations to a specific release, use the version-specific DOI available on the Zenodo record page. A BibTeX entry and the installed version are available via:
citation("rcicrdiagnostics")Please also cite the methodological sources appropriate to your pipeline:
- 2IFC: Dotsch (2016, 2023) for the
rcicrpackage; Brinkman et al. (2019) for infoVal - Brief-RC: Schmitz, Rougier, and Yzerbyt (2024)
Full references are listed at the end of the tutorial.
Released under the MIT License. See LICENSE (copyright notice) and LICENSE.md (full text).
Manuel Oliveira — https://www.manueloliveira.nl. Development was assisted by Claude (Anthropic); the author is responsible for all content and decisions.