Learn R Programming

ShinyItemAnalysis (version 1.3.3)

ItemAnalysis: Item Analysis

Description

ItemAnalysis function computes various traditional item analysis indices including difficulty, discrimination and item validity. For ordinal items the difficulty and discrimination indices take into account minimal item score as well as range.

Usage

ItemAnalysis(data, y = NULL, k = 3, l = 1, u = 3,
maxscore, minscore, cutscore, add.bin = FALSE)

Arguments

data

matrix or data.frame of items to be examined. Rows represent respondents, columns reperesent items.

y

vector of criterion values.

k

numeric: number of groups to which may be data.frame x divided by the total score. Default value is 3. See Details.

l

numeric: lower group. Default value is 1. See Details.

u

numeric: upper group. Default value is 3. See Details.

maxscore

numeric or vector: maximal score in ordinal items. If missing, vector of obtained maximal scores is imputed. See Details.

minscore

numeric or vector: minimal score in ordinal items. If missing, vector of obtained minimal scores is imputed. See Details.

cutscore

numeric or vector: cut score used for binarization of ordinal data. If missing, vector of maximal scores is imputed. See Details.

add.bin

logical: If TRUE, indices are printed also for binarized data. See Details.

Value

ItemAnalysis function computes various traditional item analysis indices. Output is a data.frame with following columns:

Difficulty

average score of the item divided by its range

Average score

average score of the item

SD

standard deviation of the item score

SD bin

standard deviation of the item score for binarized data

Correct answers

proportion of correct answers

Min score

minimal score specified in minscore; if not provided, observed minimal score

Max score

maximal score specified in maxscore; if not provided, observed maximal score

Obtained min

observed minimal score

Obtained max

observed maximal score

Cut score

cut-score specified in cutscore

ULI

generalized ULI

ULI default

dscrimination with ULI

RIT

correlation between item score and overall test score

RIR

correlation between item score and overall test score

Item criterion

correlation of item score with criterion

Item reliability

item reliability index calculated as cor(item, test)*sqrt(((N-1)/N)*var(item)), see Allen & Yen (1979), Ch.6.4

Item reliability woi

item reliability index (scored without item)

Item validity

item validity index calculated as cor(item, y)*sqrt(((N-1)/N)*var(item)), see Allen & Yen (1979), Ch.6.4

Item criterion

correlation between item and criterion y

Alpha drop

Cronbach's alpha without given item

With add.bin == TRUE, indices based on binarized data set are also provided and marked with bin.

Details

For ordinal items the difficulty and discrimination indices take into account minimal item score as well as range.

For calculation of discimination ULI index, it is possible to specify the number of groups k, and which two groups l and u are to be compared.

In ordinal items, difficulty is calculated as difference of average score divided by range (maximal possible score maxscore minus minimal possible score minscore).

If add.bin is set to TRUE, item analysis of binarized data is included in the output table. In such a case, cutscore is used for binarization. When binarizing the data, values greater or equal to cut-score are set to 1, other values are set to 0.

References

Martinkova, P., Stepanek, L., Drabinova, A., Houdek, J., Vejrazka, M., & Stuka, C. (2017). Semi-real-time analyses of item characteristics for medical school admission tests. In: Proceedings of the 2017 Federated Conference on Computer Science and Information Systems. https://doi.org/10.15439/2017F380

Allen, M. J. & Yen, W. M. (1979). Introduction to measurement theory. Monterey, CA: Brooks/Cole.

See Also

DDplot, gDiscrim

Examples

Run this code
# NOT RUN {
# loading 100-item medical admission test data sets
data(dataMedical, dataMedicalgraded)
# binary data set
dataBin <- dataMedical[, 1:100]
# ordinal data set
dataOrd <- dataMedicalgraded[, 1:100]
# study success is the same for both data sets
StudySuccess <- dataMedical[, 102]

# item analysis for binary data
head(ItemAnalysis(dataBin))
# item analysis for binary data using also study success
head(ItemAnalysis(dataBin, y = StudySuccess))

# item analysis for binary data
head(ItemAnalysis(dataOrd))
# item analysis for binary data using also study success
head(ItemAnalysis(dataOrd, y = StudySuccess))
# including also item analysis for binarized data
head(ItemAnalysis(dataOrd,
  y = StudySuccess, k = 5, l = 4, u = 5,
  maxscore = 4, minscore = 0, cutscore = 4, add.bin = TRUE
))
# }

Run the code above in your browser using DataLab