Ability tests are typically multiple choice with one right answer. score.multiple.choice takes a scoring key and a data matrix (or data.frame) and finds total or average number right for each participant. Basic test statistics (alpha, average r, item means, item-whole correlations) are also reported.
score.multiple.choice(key, data, score = TRUE, totals = FALSE, ilabels = NULL,
missing = TRUE, impute = "median", digits = 2,short=TRUE,skew=FALSE)
Subject scores on one scale
Number of missing items for each subject
scoring key, response frequencies, item whole correlations, n subjects scored, mean, sd, skew, kurtosis and se for each item
Cronbach's coefficient alpha
Average interitem correlation
A vector of the correct item alternatives
a matrix or data frame of items to be scored.
score=FALSE, just convert to right (1) or wrong (0).
score=TRUE, find the totals or average scores and do item analysis
total=FALSE: find the average number correct
total=TRUE: find the total number correct
item labels
missing=TRUE: missing values are replaced with means or medians
missing=FALSE missing values are not scored
impute="median", replace missing items with the median score
impute="mean": replace missing values with the item mean
How many digits of output
short=TRUE, just report the item statistics,
short=FALSE, report item statistics and subject scores as well
Should the skews and kurtosi of the raw data be reported? Defaults to FALSE because what is the meaning of skew for a multiple choice item?
William Revelle
Basically combines score.items
with a conversion from multiple choice to right/wrong.
The item-whole correlation is inflated because of item overlap.
The example data set is taken from the Synthetic Aperture Personality Assessment personality and ability test at https://www.sapa-project.org/.
score.items
, omega
if(require(psychTools)) {
data(psychTools::iqitems)
iq.keys <- c(4,4,4, 6,6,3,4,4, 5,2,2,4, 3,2,6,7)
score.multiple.choice(iq.keys,psychTools::iqitems)
#just convert the items to true or false
iq.tf <- score.multiple.choice(iq.keys,psychTools::iqitems,score=FALSE)
describe(iq.tf) #compare to previous results
}
Run the code above in your browser using DataLab