info {irtQ} | R Documentation |
Item and Test Information Function
Description
This function computes item and test information functions (Hambleton et al., 1991) for a given set of theta values.
Usage
info(x, ...)
## Default S3 method:
info(x, theta, D = 1, tif = TRUE, ...)
## S3 method for class 'est_item'
info(x, theta, tif = TRUE, ...)
## S3 method for class 'est_irt'
info(x, theta, tif = TRUE, ...)
Arguments
x |
A data frame containing item metadata (e.g., item parameters,
number of categories, IRT model types, etc.); or an object of class
See |
... |
Further arguments passed to or from other methods. |
theta |
A numeric vector of theta values at which item and test information are computed. |
D |
A scaling constant used in IRT models to make the logistic function closely approximate the normal ogive function. A value of 1.7 is commonly used for this purpose. Default is 1. |
tif |
Logical. If |
Details
This function calculates the amount of statistical information provided by each item (item information function, IIF) and the total test (test information function, TIF) across a range of ability (theta) values. Higher information values at a particular theta level indicate greater measurement precision at that ability level.
The input x
must follow a specific data frame format if not already
an est_irt
or est_item
object. The structure of this data frame
is explained in the documentation of est_irt()
and simdat()
.
Items of different models (e.g., 3PLM, GPCM) can be combined in a single test.
The information is computed for each item appropriately and aggregated for
the TIF if tif = TRUE
. The TIF is often used to assess where the test
provides the most precision, and is critical when designing adaptive tests
or evaluating test coverage across the ability continuum.
The returned object is a list of class "info"
, which contains the item
information matrix and the test information vector. The plot()
method for
info
objects can be used to visualize the IIFs and TIF
(see plot.info()
).
Value
This function returns an object of class info
, which is a list
containing the following components:
iif |
A matrix of item information values. Each row corresponds to an
item, and each column represents the information value computed at a given
theta point. The row names are the item IDs, and the column names indicate
the theta points (e.g., |
tif |
A numeric vector containing the test information values at each
theta value, computed as the sum of item information values across all
items. This component is included only when |
theta |
A numeric vector of theta values at which the item and test
information functions are evaluated. This matches the user-supplied
|
The returned object is of class info
and can be visualized using
the function plot.info()
. This output structure is consistent across
input types (data.frame
, est_item
, est_irt
), and facilitates
downstream plotting, comparison, or export of information function values.
Methods (by class)
-
info(default)
: Default method to compute item and test information functions for a data framex
containing the item metadata. -
info(est_item)
: An object created by the functionest_item()
. -
info(est_irt)
: An object created by the functionest_irt()
.
Author(s)
Hwanggyu Lim hglim83@gmail.com
References
Hambleton, R. K., & Swaminathan, H. (1985) Item response theory: Principles and applications. Boston, MA: Kluwer.
Hambleton, R. K., Swaminathan, H., & Rogers, H. J. (1991) Fundamentals of item response theory. Newbury Park, CA: Sage.
See Also
plot.info()
, shape_df()
, est_irt()
,
est_item()
Examples
## Example 1.
## Using the function `shape_df()` to create a data frame of test metadata
# Create a list of dichotomous item parameters
par.drm <- list(
a = c(1.1, 1.2, 0.9, 1.8, 1.4),
b = c(0.1, -1.6, -0.2, 1.0, 1.2),
g = rep(0.2, 5)
)
# Create a list of polytomous item parameters
par.prm <- list(
a = c(1.4, 0.6),
d = list(c(-1.9, 0.0, 1.2), c(0.4, -1.1, 1.5, 0.2))
)
# Create a numeric vector for the number of score categories for each item
cats <- c(2, 4, 2, 2, 5, 2, 2)
# Create a character vector of IRT model types for each item
model <- c("DRM", "GRM", "DRM", "DRM", "GPCM", "DRM", "DRM")
# Create item metadata using `shape_df()`
test <- shape_df(
par.drm = par.drm, par.prm = par.prm,
cats = cats, model = model
) # create a data frame
# Define a sequence of theta values
theta <- seq(-2, 2, 0.1)
# Compute item and test information values based on theta
info(x = test, theta = theta, D = 1, tif = TRUE)
## Example 2.
## Using a "-prm.txt" file exported from flexMIRT
# Import a sample "-prm.txt" output file from flexMIRT
flex_prm <- system.file("extdata", "flexmirt_sample-prm.txt",
package = "irtQ"
)
# Read item parameters and convert them into item metadata
test_flex <- bring.flexmirt(file = flex_prm, "par")$Group1$full_df
# Define a sequence of theta values
theta <- seq(-2, 2, 0.1)
# Compute item and test information values based on theta
info(x = test_flex, theta = theta, D = 1, tif = TRUE)