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
Details
Package:
mokken
Type:
Package
Version:
3.1.2
Date:
2024-06-17
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
trog
Scores from children on the clustered items of the Norwegian adaptation of the Test for Reception of Grammar
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 and clustered item 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, Stefanie Wind, 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, Ellen Iren Brinchmann, 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
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., 2020).
Extra argument to indicate which null-hypothesis should be used to test Hi (i.e., Hi = c or Hi = 0)(Koopman et al., 2020).
Extra argument to handle nested data (Koopman et al., 2020).
check.iio
Computation of Coefficient HT for large samples is now much faster.
coefH
New standard errors for nested data (Koopman et al. in press a).
coefZ
Extra argument to compute the Z-score using lowerbound as the null hypothesis (Koopman et al., 2020).
Extra argument to compute Z-score using delta method standard error, but the original method remains available (Koopman et al., 2020).
Extra argument to compute Z-score in nested data (Koopman et al., 2020).
ICC
New function for ICCs in two-level Mokken scale analysis (Koopman et al. in press a)
MLcoefH
Extra argument for weighted proportions. Reduces bias in two-level standard errors (Koopman et al. in press a)
Extra argument for a fixed item-step order
SWMD
New data file (Koopman et al. in press a)
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,et al., in press b)
coefH
Range-preserving confidence intervals added (Koopman et al., in press b)
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., in press b)
Extra argument to print variance-covariance matrices of estimated coefficients
MLcoefZ
New function for z-scores of two-level scalability coefficients (Koopman et al., in press b)
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)
All functions
A warning has been added if items have different numbers of response categories
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 et al., in press a)
All functions
A warning has been added if items have different numbers of response categories
The following modifications have been made in Version 3.1.0 in comparison to previous versions.
check.monotonicity
Condition N > 500 to determined the default value of minsize has been changed to N >= 500 to match the help file.
check.restscore
Condition N > 500 to determined the default value of minsize has been changed to N >= 500 to match the help file.
check.iio
Condition N > 500 to determined the default value of minsize has been changed to N >= 500 to match the help file.
check.iio
For dichtomous items, a z-test is used (rather than a t-test) to test violations of manifest invariant item ordering.
check.iio
For polytomous items, a paired t-test (rather than independent two-sample t-test) is now performed for testing violations of manifest invariant item ordering.
check.monotonicity
Argument level.two.var is added to enable two-level model fit checks (Koopman et al., 2023a,b).
summary.monotonicity.class
Adjusted to handle two-level fit results from check.monotonicity.
plot.monotonicity.class
Adjusted to handle two-level fit results from check.monotonicity.
check.iio
Argument level.two.var is added to enable two-level model fit checks (Koopman et al., 2023a,b).
summary.iio.class
Adjusted to handle two-level fit results from check.iio.
plot.iio.class
Adjusted to handle two-level fit results from check.iio.
The following modifications have been made in Version 3.1.1 in comparison to previous versions.
check.iio
A bug (resulting in an error) that occurred if the sample size was exactly a multiple of 1,000 was fixed.
check.iio
Argument fixed.item.order is added to enable confirmatory analysis of a given item order, and to allow for investigating the ordering structure of clustered items with a given order, see Koopman & Braeken, 2024.
All functions
A tibble class input is now allowed in addition to matrix and data frames.
trog
New data file (Koopman & Braeken, 2024).
The following modifications have been made in Version 3.1.1 in comparison to previous versions.
ICC
The example on the helpfile of the ICC function was updated.
Author(s)
L. Andries van der Ark & L. Koopman Maintainer: L. Andries van der Ark L.A.vanderArk@uva.nl.
References
Koopman, L. & Braeken, J. (2024). Investigating the Ordering Structure of Clustered Items Using Nonparametric Item Response Theory. Manuscript submitted for publication.
Koopman, L., Zijlstra, B. J. H., & Van der Ark, L. A. (2023a). Assumptions and Properties of Two-Level Nonparametric Item Response Theory Models. Manuscript submitted for publication.
Koopman, L., Zijlstra, B. J. H., & Van der Ark, L. A. (2023b). Evaluating Model Fit in Two-Level Mokken Scale Analysis. Psych 5(3), 847-865. tools:::Rd_expr_doi("https://doi.org/10.3390/psych5030056")
Koopman, L., Zijlstra, B. J. H., & Van der Ark, L. A. (2020). 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. (in press a). A two-step, test-guided Mokken scale analysis for nonclustered and clustered data. Quality of Life Research. (advanced online publication) tools:::Rd_expr_doi("10.1007/s11136-021-02840-2")
Koopman, L., Zijlstra, B. J. H., & Van der Ark, L. A. (in press b). Range-preserving confidence intervals and significance tests for scalability coefficients in Mokken scale analysis. In M. Wiberg, D. Molenaar, J. Gonzalez, & Kim, J.-S. (Eds.), Quantitative Psychology; The 1st Online Meeting of the Psychometric Society, 2020. Springer. tools:::Rd_expr_doi("10.1007/978-3-030-74772-5_16")
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. tools:::Rd_expr_doi("10.1111/bmsp.12078")
Sijtsma, K., & Van der Ark, L. A. (2020), Measurement models for psychological attributes.
Van der Ark, L. A. (2012). New developments in Mokken scale analysis in R. Journal of Statistical Software, 48(5), 1-27. tools:::Rd_expr_doi("10.18637/jss.v048.i05")
Examples
# Personality testdata(acl)# Select the items of the scale CommunalityCommunality <- acl[,1:10]# Compute scalability coefficientscoefH(Communality)# Investigate the assumption of monotonicitymonotonicity.list <- check.monotonicity(Communality)summary(monotonicity.list)plot(monotonicity.list)# Investigate the assumption of non-intersecting ISRFs using method restscorerestscore.list <- check.restscore(Communality)summary(restscore.list)plot(restscore.list)# Investigate the assumption of non-intersecting ISRFs using method pmatrixpmatrix.list <- check.pmatrix(Communality)summary(pmatrix.list)plot(pmatrix.list)# Investigate the assumption of IIO using method MIIOiio.list <- check.iio(Communality)summary(iio.list)plot(iio.list)# Compute the reliability of the scalecheck.reliability(Communality)# Partition the the scale into mokken scalesaisp(Communality)