est_ability: Estimate Ability of Examinees

View source: R/ability_estimation.R

est_abilityR Documentation

Estimate Ability of Examinees

Description

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

Usage

est_ability(
  resp,
  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")
)

Arguments

resp

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.

ip

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.

method

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

Current methods are:

'sum_score'

Basic sum (raw) score of responses.

'owen'

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).

'ml'

Maximum Likelihood Ability Estimation via Newton-Raphson Algorithm

'eap'

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

prior_dist

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

'norm'

Normal distribution

'unif'

Uniform distribution

't'

t distribution

'cauchy'

Cauchy distribution

Default value is 'norm'.

prior_pars

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>).

theta_range

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

number_of_quads

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.

tol

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.

output_type

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

"list"

Function returns a list object with elements est and se.

"data.frame"

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

"tibble"

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

Value

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.

Author(s)

Emre Gonulates

References

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.

Examples

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.