Mokken scale analysis (Mokken, 1971; Sijtsma & Molenaar, 2002; Sijtsma & Van der Ark, 2017) is a scaling procedure for both dichotomous and polytomous items. It consists of an item selection algorithm to partition a set of items into Mokken scales and several methods to check the assumptions of two nonparametric item response theory models: the monotone homogeneity model and the double monotonicity model. The output of this R-package resembles the output of the stand-alone program MSP (Molenaar & Sijtsma, 2000).
Package: | mokken |
Type: | Package |
Version: | 3.0.4 |
Date: | 2020-12-13 |
License: | GPL Version 2 or later |
The package contains principal functions for Mokken scale analysis.
The package contains the following data sets
acl |
Scores on a personality checklist. |
autonomySupport |
Scores from students on their teacher's autonomy support |
balance |
Scores on balance taskts |
cavalini |
Scores on an inventory on industrial malodor |
DS14 |
Scores on a Type D test (bootstrap sample) |
mcmi |
Scores on some items from the Dutch version of the Millon Clinical Multiaxial Inventory |
SWMD |
Scores from pupils nested in classrooms on their well-being with teachers |
SWMDK |
Scores from pupils nested in classrooms on their well-being with teachers and classmates |
transreas |
Scores on a transitive reasoning test |
transreas2 |
More scores on a transitive reasoning test |
A guide for Mokken scale analysis in R for people who do not know R (Van der Ark, 2010) is available as a vignette from https://sites.google.com/a/tilburguniversity.edu/avdrark/mokken. The Mokken package was created by Andries van der Ark, who is also the maintainer. Significant parts have been developed by Letty Koopman (multilevel analysis) and Don van den Berg and Hendrik Straat (all C and C++ codes). Thanks are due to Michael Allerhand, Geert H. van Kollenburg, Renske E. Kuijpers, Rudy Ligtvoet, Hannah E. M. Oosterhuis, Daniel W. van der Palm, and Max Welz for contributing R code; to Geert H. van Kollenburg, Patrick Mair, and Don van Ravenswaaij for testing the software; to Wijbrandt van Schuur for comments on the vignette; to Michael Allerhand, Stephen Cubbellotti, Michael Dewey, Jasmin Durstin, Wilco H. M. Emons, Jue Huang, Michael Kubovy, Ivo Molenaar, Jonathan Rose, Tobias Schlaffer, Klaas Sijtsma, Iris Smits, Jia Jia Syu, Stefan Vermeent, Roger Watson, Max Welz, and Na Yang for reporting comments or bugs; to Diederick Stoel (ProfitWise) for financial support, to Samantha Bouwmeester, Pierre Cavalini, Johan Denollet, Gina Rossi, Harrie C. M. Vorst, for permission to use their data; to Robert J. Mokken for lending his last name.
Version 0 was introduced in Van der Ark (2007). It included the functions
coefH |
Scalability coefficients |
coefZ |
Test statistics for scalability coefficients |
check.monotonicity |
Investigate monotonicity assumptions |
check.restscore |
Investigate nonintersection assumption using Method Restscore |
check.pmatrix |
Investigate nonintersection assumption using Method Pmatrix |
search.normal |
Mokken's automated item selection algorithm |
The following major modifications have been made.
aisp |
More general automated item selection algorithm. |
Function search has become obsolete (Version 2.0) |
|
check.reliability |
Compute reliability coefficients (Version 2.0) |
check.iio |
Investigate invariant item orderings (Version 2.4) |
coefH |
Standard errors for scalability coefficients included (Version 2.6) |
All updates until version 2.7 are described in Van der Ark (2012). The following modifications have been made in Version 2.7 in comparison to previous versions.
check.errors |
Inclusion new function to compute weighted Guttman errors for each person. |
check.iio |
plot has been added. |
check.monotonicity |
Computation of number of active pairs for dichotomous items has been corrected. |
check.pmatrix |
Summary of the results has been corrected. |
check.restscore |
Code pertaining to IIO has been deleted. The procedure is now equivalent to MSP. |
coefH |
Option included to compare scalability coefficients across groups |
The following modifications have been made in Version 2.7.1 in comparison to previous versions.
mokken |
Some legal issues |
The following modifications have been made in Version 2.7.2 in comparison to previous versions.
check.iio |
Violations of IIO for dichotomous items are now tested using a z-test rather than a t-test. |
The following modifications have been made in Version 2.7.3 in comparison to previous versions.
plot.iio.class |
Confidence envelopes around estimated response functions |
plot.monotonicity.class |
Confidence envelopes around estimated response functions |
plot.restscore.class |
Confidence envelopes around estimated response functions |
The following modifications have been made in Version 2.8.1 in comparison to previous versions.
aisp |
Startsets have been added |
The following modifications have been made in Version 2.8.2 in comparison to previous versions.
recode |
New |
check.ca |
New |
check.norms |
New |
check.errors |
Outlier score O+ has been included |
The following modifications have been made in Version 2.8.3 in comparison to previous versions.
twoway |
New |
DS14 |
New data set |
check.errors |
Outlier cutoff scores have been included |
The following modifications have been made in Version 2.8.4 in comparison to previous versions.
check.iio |
New code for computing HT for large samples |
The following modifications have been made in Version 2.8.5 in comparison to previous versions.
MLcoefH |
New code for computing two-level scalability coefficients and standard errors |
autonomySupport |
New two-level data set. |
The following modifications have been made in Version 2.8.9 and 2.8.10 in comparison to previous versions.
coefH |
Included possibility to include a fixed item-step order |
MLcoefH |
Code updated |
check.errors |
Code updated |
The following modifications have been made in Version 2.8.11 in comparison to previous versions.
plot |
The level of tranparancy of the plotted confidence intervals can be adjusted manually |
MLcoefH |
Code updated |
The following modifications have been made in Version 2.8.12 in comparison to previous versions.
check.monotonicity |
Z statistic adjusted (Molenaar & Sijtsma, 2000. p. 72 ) |
check.norms |
Z Output corrected for nice.output = FALSE |
The following modifications have been made in Version 2.9.0 in comparison to previous versions.
coefH |
Z Solution of Koopman et al. (2017) implemented to solve the problem of equal item steps and code updated |
MLcoefH |
Z Solution of Koopman et al. (2017) implemented to solve the problem of equal item steps and code updated |
The following modifications have been made in Version 3.0.0 in comparison to previous versions.
aisp |
Genetic algorithm has been reprogrammed and is now much faster. |
Argument lowerbound can now be a vector, enabling the investigation of several lower bounds simultaneously. |
|
Extra argument to specify which standard errors should be used in Z-test (Koopman et al., 2020b). | |
Extra argument to indicate which null-hypothesis should be used to test Hi (i.e., Hi = c or Hi = 0)(Koopman et al., 2020b). | |
Extra argument to handle nested data (Koopman et al., 2020b). | |
check.iio |
Computation of Coefficient HT for large samples is now much faster. |
coefH |
New standard errors for nested data (Koopman et al. 2020a). |
coefZ |
Extra argument to compute the Z-score using lowerbound as the null hypothesis (Koopman et al., 2020b). |
Extra argument to compute Z-score using delta method standard error, but the original method remains available (Koopman et al., 2020b). | |
Extra argument to compute Z-score in nested data (Koopman et al., 2020b). | |
ICC |
New function for ICCs in two-level Mokken scale analysis (Koopman et al. 2020a) |
MLcoefH |
Extra argument for weighted proportions. Reduces bias in two-level standard errors (Koopman et al. 2020a) |
Extra argument for a fixed item-step order | |
SWMD |
New data file (Koopman et al. 2020a) |
The following modifications have been made in Version 3.0.3 in comparison to previous versions.
coefZ |
Error handling added |
The delta test uses range-preserving asymptotic theory (Koopman, Zijlstra, & Van der Ark, 2020c) | |
coefH |
Range-preserving confidence intervals added (Koopman et al., 2020c) |
Extra argument to print variance-covariance matrices of estimated coefficients | |
Error handling added for more than 10 response categories | |
MLcoefH |
Range-preserving confidence intervals added (Koopman et al., 2020c) |
Extra argument to print variance-covariance matrices of estimated coefficients | |
MLcoefZ |
New function for z-scores of two-level scalability coefficients (Koopman et al., 2020c) |
aisp |
type.se default adjusted and additional error handling added |
check.errors |
Repaired bug in check.errors |
mcmi |
New data file (Sijtsma & van der Ark, 2020) |
The following modifications have been made in Version 3.0.4 in comparison to previous versions.
aisp |
Argument type.z replaces type.se to accommodate three types of z scores (Mokken's Z, Wald-based, and range-preserving) |
search.normal |
Argument type.z replaces type.se to accommodate three types of z scores (Mokken's Z, Wald-based, and range-preserving) |
coefZ |
Argument type.z replaces type.se to accommodate three types of z scores (Mokken's Z, Wald-based, and range-preserving) |
MLcoefZ |
Argument type.z is added to accommodate two types of z scores (Wald-based and range-preserving) |
coefH |
Argument type.ci is added to accommodate two types of confidence intervals (Wald-based and range-preserving) |
Argument print.to.screen is replaced by results | |
MLcoefH |
Argument type.ci is added to accommodate two types of confidence intervals (Wald-based and range-preserving) |
SWMDK |
New data file (Koopman, Zijlstra, & Van der Ark 2020a) |
Koopman, L. Zijlstra, B. J. H, & Van der Ark, L. A. (2020a). A two-step, test guided Mokken scale analysis for nonclustered and clustered data. Manuscript submitted for publication.
Koopman, L., Zijlstra, B. J. H., & Van der Ark, L. A. (2020b). New advances in Mokken scale analysis. Paper presented at the online meeting of the Psychometric Society, July, 2020.
Koopman, L., Zijlstra, B. J. H., & Van der Ark, L. A. (2020c). Range-preserving confidence intervals for scalability coefficients in Mokken scale analysis. Manuscript in preparation.
Mokken, R. J. (1971) A Theory and Procedure of Scale Analysis. De Gruyter.
Molenaar, I.W., & Sijtsma, K. (2000) User's Manual MSP5 for Windows [Software manual]. IEC ProGAMMA.
Sijtsma, K., & Molenaar, I. W. (2002) Introduction to nonparametric item response theory. Sage.
Sijtsma, K., & Van der Ark, L. A. (2017). A tutorial on how to do a Mokken scale analysis on your test and questionnaire data. British Journal of Mathematical and Statistical Psychology, 70, 137-158. https://doi.org/10.1111/bmsp.12078
Sijtsma, K., & Van der Ark, L. A. (2020), Measurement models for psychological attributes. Boca Raton, FL: Chapman and Hall/CRC Press. https://www.routledge.com/Measurement-Models-for-Psychological-Attributes/Sijtsma-Ark/p/book/9780367424527
Van der Ark, L. A. (2007). Mokken scale analysis in R. Journal of Statistical Software, 20(11), 1-19. https://www.jstatsoft.org/article/view/v020i11
Van der Ark, L. A. (2010). Getting started with Mokken scale analysis in R. Unpuablished manuscript. https://sites.google.com/a/tilburguniversity.edu/avdrark/mokken
Van der Ark, L. A. (2012). New developments in Mokken scale analysis in R. Journal of Statistical Software, 48(5), 1-27. https://www.jstatsoft.org/article/view/v048i05
# NOT RUN {
# Personality test
data(acl)
# Select the items of the scale Communality
Communality <- acl[,1:10]
# Compute scalability coefficients
coefH(Communality)
# Investigate the assumption of monotonicity
monotonicity.list <- check.monotonicity(Communality)
summary(monotonicity.list)
plot(monotonicity.list)
# Investigate the assumption of non-intersecting ISRFs using method restscore
restscore.list <- check.restscore(Communality)
summary(restscore.list)
plot(restscore.list)
# Investigate the assumption of non-intersecting ISRFs using method pmatrix
pmatrix.list <- check.pmatrix(Communality)
summary(pmatrix.list)
plot(pmatrix.list)
# Investigate the assumption of IIO using method MIIO
iio.list <- check.iio(Communality)
summary(iio.list)
plot(iio.list)
# Compute the reliability of the scale
check.reliability(Communality)
# Partition the the scale into mokken scales
aisp(Communality)
# }
Run the code above in your browser using DataLab