@bdelab/jscat
Version:
A library to support IRT-based computer adaptive testing in JavaScript
52 lines (51 loc) • 2.19 kB
TypeScript
import { Stimulus, Zeta } from './type';
/**
* Calculates the probability that someone with a given ability level theta will
* answer correctly an item. Uses the 4 parameters logistic model
*
* @param {number} theta - ability estimate
* @param {Zeta} zeta - item params
* @returns {number} the probability
*/
export declare const itemResponseFunction: (theta: number, zeta: Zeta) => number;
/**
* A 3PL Fisher information function
*
* @param {number} theta - ability estimate
* @param {Zeta} zeta - item params
* @returns {number} - the expected value of the observed information
*/
export declare const fisherInformation: (theta: number, zeta: Zeta) => number;
/**
* Return a Gaussian distribution within a given range
*
* @param {number} mean
* @param {number} stdDev
* @param {number} min
* @param {number} max
* @param {number} stepSize - the quantization (step size) of the internal table, default = 0.1
* @returns {Array<[number, number]>} - a normal distribution
*/
export declare const normal: (mean?: number, stdDev?: number, min?: number, max?: number, stepSize?: number) => Array<[number, number]>;
/**
* Return a uniform distribution within a given range
*
* @param {number} min - lower bound of the uniform distribution
* @param {number} max - upper bound of the uniform distribution
* @param {number} stepSize - the quantization (step size) of the internal table, default = 0.1
* @param {number} fullMin - full range minimum (defaults to min)
* @param {number} fullMax - full range maximum (defaults to max)
* @returns {Array<[number, number]>} - a uniform distribution
*/
export declare const uniform: (min?: number, max?: number, stepSize?: number, fullMin?: number, fullMax?: number) => Array<[number, number]>;
/**
* Find the item in a given array that has the difficulty closest to the target value
*
* @remarks
* The input array of stimuli must be sorted by difficulty.
*
* @param {Stimulus[]} inputStimuli - an array of stimuli sorted by difficulty
* @param {number} target - ability estimate
* @returns {number} the index of stimuli
*/
export declare const findClosest: (inputStimuli: Array<Stimulus>, target: number) => number;