Hierarchical Signal Detection Theory Models for Unconscious Processing

Fits hierarchical signal detection theory (SDT) models to paired awareness and influence measures in research on unconscious processing. Estimates mean sensitivities, their latent correlation and influence sensitivity at zero awareness sensitivity, using maximum likelihood with 'lme4' or Bayesian inference with 'brms'. Provides Bayes factors, equivalence tests, reliability estimates and study planning for power, precision and cost.


uSDT uSDT logo

CRAN status CRAN downloads R-CMD-check pkgdown Codecov test coverage

uSDT fits hierarchical signal detection theory models to paired awareness and influence measures. It compares mean sensitivities, estimates their latent association and tests influence sensitivity at zero awareness sensitivity. It supports maximum likelihood and Bayesian estimation, Bayes factors and study planning for power, precision, cost and detectable effects.

Documentation

Visit the documentation for the package:

The CRAN release may have an older API.

Installation

Install the released version from CRAN:

install.packages("uSDT")

Or install the development version from GitHub:

# install.packages("pak")
pak::pak("RicardoReySaez/uSDT@dev")

The development version installs brms. Bayesian fitting also needs a C++ toolchain and either rstan with BH and RcppEigen, or cmdstanr with CmdStan.

Example: Vadillo et al. data

The examples below require uSDT 0.2.0 or later.

The package includes the two trial-level data frames from Experiment 2 of Vadillo et al. (2025): vadillo_awareness for the awareness task and vadillo_cuing for the influence task.

library(uSDT)

data(vadillo_awareness)
data(vadillo_cuing)

d <- usdt_data_tasks(
  awareness = vadillo_awareness,
  influence = vadillo_cuing,
  subject_col = "subj",
  condition_col = "condition",
  condition_levels = c(signal = "old", noise = "new"),
  response_col = list(awareness = "judged.old", influence = "rt"),
  response_levels = list(
    awareness = c(signal = 1, noise = 0),
    influence = c(signal = "faster", noise = "slower")
  ),
  dichotomize = list(awareness = FALSE, influence = TRUE)
)

fit <- hsdt(d)
summary(fit)

# The same model with brms, and Bayes factors for the three hypotheses
fit_bayes <- hsdt(d, estimation = "bayesian")
summary(fit_bayes)
usdt_bf(fit_bayes)

Column, level and format arguments take a shared value or task-specific values as list(awareness = ..., influence = ...).

The source data are from Vadillo, Malejka, and Shanks (2025), Mapping the reliability multiverse of contextual cuing, doi:10.1037/xlm0001410.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("uSDT")

0.2.0 by Ricardo Rey-Sáez, 8 days ago


https://github.com/RicardoReySaez/uSDT, https://ricardoreysaez.github.io/uSDT/


Report a bug at https://github.com/RicardoReySaez/uSDT/issues


Browse source code at https://github.com/cran/uSDT


Authors: Ricardo Rey-Sáez [aut, cre] (ORCID: , Francisco Garre-Frutos [aut] (ORCID: , Alicia Franco-Martínez [aut] (ORCID: , Miguel Vadillo [aut]


Documentation:   PDF Manual  


GPL-3 license


Imports grid, parallel, stats, utils, lme4, ggplot2, gtable, rlang, brms, posterior, logspline, callr, cli, withr

Suggests testthat, knitr, rmarkdown, BH, RcppEigen, cmdstanr

System requirements: C++17 compiler (for Bayesian model compilation)


See at CRAN