Title: | Joint Maximum Likelihood Estimation for High-Dimensional Item Factor Analysis |
---|---|
Description: | Provides constrained joint maximum likelihood estimation algorithms for item factor analysis (IFA) based on multidimensional item response theory models. So far, we provide functions for exploratory and confirmatory IFA based on the multidimensional two parameter logistic (M2PL) model for binary response data. Comparing with traditional estimation methods for IFA, the methods implemented in this package scale better to data with large numbers of respondents, items, and latent factors. The computation is facilitated by multiprocessing 'OpenMP' API. For more information, please refer to: 1. Chen, Y., Li, X., & Zhang, S. (2018). Joint Maximum Likelihood Estimation for High-Dimensional Exploratory Item Factor Analysis. Psychometrika, 1-23. <doi:10.1007/s11336-018-9646-5>; 2. Chen, Y., Li, X., & Zhang, S. (2019). Structured Latent Factor Analysis for Large-scale Data: Identifiability, Estimability, and Their Implications. Journal of the American Statistical Association, <doi: 10.1080/01621459.2019.1635485>. |
Authors: | Siliang Zhang [aut, cre], Yunxiao Chen [aut], Xiaoou Li [aut] |
Maintainer: | Siliang Zhang <[email protected]> |
License: | GPL-3 |
Version: | 1.4.0 |
Built: | 2024-10-31 04:04:06 UTC |
Source: | https://github.com/slzhang-fd/mirtjml |
The dataset contains the simulation setting and the response data.
data_sim
data_sim
An object of class list
of length 9.
Get the number of threads that mirtjml is using
getMIRTthreads()
getMIRTthreads()
The number of threads that mirtjml is using
Constrained joint maximum likelihood estimation for confirmatory item factor analysis on the multidimensional two parameter logistic model.
mirtjml_conf( response, Q, theta0, A0, d0, cc = NULL, tol = 5, print_proc = TRUE )
mirtjml_conf( response, Q, theta0, A0, d0, cc = NULL, tol = 5, print_proc = TRUE )
response |
N by J matrix containing 0/1/NA responses, where N is the number of respondents, J is the number of items, and NA indicates a missing response. |
Q |
J by K matrix containing 0/1 entries, where J is the number of items and K is the number of latent traits. Each entry indicates whether an item measures a certain latent trait. |
theta0 |
N by K matrix, the initial value of latent factor scores for each respondent. |
A0 |
J by K matrix, the initial value of loading matrix, satisfying the constraints given by Q. |
d0 |
Length J vector, the initial value of intercept parameters. |
cc |
A constant constraining the magnitude of the norms of person and item parameter vectors. |
tol |
The tolerance for convergence with a default value 5. |
print_proc |
Print the precision during the estimation procedure with a default value TRUE. |
The function returns a list with the following components:
The estimated person parameter matrix.
The estimated loading parameter matrix
The estimated intercept parameters.
Chen, Y., Li, X., & Zhang, S. (2019). Structured Latent Factor Analysis for Large-scale Data: Identifiability, Estimability, and Their Implications. Journal of the American Statistical Association <doi: 10.1080/01621459.2019.1635485>.
# load a simulated dataset attach(data_sim) # generate starting values for the algorithm A0 <- Q d0 <- rep(0, J) theta0 <- matrix(rnorm(N*K, 0, 1),N) # use all available cores by running # setMIRTthreads(-1) # run the confirmatory analysis res_conf <- mirtjml_conf(response, Q, theta0, A0, d0)
# load a simulated dataset attach(data_sim) # generate starting values for the algorithm A0 <- Q d0 <- rep(0, J) theta0 <- matrix(rnorm(N*K, 0, 1),N) # use all available cores by running # setMIRTthreads(-1) # run the confirmatory analysis res_conf <- mirtjml_conf(response, Q, theta0, A0, d0)
Constrained joint maximum likelihood estimation for exploratory item factor analysis on the multidimensional two parameter logistic model.
mirtjml_expr( response, K, theta0 = NULL, A0 = NULL, d0 = NULL, cc = NULL, tol = 5, print_proc = TRUE, rotation = TRUE )
mirtjml_expr( response, K, theta0 = NULL, A0 = NULL, d0 = NULL, cc = NULL, tol = 5, print_proc = TRUE, rotation = TRUE )
response |
N by J matrix containing 0/1/NA responses, where N is the number of respondents, J is the number of items, and NA indicates a missing response. |
K |
The number of factors in exploratory item factor analysis. |
theta0 |
N by K matrix, the initial value of latent factor scores for each respondent. |
A0 |
J by K matrix, the initial value of loading matrix. |
d0 |
Length J vector, the initial value of intercept parameters. |
cc |
A constant constraining the magnitude of the norms of person and item parameter vectors. |
tol |
The tolerance for convergence with a default value 5. |
print_proc |
Print the precision during the estimation procedure with a default value TRUE. |
rotation |
Perform a geomin to loadings and latent factor scores (for K>1) with a default value TRUE. |
The function returns a list with the following components:
The estimated person parameter matrix.
The estimated loading parameter matrix
The estimated intercept parameters.
Chen, Y., Li, X., & Zhang, S. (2018). Joint Maximum Likelihood Estimation for High-Dimensional Exploratory Item Factor Analysis. Psychometrika, 1-23. <doi:10.1007/s11336-018-9646-5>;
# load a simulated dataset attach(data_sim) # use all available cores by running # setMIRTthreads(-1) # run the exploratory analysis res <- mirtjml_expr(response, K)
# load a simulated dataset attach(data_sim) # use all available cores by running # setMIRTthreads(-1) # run the exploratory analysis res <- mirtjml_expr(response, K)
Set the number of threads that mirtjml should use
setMIRTthreads(threads = NULL)
setMIRTthreads(threads = NULL)
threads |
NULL (default) rereads environment variables. 0 means to use all logical CPUs available. Otherwise a number >= 1 |
The number of threads that mirtjml was using previously