curveplot
Response Curve Plots for IRT Models
Base graphics plotting function for response curve plot visualization of IRT models.
- Keywords
- aplot
Usage
curveplot(object, ref = NULL, items = NULL, names = NULL,
layout = NULL, xlim = NULL, ylim = c(0, 1), col = NULL,
lty = NULL, main = NULL, xlab = "Latent trait",
ylab = "Probability", add = FALSE, …)
Arguments
- object
a fitted model object of class
"raschmodel"
,"rsmodel"
,"pcmodel"
,"plmodel"
or"gpcmodel"
.- ref
argument passed over to internal calls of
predict
.- items
character or numeric, specifying the items for which response curves should be visualized.
- names
character, specifying labels for the items.
- layout
matrix, specifying how the response curve plots of different items should be arranged.
- xlim, ylim
numeric, specifying the x and y axis limits.
- col
character, specifying the colors of the response curve lines. The length of
col
should be the maximum number of available categories.- lty
numeric, specifying the line type of the response curve lines. The length of
lty
should either be one or the maximum number of available categories. In the first case, a single line type is used for all category response curves. In the latter case, separate line types for each category response curve are used.- main
character, specifying the overall title of the plot.
- xlab, ylab
character, specifying the x and y axis labels.
- add
logical. If
TRUE
, new response curves are added to an existing plot. Only possible when a single item is visualized.- …
further arguments passed to internal calls of
matplot
.
Details
The response curve plot visualization illustrates the predicted probabilities as a function of the ability parameter \(\theta\) under a certain IRT model. This type of visualization is sometimes also called item/category operating curves or item/category characteristic curves.
See Also
Examples
# NOT RUN {
## load verbal aggression data
data("VerbalAggression", package = "psychotools")
## fit Rasch, rating scale and partial credit model to verbal aggression data
rmmod <- raschmodel(VerbalAggression$resp2)
rsmod <- rsmodel(VerbalAggression$resp)
pcmod <- pcmodel(VerbalAggression$resp)
## curve plots of the dichotomous RM
plot(rmmod, type = "curves")
## curve plots under the RSM for the first six items of the data set
plot(rsmod, type = "curves", items = 1:6)
## curve plots under the PCM for the first six items of the data set with
## custom labels
plot(pcmod, type = "curves", items = 1:6, names = paste("Item", 1:6))
## compare the predicted probabilities under the RSM and the PCM for a single
## item
plot(rsmod, type = "curves", item = 1)
plot(pcmod, type = "curves", item = 1, lty = 2, add = TRUE)
legend(x = "topleft", y = 1.0, legend = c("RSM", "PCM"), lty = 1:2, bty = "n")
# }
# NOT RUN {
if(requireNamespace("mirt")) {
## fit 2PL and generaliced partial credit model to verbal aggression data
twoplmod <- plmodel(VerbalAggression$resp2)
gpcmod <- gpcmodel(VerbalAggression$resp)
## curve plots of the dichotomous 2PL
plot(twoplmod, type = "curves", xlim = c(-6, 6))
## curve plots under the GPCM for the first six items of the data set
plot(gpcmod, type = "curves", items = 1:6, xlim = c(-6, 6))
}
# }