predictRM | R Documentation |
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.
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)
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 |
|
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
.
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
).
Different parameters for different conditions are only allowed for drift rate,
v
, and process variability s
. All other parameters are used for all
conditions.
Sebastian Hellmann.
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 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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.