onepl_jml
def onepl_jml(dataset, options=None)Estimates parameters in an 1PL IRT Model.
Args
dataset- [items x participants] matrix of True/False Values
options- dictionary with updates to default options
Returns
discrimination- (float) estimate of test discrimination
difficulty- (1d array) estimates of item diffiulties
Options
- max_iteration: int
Expand source code
def onepl_jml(dataset, options=None): """ Estimates parameters in an 1PL IRT Model. Args: dataset: [items x participants] matrix of True/False Values options: dictionary with updates to default options Returns: discrimination: (float) estimate of test discrimination difficulty: (1d array) estimates of item diffiulties Options: * max_iteration: int """ options = validate_estimation_options(options) # Defines item parameter update function def _item_min_func(n_items, alphas, thetas, betas, the_sign, counts): # pylint: disable=cell-var-from-loop def _alpha_min(estimate): # Initialize cost evaluation to zero cost = 0 for ndx in range(n_items): # pylint: disable=cell-var-from-loop scalar = the_sign[ndx, :] * estimate def _beta_min(beta): otpt = 1.0 / (1.0 + np.exp(scalar * (thetas - beta))) return -np.log(otpt).dot(counts) # Solves for the difficulty parameter for a given item at # a specific discrimination parameter betas[ndx] = fminbound(_beta_min, -6, 6) cost += _beta_min(betas[ndx]) return cost min_alpha = fminbound(_alpha_min, 0.25, 5) alphas[:] = min_alpha return alphas, betas result = _jml_abstract(dataset, _item_min_func, discrimination=1, max_iter=options['max_iteration']) return result[0][0], result[1]
Last modified April 7, 2020: Updating documentation. (3da0254)