Non-parametric item banks

Non-parametric IRT models

Sampled and smoothed item banks

FittedItemBanks.DichotomousPointsItemBank — Type
struct DichotomousPointsItemBank{DomainT} <: PointsItemBank
  • xs::Any

  • ys::Matrix{Float64}

DomainType(::DichotomousPointsItemBank) = DiscreteIndexableDomain()
ResponseType(::DichotomousPointsItemBank) = BooleanResponse()

An item bank where all items have IRFs computed at a fixed grid across the latent/ability dimension specified as xs. The responses are stored in ys. In most cases this item banks will be coupled with a Smoother and wrapped in a DichotomousSmoothedItemBank.

source
FittedItemBanks.DichotomousSmoothedItemBank — Type
struct DichotomousSmoothedItemBank{P<:PointsItemBank, S<:Smoother} <: AbstractItemBank
DichotomousSmoothedItemBank(item_bank::PointsItemBank, smoother::Smother)
DomainType(::DichotomousSmoothedItemBank) = OneDimContinuousDomain()
ResponseType(::DichotomousSmoothedItemBank) = BooleanResponse()
source
FittedItemBanks.KernelSmoother — Type
struct KernelSmoother{FunctionT} <: Smoother
  • kernel::Any

  • bandwidths::Vector{Float64}

A smoother that uses a kernel to smooth the IRF. The bandwidths field stores the kernel bandwidth for each item.

source
FittedItemBanks.MultiGridDichotomousPointsItemBank — Type
struct MultiGridDichotomousPointsItemBank <: PointsItemBank
  • xs::ArraysOfArrays.VectorOfArrays{Float64, 1, 0, Vector{Float64}, Vector{Int64}, Vector{Tuple{}}, SubArray{Float64, 1, Vector{Float64}, Tuple{UnitRange{Int64}}, true}}

  • ys::ArraysOfArrays.VectorOfArrays{Float64, 1, 0, Vector{Float64}, Vector{Int64}, Vector{Tuple{}}, SubArray{Float64, 1, Vector{Float64}, Tuple{UnitRange{Int64}}, true}}

An item bank where all items each IRF has been computed on a potentially distrinct grid across the latent/ability dimension specified as xs. The responses are stored in ys. In most cases this item banks will be coupled with a Smoother and wrapped in a DichotomousSmoothedItemBank.

source
FittedItemBanks.gridify — Method
gridify(item_bank, xs)

Converts a dichotomous item bank item_bank into a gridded item bank by evaluating the items at points xs.

source
FittedItemBanks.DichotomousPointsWithLogsItemBank — Type
struct DichotomousPointsWithLogsItemBank{DomainT} <: PointsItemBank

A DichotomousPointsItemBank (inner_bank) with its tabulated response probabilities precomputed in log-space (log_ys), so that likelihoods over many responses can be accumulated by summation instead of multiplication.

The cache has dimensions (response, grid point, item), with responses ordered as [false, true]. Access it with item_log_ys. The cache is computed at construction; do not mutate the underlying probabilities afterwards. resp_vec evaluates the nearest grid point.

source
FittedItemBanks.item_log_ys — Method
item_log_ys(
    ir::ItemResponse{<:DichotomousPointsWithLogsItemBank}
) -> SubArray{Float64, 2, Array{Float64, 3}, Tuple{Base.Slice{Base.OneTo{Int64}}, Base.Slice{Base.OneTo{Int64}}, Int64}, true}

Return a view of cached log probabilities for an item. Without response, the result is a matrix with rows ordered as [false, true] and columns for grid points. With a Boolean response (or its integer encoding 0/1), return the corresponding vector over grid points.

source