View source: R/model_sdt_rating.R
| sdt_rating | R Documentation |
Confidence Rating Signal Detection Theory Model
sdt_rating(
response,
stimulus,
dist = c("normal", "gumbel_min", "gumbel_max", "logistic"),
threshold_type = c("parsimonious", "equidistant", "log_distance", "log_ratio",
"softmax"),
version = c("standard", "dpsdt", "metad"),
links = NULL,
...
)
response |
A character vector of K column names containing response counts per rating category, ordered from "definitely noise" to "definitely signal". |
stimulus |
The name of the variable coding the stimulus type. Must be coded as 0 (noise/new) and 1 (signal/old). |
dist |
The distribution assumed for the latent evidence, given here by its cumulative distribution function. One of:
|
threshold_type |
Character. Threshold parameterization:
|
version |
Character. The latent-process version of the rating model.
One of |
links |
A named list of link functions for the parameters, e.g.
|
... |
used internally for testing, ignore it |
Three versions share the confidence-rating response interface,
selected with version:
standard (default)Domain: Perception & Recognition Memory
Task: Signal/Noise or Old/New Recognition
Name: Signal Detection Theory (Confidence Rating)
Citation:
Green, D. M., & Swets, J. A. (1966). Signal detection theory and psychophysics. Wiley.
Version: standard
Requirements:
Provide pre-aggregated data with the following columns:
Response counts: one column per rating category (K columns)
Stimulus type (stimulus): 0 = noise, 1 = signal Categories should be ordered: 1 = 'definitely noise' to K = 'definitely signal'
Parameters:
d: Sensitivity: d' under equal variance (the default). When sdratio is estimated, d is d_a, the distance between the signal and noise distributions in units of their root-mean-square SD
criterion: Decision criterion, measured from the mean of the noise distribution in noise-SD units: the middle threshold (the old/new boundary) for an even number of categories, the centre of the middle category for an odd number
bias: Alternative to criterion: the same middle threshold measured from the midpoint between the noise and signal means (0 = neutral, positive = conservative). Use one of the two
spacing: Threshold spacing: controls distance between adjacent thresholds (exp(spacing) ensures positive spacing)
sdratio: Log SD ratio: the log of the signal-to-noise standard deviation ratio, so exp(sdratio) is the ratio itself and 0 means equal variance
Fixed parameters:
sdratio = 0
Default parameter links:
d = identity; criterion = identity; bias = identity; spacing = identity; sdratio = identity
Default priors:
d:
main: normal(1, 1)
effects: normal(0, 0.5)
sd: exponential(1)
criterion:
main: normal(0.5, 1.5)
effects: normal(0, 0.5)
sd: exponential(1)
bias:
main: normal(0, 1.5)
effects: normal(0, 0.5)
sd: exponential(2)
spacing:
main: normal(0, 0.5)
effects: normal(0, 0.3)
sd: exponential(2)
sdratio:
main: normal(0, 0.3)
effects: normal(0, 0.3)
sd: exponential(2)
dpsdtDual-process SDT (Yonelinas, 1994): a familiarity SDT process plus an
all-or-none recollection process that loads the most-confident category.
Ro is recollection of old items (loads the most-confident "signal"
category), the only recollection term of the classic model; Rn is
recall-to-reject of new items (loads the most-confident "noise" category),
the two-sided extension that Yonelinas (2024) applies to visual working
memory. inv_logit(Ro)/inv_logit(Rn) are the recollection
probabilities. Both are fixed off by default
(recovering standard); add Ro ~ 1 for the one-sided model and
Ro ~ 1, Rn ~ 1 for the two-sided model. d describes the familiarity
distributions only – the observed ROC is a mixture of familiarity and
recollection, so it is not the discriminability of that mixture.
summary() reports Ro and Rn on the logit scale; latent_sdt()
returns them as probabilities (attribute extra).
Two cautions. Freeing sdratio alongside Ro is weakly identified from
a single ROC: in simulation the two are correlated at about -0.8 in the
posterior and Ro is pulled down while exp(sdratio) is pulled above 1;
keep the familiarity process equal-variance unless the design separates
them. And a recollection probability near zero is reported as the tail of
its prior: on the probability scale the interval cannot include 0, so the
test of "no recollection" is a comparison with the fit that leaves the
parameter fixed off, not the interval.
Domain: Perception & Recognition Memory
Task: Signal/Noise or Old/New Recognition
Name: Signal Detection Theory (Confidence Rating)
Citation:
Yonelinas, A. P. (1994). Receiver-operating characteristics in recognition memory: Evidence for a dual-process model. Journal of Experimental Psychology: Learning, Memory, and Cognition, 20(6), 1341-1354. https://doi.org/10.1037/0278-7393.20.6.1341
Yonelinas, A. P. (2024). The role of recollection and familiarity in visual working memory: A mixture of threshold and signal detection processes. Psychological Review, 131(2), 321-348. https://doi.org/10.1037/rev0000432
Version: dpsdt
Requirements:
Provide pre-aggregated data with the following columns:
Response counts: one column per rating category (K columns)
Stimulus type (stimulus): 0 = noise, 1 = signal Categories should be ordered: 1 = 'definitely noise' to K = 'definitely signal'
Parameters:
d: Sensitivity: d' under equal variance (the default). When sdratio is estimated, d is d_a, the distance between the signal and noise distributions in units of their root-mean-square SD
criterion: Decision criterion, measured from the mean of the noise distribution in noise-SD units: the middle threshold (the old/new boundary) for an even number of categories, the centre of the middle category for an odd number
bias: Alternative to criterion: the same middle threshold measured from the midpoint between the noise and signal means (0 = neutral, positive = conservative). Use one of the two
spacing: Threshold spacing: controls distance between adjacent thresholds (exp(spacing) ensures positive spacing)
sdratio: Log SD ratio: the log of the signal-to-noise standard deviation ratio, so exp(sdratio) is the ratio itself and 0 means equal variance
Ro: Recollection of old items: probability inv_logit(Ro) that an old item is recollected as old, loading the most-confident 'signal' category
Rn: Recollection of new items: probability inv_logit(Rn) that a new item is recall-rejected, loading the most-confident 'noise' category
Fixed parameters:
sdratio = 0
Ro = -100
Rn = -100
Default parameter links:
d = identity; criterion = identity; bias = identity; spacing = identity; sdratio = identity; Ro = identity; Rn = identity
Default priors:
d:
main: normal(1, 1)
effects: normal(0, 0.5)
sd: exponential(1)
criterion:
main: normal(0.5, 1.5)
effects: normal(0, 0.5)
sd: exponential(1)
bias:
main: normal(0, 1.5)
effects: normal(0, 0.5)
sd: exponential(2)
spacing:
main: normal(0, 0.5)
effects: normal(0, 0.3)
sd: exponential(2)
sdratio:
main: normal(0, 0.3)
effects: normal(0, 0.3)
sd: exponential(2)
Ro:
main: normal(0, 1)
effects: normal(0, 0.5)
sd: exponential(1)
Rn:
main: normal(0, 1)
effects: normal(0, 0.5)
sd: exponential(1)
metadMeta-d' (Maniscalco & Lau, 2012): a type-2 metacognitive sensitivity governs
confidence-threshold placement, with the total "old"/"new" response rates
held to what type-1 d implies. Rather than estimating meta-d'
directly, the model estimates logmratio, the log M-ratio
\log(\mathrm{meta\text{-}d'}/d'), and recovers meta-d' as
exp(logmratio) * d. The M-ratio is the field-standard measure of
metacognitive efficiency (Maniscalco & Lau, 2012; Fleming, 2017): estimating
it on the log scale keeps meta-d' positive, regularizes it toward d,
and anchors the ideal point (meta-d' = d, perfect metacognition) at
logmratio = 0, which recovers standard. Type-1 and type-2 sensitivity
share one scale (d', or d_a when sdratio is estimated), so the
M-ratio is unaffected by sdratio.
The type-1 boundary is the middle threshold (criterion or bias), so this
version needs an even number of rating categories: with an odd number the
middle category straddles the boundary (see "Where criterion and bias
sit").
Every threshold keeps its distance from the midpoint between the means when
d is replaced by meta-d', as the HMeta-d toolbox's model equations do
(Fleming, 2017, Appendix). Whether the formula estimates criterion or
bias changes how the type-1 boundary is parameterized, not this
constraint.
Maximum-likelihood meta-d' instead constrains meta-c' = c' (Maniscalco &
Lau, 2014), so its estimates differ from bmm's when the criterion is far
from the midpoint.
Extract the M-ratio posterior with mratio().
Domain: Perception & Recognition Memory
Task: Signal/Noise or Old/New Recognition
Name: Signal Detection Theory (Confidence Rating)
Citation:
Maniscalco, B., & Lau, H. (2012). A signal detection theoretic approach for estimating metacognitive sensitivity from confidence ratings. Consciousness and Cognition, 21(1), 422-430. https://doi.org/10.1016/j.concog.2011.09.021
Version: metad
Requirements:
Provide pre-aggregated data with the following columns:
Response counts: one column per rating category (K columns)
Stimulus type (stimulus): 0 = noise, 1 = signal Categories should be ordered: 1 = 'definitely noise' to K = 'definitely signal'
Parameters:
d: Sensitivity: d' under equal variance (the default). When sdratio is estimated, d is d_a, the distance between the signal and noise distributions in units of their root-mean-square SD
criterion: Decision criterion, measured from the mean of the noise distribution in noise-SD units: the middle threshold (the old/new boundary) for an even number of categories, the centre of the middle category for an odd number
bias: Alternative to criterion: the same middle threshold measured from the midpoint between the noise and signal means (0 = neutral, positive = conservative). Use one of the two
spacing: Threshold spacing: controls distance between adjacent thresholds (exp(spacing) ensures positive spacing)
sdratio: Log SD ratio: the log of the signal-to-noise standard deviation ratio, so exp(sdratio) is the ratio itself and 0 means equal variance
logmratio: Log M-ratio, log(meta-d/d): metacognitive efficiency. 0 is ideal metacognition (meta-d = d), negative is inefficiency, positive is hyper-efficiency. meta-d is recovered as exp(logmratio) * d, on the same scale as d
Fixed parameters:
sdratio = 0
Default parameter links:
d = identity; criterion = identity; bias = identity; spacing = identity; sdratio = identity; logmratio = identity
Default priors:
d:
main: normal(1, 1)
effects: normal(0, 0.5)
sd: exponential(1)
criterion:
main: normal(0.5, 1.5)
effects: normal(0, 0.5)
sd: exponential(1)
bias:
main: normal(0, 1.5)
effects: normal(0, 0.5)
sd: exponential(2)
spacing:
main: normal(0, 0.5)
effects: normal(0, 0.3)
sd: exponential(2)
sdratio:
main: normal(0, 0.3)
effects: normal(0, 0.3)
sd: exponential(2)
logmratio:
main: normal(0, 0.5)
effects: normal(0, 0.3)
sd: exponential(2)
By default, the model assumes equal variance (sdratio fixed to 0). To
estimate unequal variance, add sdratio ~ 1 (or sdratio ~ predictors)
to the formula.
An object of class bmmodel
sdt_yn()d is d' whenever sdratio stays fixed at 0, which is every fit
that does not give sdratio a formula. With sdratio estimated, d is the
balanced index d_a that sdt_yn() reports: the separation between the
signal and noise distributions divided by the root-mean-square of their SDs.
Unlike the noise-standardized d', it remains comparable across
conditions that differ in sdratio; see the sensitivity section of
sdt_yn() for the reasoning, for how far the two indices lie apart, and for
the caveat that under the Gumbel distributions d_a is not the
AUC-equivalent index once sdratio is estimated.
The criterion and the confidence thresholds are not rescaled. They stay
on the noise-standardized axis, so under unequal variance they and d are
in different units.
The dpsdt and metad versions inherit the same convention: d there
describes the familiarity (type-1) distributions, and meta-d' is scaled the
same way, which leaves the M-ratio invariant to sdratio.
criterion and bias sitEvery threshold_type places the criterion the same way. With an even
number of categories K it is the middle threshold, the boundary between the
K/2 "noise" categories and the K/2 "signal" categories. With an odd number
there is no such boundary – the middle category straddles it – so the
criterion is the centre of that category, and the two thresholds around it
sit half an interval below and above. A shift in the criterion therefore
moves the whole threshold set, and the threshold parameters (spacing,
delta) describe its shape around that point.
As in sdt_yn(), the formula estimates that point either as criterion,
measured from the mean of the noise distribution, or as bias, measured
from the midpoint between the noise and signal means (bias = criterion - d * sqrt((1 + exp(sdratio)^2) / 2) / 2); a formula that names neither
estimates criterion ~ 1. The two differ in what a linear formula holds
constant when d or sdratio varies; the section "Choosing between
criterion and bias" of sdt_yn() says which to choose. Threshold locations reported by
sdt_thresholds() and latent_sdt(), and the thresholds taken by
rsdt_rating() and its siblings, are positions measured from the noise
mean.
sdratioUnlike sdt_yn(), a rating design identifies sdratio from a single
condition: the K - 1 thresholds give K - 1 operating points per condition,
which trace the ROC; under dist = "normal" its z-transform is a line with
slope 1 / exp(sdratio). sdratio ~ 1 on a one-condition dataset is
identified from K = 3 categories, where it uses every degree of freedom
(the fit is saturated), and leaves the zROC testable from K = 4; the
identification caveats on the sdt_yn() page do not carry over.
Yonelinas, A. P. (1994). Receiver-operating characteristics in recognition memory: Evidence for a dual-process model. Journal of Experimental Psychology: Learning, Memory, and Cognition, 20(6), 1341–1354.
Yonelinas, A. P. (2024). The role of recollection and familiarity in visual working memory: A mixture of threshold and signal detection processes. Psychological Review, 131(2), 321–348. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1037/rev0000432")}
Maniscalco, B., & Lau, H. (2012). A signal detection theoretic approach for estimating metacognitive sensitivity from confidence ratings. Consciousness and Cognition, 21(1), 422–430.
Maniscalco, B., & Lau, H. (2014). Signal detection theory analysis of type 1 and type 2 data: meta-d', response-specific meta-d', and the unequal variance SDT model. In S. M. Fleming & C. D. Frith (Eds.), The cognitive neuroscience of metacognition (pp. 25–66). Springer.
Fleming, S. M. (2017). HMeta-d: hierarchical Bayesian estimation of metacognitive efficiency from confidence ratings. Neuroscience of Consciousness, 2017(1), nix007. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1093/nc/nix007")}
Green, D. M., & Swets, J. A. (1966). Signal detection theory and psychophysics. Wiley.
Selker, R., van den Bergh, D., Criss, A. H., & Wagenmakers, E.-J. (2019). Parsimonious estimation of signal detection models from confidence ratings. Behavior Research Methods, 51(5), 1953–1967. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.3758/s13428-019-01231-3")}
Paulewicz, B., & Blaut, A. (2022). The general causal cumulative model of ordinal response. PsyArXiv. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.31234/osf.io/e7a3x")}
## Not run:
# EV-SDT rating model
dat <- expand.grid(id = 1:20, stimulus = c(0L, 1L))
dat <- cbind(dat, rsdt_rating(nrow(dat), 200, dat$stimulus,
d = 1.5, thresholds = c(0.25, 0.75, 1.25)))
model <- sdt_rating(
response = c("r1", "r2", "r3", "r4"),
stimulus = "stimulus"
)
fit <- bmm(
formula = bmf(d ~ 1, criterion ~ 1, spacing ~ 1),
data = dat,
model = model,
cores = 4,
backend = "cmdstanr"
)
# UV-SDT: add sdratio to the formula
fit_uv <- bmm(
formula = bmf(d ~ 1, criterion ~ 1, spacing ~ 1, sdratio ~ 1),
data = dat,
model = model,
cores = 4,
backend = "cmdstanr"
)
# Dual-process SDT: free recollection of old items (one-sided) or both
# old and new items (two-sided) via the formula
model_dp <- sdt_rating(c("r1", "r2", "r3", "r4"), "stimulus", version = "dpsdt")
fit_dp <- bmm(bmf(d ~ 1, criterion ~ 1, spacing ~ 1, Ro ~ 1, Rn ~ 1),
data = dat, model = model_dp, backend = "cmdstanr")
# Meta-d': estimate metacognitive efficiency (log M-ratio)
model_md <- sdt_rating(c("r1", "r2", "r3", "r4"), "stimulus", version = "metad")
fit_md <- bmm(bmf(d ~ 1, criterion ~ 1, spacing ~ 1, logmratio ~ 1),
data = dat, model = model_md, backend = "cmdstanr")
mratio(fit_md) # posterior M-ratio (meta-d'/d')
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.