Package 'mirtjml'

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

Help Index


Simulated dataset for item factor analysis on the multidimensional two parameter logistic model.

Description

The dataset contains the simulation setting and the response data.

Usage

data_sim

Format

An object of class list of length 9.


Get the number of threads that mirtjml is using

Description

Get the number of threads that mirtjml is using

Usage

getMIRTthreads()

Value

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.

Description

Constrained joint maximum likelihood estimation for confirmatory item factor analysis on the multidimensional two parameter logistic model.

Usage

mirtjml_conf(
  response,
  Q,
  theta0,
  A0,
  d0,
  cc = NULL,
  tol = 5,
  print_proc = TRUE
)

Arguments

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.

Value

The function returns a list with the following components:

theta_hat

The estimated person parameter matrix.

A_hat

The estimated loading parameter matrix

d_hat

The estimated intercept parameters.

References

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>.

Examples

# 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.

Description

Constrained joint maximum likelihood estimation for exploratory item factor analysis on the multidimensional two parameter logistic model.

Usage

mirtjml_expr(
  response,
  K,
  theta0 = NULL,
  A0 = NULL,
  d0 = NULL,
  cc = NULL,
  tol = 5,
  print_proc = TRUE,
  rotation = TRUE
)

Arguments

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.

Value

The function returns a list with the following components:

theta_hat

The estimated person parameter matrix.

A_hat

The estimated loading parameter matrix

d_hat

The estimated intercept parameters.

References

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>;

Examples

# 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

Description

Set the number of threads that mirtjml should use

Usage

setMIRTthreads(threads = NULL)

Arguments

threads

NULL (default) rereads environment variables. 0 means to use all logical CPUs available. Otherwise a number >= 1

Value

The number of threads that mirtjml was using previously