| predictRM {dynConfiR} | R Documentation |
Prediction of Confidence Rating and Reaction Time Distribution in race models of confidence
Description
predictRM_Conf predicts the categorical response distribution of
decision and confidence ratings, predictRM_RT computes the
RT distribution (density) in the independent and partially anti-correlated
race models (Hellmann et al., 2023), given specific parameter
constellations. See RaceModels for more information about the models
and parameters.
Usage
predictRM_Conf(paramDf, model = "IRM", time_scaled = FALSE, maxrt = 15,
subdivisions = 100L, stop.on.error = FALSE, .progress = TRUE)
predictRM_RT(paramDf, model = "IRM", time_scaled = FALSE, maxrt = 9,
subdivisions = 100L, minrt = NULL, scaled = FALSE, DistConf = NULL,
.progress = TRUE)
Arguments
paramDf |
a list or data frame with one row. Column names should match the names of
RaceModels parameter names (only |
model |
character scalar. One of "IRM" or "PCRM". ("IRMt" and "PCRMt" will also be accepted. In that case, time_scaled is set to TRUE.) |
time_scaled |
logical. Whether the confidence measure should be scaled by 1/sqrt(rt). Default: FALSE. (It is set to TRUE, if model is "IRMt" or "PCRMt") |
maxrt |
numeric. The maximum RT for the
integration/density computation. Default: 15 (for |
subdivisions |
|
stop.on.error |
logical. Argument directly passed on to integrate. Default is FALSE, since the densities invoked may lead to slow convergence of the integrals (which are still quite accurate) which causes R to throw an error. |
.progress |
logical. If TRUE (default) a progress bar is drawn to the console. |
minrt |
numeric or NULL(default). The minimum rt for the density computation. |
scaled |
logical. For |
DistConf |
|
Details
The function predictRM_Conf consists merely of an integration of
the response time density, dIRM and dPCRM, over the
response time in a reasonable interval (0 to maxrt). The function
predictRM_RT wraps these density
functions to a parameter set input and a data.frame output.
For the argument paramDf, the output of the fitting function fitRTConf
with the respective model may be used.
The drift rate parameters differ from those used in dIRM/dPCRM
since in many perceptual decision experiments the drift on one accumulator is assumed to
be the negative of the other. The drift rate of the correct accumulator is v (v1, v2,
... respectively) in paramDf.
Value
predictRM_Conf returns a data.frame/tibble with columns: condition, stimulus,
response, rating, correct, p, info, err. p is the predicted probability of a response
and rating, given the stimulus category and condition. info and err refer to the
respective outputs of the integration routine used for the computation.
predictRM_RT returns a data.frame/tibble with columns: condition, stimulus,
response, rating, correct, rt and dens (and densscaled, if scaled=TRUE).
Note
Different parameters for different conditions are only allowed for drift rate,
v, and process variability s. All other parameters are used for all
conditions.
Author(s)
Sebastian Hellmann.
References
Hellmann, S., Zehetleitner, M., & Rausch, M. (2023). Simultaneous modeling of choice, confidence and response time in visual perception. Psychological Review 2023 Mar 13. doi: 10.1037/rev0000411. Epub ahead of print. PMID: 36913292.
Examples
# Examples for "PCRM" model (equivalent applicable for "IRM" model)
# 1. Define some parameter set in a data.frame
paramDf <- data.frame(a=2,b=2, v1=0.5, v2=1, t0=0.1,st0=0,
wx=0.6, wint=0.2, wrt=0.2,
theta1=4)
# 2. Predict discrete Choice x Confidence distribution:
preds_Conf <- predictRM_Conf(paramDf, "PCRM", time_scaled=TRUE)
# equivalent:
preds_Conf <- predictRM_Conf(paramDf, "PCRMt")
head(preds_Conf)
# 3. Compute RT density
preds_RT <- predictRM_RT(paramDf, "PCRMt", maxrt=7, subdivisions=50)
# same output with scaled density column:
preds_RT <- predictRM_RT(paramDf, "PCRMt", maxrt=7, subdivisions=50,
scaled=TRUE, DistConf = preds_Conf)
head(preds_RT)
# produces a warning, if scaled=TRUE and DistConf missing
preds_RT <- predictRM_RT(paramDf, "PCRMt", maxrt=7, subdivisions=50,
scaled=TRUE)
# Example of visualization
library(ggplot2)
preds_Conf$rating <- factor(preds_Conf$rating, labels=c("unsure", "sure"))
preds_RT$rating <- factor(preds_RT$rating, labels=c("unsure", "sure"))
ggplot(preds_Conf, aes(x=interaction(rating, response), y=p))+
geom_bar(stat="identity")+
facet_grid(cols=vars(stimulus), rows=vars(condition), labeller = "label_both")
ggplot(preds_RT, aes(x=rt, color=interaction(rating, response), y=dens))+
geom_line(stat="identity")+
facet_grid(cols=vars(stimulus), rows=vars(condition), labeller = "label_both")+
theme(legend.position = "bottom")
ggplot(aggregate(densscaled~rt+correct+rating+condition, preds_RT, mean),
aes(x=rt, color=rating, y=densscaled))+
geom_line(stat="identity")+
facet_grid(cols=vars(condition), rows=vars(correct), labeller = "label_both")+
theme(legend.position = "bottom")
# Use PDFtoQuantiles to get predicted RT quantiles
# (produces warning because of few rt steps (--> inaccurate calculations))
PDFtoQuantiles(preds_RT, scaled = FALSE)