est_ability: Estimate Ability of Examinees

View source: R/ability_estimation.R

est_abilityR Documentation

Estimate Ability of Examinees


est_ability estimates ability using various methods such as Owen's Bayesian estimation, Maximum Likelihood estimation, Expected-a-Posteriori.


  ip = NULL,
  method = c("eap", "ml", "map", "bm", "owen", "sum_score"),
  prior_dist = c("norm", "unif", "lnorm", "gamma", "t", "cauchy"),
  prior_pars = c(0, 1),
  theta_range = c(-5, 5),
  number_of_quads = 41,
  tol = 1e-06,
  output_type = c("list", "data.frame", "tibble")



A Response_set-class, matrix or a data.frame object that holds responses. If there are missing responses, they will not be included in the ability estimation.


An Item-class, Itempool-class or a Testlet-class object. The default value is NULL. If the value is NULL, resp should be a Response_set-class object with a valid Itempool-class.


The method that will be used to estimate the ability. The default value is "eap".

Current methods are:


Basic sum (raw) score of responses.


Owen's Bayesian Ability Estimation.

This estimation method can be used only for dichotomous IRT models, 'Rasch', '1PL', '2PL', '3PL' and '4PL'. Testlets groupings will be ignored and items within testlets will be treated as if they are standalone items.

Formulas were implemented in Owen (1975) and Vale (1977). Original formulation does not contain D parameter. If D = 1 original solution will be obtained. If D = 1.7 the a parameter will be multiplied with this number.

User needs to supply prior parameters, i.e. prior_pars. Prior parameters should be a numeric vector of length two. The first component is prior mean and the second component is prior standard deviation (note that it is NOT prior variance). So, for example, if the prior mean is 0.1 and prior variance is 4, set the prior parameters as prior_pars = c(0.1, 2).


Maximum Likelihood Ability Estimation via Newton-Raphson Algorithm


Expected-a-Posteriori Ability Estimation

'map' or 'bm'

Maximum-a-Posteriori Ability Estimation (or Bayes Modal estimation.) Prior information must be provided for this function. Currently only 'norm' prior distribution is available.


Additional arguments passed to specific methods


The shape of the prior distribution. Currently following distributions can be specified:


Normal distribution


Uniform distribution


t distribution


Cauchy distribution

Default value is 'norm'.


Parameters of the prior distribution. Default value is c(0, 1) where 0 is the mean and 1 is the standard deviation of the default prior distribution which is normal distribution. Also, for example, uniform prior parameter can be set as c(a, b) where a is the minimum value and b is the maximum value. For t distribution, prior parameter can be set as df to represent the degree of freedom. For Cauchy distribution, prior parameters can be set as c(location, scale).

If method is "owen", provide c(<Prior Mean>, <Prior SD>).


The limits of the ability estimation scale. The estimation result will be limited to this interval. The default is c(-5, 5).


Number of quadratures. The default value is 41. As this number increases, the precision of the estimate will also increase. The default value is 41.


The precision level of ability estimate. The final ability estimates will be rounded to remove the precision that is smaller than the tol value. The default value is 1e-06.


A string that specifies the output type of the function. The default value is "list". Available options are:


Function returns a list object with elements est and se.


Function returns a data.frame object with columns examinee_id, est and se


If the tibble package is available, the function returns a tibble object with columns examinee_id, est and se.


est The ability estimated. If the response vector for a subject contains all NAs, then, in order to differentiate all incorrect and all NA, the est returned will be NA.

se The standard error(s) of the ability estimate(s). For "sum_score" method, all of the standard errors will be NA. For Bayesian methods (like EAP or Owen's) this value is the square root of the posterior variance.


Emre Gonulates


Owen, R. J. (1975). A Bayesian sequential procedure for quantal response in the context of adaptive mental testing. Journal of the American Statistical Association, 70(350), 351-356.

Vale, C. D., & Weiss, D. J. (1977). A Rapid Item-Search Procedure for Bayesian Adaptive Testing. Research Report 77-4. Minneapolis, MN.


ip <- generate_ip(n = 7)
resp <- sim_resp(ip, theta = rnorm(3))

### EAP estimation ###
est_ability(resp, ip)
est_ability(resp, ip, number_of_quads = 81)
# The default prior_dist is 'norm'. prior_pars = c(mean, sd)
est_ability(resp, ip, prior_pars = c(0, 3))
# prior_pars = c(min, max)
est_ability(resp, ip, prior_dist = 'unif',  prior_pars = c(-3, 3))
# prior_pars = c(df)
est_ability(resp, ip, prior_dist = 't',  prior_pars = 3)
# prior_pars = c(location, scale)
est_ability(resp, ip, prior_dist = 'cauchy',  prior_pars = c(0, 1))

### MAP estimation (Bayes Modal estimation) ###
est_ability(resp, ip, method = "map")
# The default prior_dist is 'norm'. prior_pars = c(mean, sd)
est_ability(resp, ip, method = "map", prior_pars = c(0, 2))

### Maximum Likelihood estimation ###
est_ability(resp, ip, method = 'ml')
est_ability(resp, ip, method = 'ml', tol = 1e-8)
est_ability(resp = rep(1, length(ip)), ip, method = 'ml')
est_ability(resp = rep(1, length(ip)), ip, method = 'ml',
            theta_range = c(-3, 3))

### Owen's Bayesian ability estimation ###
est_ability(resp, ip, method = 'owen')
est_ability(resp, ip, method = 'owen', prior_pars = c(0, 3))

irt documentation built on Nov. 10, 2022, 5:50 p.m.