Learn R Programming

mirt (version 0.2.6)

confmirt: Confirmatory Full-Information Item Factor Analysis for Mixed Data Formats

Description

confmirt fits a conditional (i.e., confirmatory) full-information maximum-likelihood factor analysis model to dichotomous and polychotomous data under the item response theory paradigm using Cai's (2010) Metropolis-Hastings Robbins-Monro algorithm. If requested, lower asymptote parameters are estimated with a beta prior included automatically.

Usage

confmirt(data, model, guess = 0, upper = 1, estGuess =
    NULL, estUpper = NULL, verbose = TRUE, calcLL = TRUE,
    draws = 2000, returnindex = FALSE, debug = FALSE,
    rotate = 'varimax', Target = NULL, technical = list(),
    ...)

  ## S3 method for class 'confmirt':
coef(object, SE = TRUE, print.gmeans
    = FALSE, digits = 3, ...)

  ## S3 method for class 'confmirt':
summary(object, digits = 3, ...)

  ## S3 method for class 'confmirt':
residuals(object, restype = 'LD',
    digits = 3, printvalue = NULL, ...)

  ## S3 method for class 'confmirt':
anova(object, object2, ...)

  ## S3 method for class 'confmirt':
fitted(object, digits = 3, ...)

Arguments

data
a matrix or data.frame that consists of numerically ordered data
model
an object returned from confmirt.model() declarating how the factor model is to be estimated, or a single numeric value indicating the number of exploratory factors to estimate. See con
guess
initial (or fixed) values for the pseudo-guessing parameter. Can be entered as a single value to assign a global guessing parameter or may be entered as a numeric vector for each item
upper
initial (or fixed) upper bound parameters for 4-PL model. Can be entered as a single value to assign a global upper bound parameter or may be entered as a numeric vector corresponding to each item
estGuess
a logical vector indicating which lower-asymptote parameters to be estimated (default is null, and therefore is contingent on the values in guess). By default, if any value in guess is greater than 0 then its respecti
estUpper
same function as estGuess, but for upper bound parameters
printvalue
a numeric value to be specified when using the res='exp' option. Only prints patterns that have standardized residuals greater than abs(printvalue). The default (NULL) prints all response patterns
verbose
logical; display iteration history during estimation?
calcLL
logical; calculate the log-likelihood via Monte Carlo integration?
draws
the number of Monte Carlo draws to estimate the log-likelihood
restype
type of residuals to be displayed. Can be either 'LD' for a local dependence matrix (Chen & Thissen, 1997) or 'exp' for the expected values for the frequencies of every response pattern
returnindex
logical; return the list containing the item paramter locations? To be used when specifying prior parameter distributions
debug
logical; turn on debugging features?
object
an object of class confmirtClass
object2
an object of class confmirtClass
SE
logical; print standard errors?
print.gmeans
logical; print latent factor means?
digits
the number of significant digits to be rounded
rotate
if model is numeric (indicating an exploratory item FA) then this rotation is used. Default is 'varimax'
Target
a dummy variable matrix indicing a target rotation pattern
technical
list specifying subtle parameters that can be adjusted. These values are [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
...
additional arguments to be passed

Details

confmirt follows a confirmatory item factor analysis strategy that uses a stochastic version of maximum likelihood estimation described by Cai (2010). The general equation used for multidimensional item response theory in this function is in the logistic form with a scaling correction of 1.702. This correction is applied to allow comparison to mainstream programs such as TESTFACT (2003) and POLYFACT. Missing data are treated as 'missing at random' so that each response vector is included in the estimation (i.e., full-information). Residuals are computed using the LD statistic (Chen & Thissen, 1997) in the lower diagonal of the matrix returned by residuals, and Cramer's V above the diagonal. For computing the log-likelihood more accurately see logLik. Specification of the confirmatory item factor analysis model follows many of the rules in the SEM framework for confirmatory factor analysis. The variances of the latent factors are automatically fixed to 1 to help facilitate model identification. All parameters may be fixed to constant values or set equal to other parameters using the appropriate declarations. Guessing parameters may be specified for dichotomous items and are estimated with beta priors automatically, and if a guessing parameter is declared for a polychotomous item it is ignored. coef displays the item parameters with their associated standard errors, while use of summary transforms the slopes into a factor loadings metric. Also, nested models may be compared by using the anova function, where a Chi-squared difference test and AIC/BIC difference values are displayed.

References

Cai, L. (2010). Metropolis-Hastings Robbins-Monro algorithm for confirmatory item factor analysis. Journal of Educational and Behavioral Statistics, 35, 307-335. Chalmers, R., P. (2012). mirt: A Multidimensional Item Response Theory Package for the R Environment. Journal of Statistical Software, 48(6), 1-29. Wood, R., Wilson, D. T., Gibbons, R. D., Schilling, S. G., Muraki, E., & Bock, R. D. (2003). TESTFACT 4 for Windows: Test Scoring, Item Statistics, and Full-information Item Factor Analysis [Computer software]. Lincolnwood, IL: Scientific Software International.

See Also

expand.table, key2binary, simdata, fscores, confmirt.model

Examples

Run this code
#simulate data
a <- matrix(c(
1.5,NA,
0.5,NA,
1.0,NA,
1.0,0.5,
 NA,1.5,
 NA,0.5,
 NA,1.0,
 NA,1.0),ncol=2,byrow=TRUE)

d <- matrix(c(
-1.0,NA,NA,
-1.5,NA,NA,
 1.5,NA,NA,
 0.0,NA,NA,
3.0,2.0,-0.5,
2.5,1.0,-1,
2.0,0.0,NA,
1.0,NA,NA),ncol=3,byrow=TRUE)

sigma <- diag(2)
sigma[1,2] <- sigma[2,1] <- .4
dataset <- simdata(a,d,2000,sigma)

#analyses
#CIFA for 2 factor crossed structure

model.1 <- confmirt.model()
  F1 = 1-4
  F2 = 4-8
  COV = F1*F2


mod1 <- confmirt(dataset,model.1)
coef(mod1)
summary(mod1)
residuals(mod1)

#fix first slope at 1.5, and set slopes 7 & 8 to be equal
model.2 <- confmirt.model()
  F1 = 1-4
  F2 = 4-8
  COV = F1*F2
  SLOPE = F1@1 eq 1.5, F2@7 eq F2@8


mod2 <- confmirt(dataset,model.2)
anova(mod2,mod1)

#####
#bifactor
model.3 <- confmirt.model()
  G = 1-8
  F1 = 1-4
  F2 = 5-8


mod3 <- confmirt(dataset,model.3)
coef(mod3)
summary(mod3)
residuals(mod3)
anova(mod1,mod3)

#####
#polynomial and combinations
model.linear <- confmirt.model()
      F = 1-8


model.quad <- confmirt.model()
      F = 1-8
  (F*F) = 1-8


model.cube <- confmirt.model()
        F = 1-8
    (F*F) = 1-8
  (F*F*F) = 1-8


model.combo <- confmirt.model()
       F1 = 1-4
       F2 = 5-8
  (F1*F2) = 1-8


mod.linear <- confmirt(dataset, model.linear)
mod.quad <- confmirt(dataset, model.quad)
mod.cube <- confmirt(dataset, model.cube)
mod.combo <- confmirt(dataset, model.combo)

anova(mod.linear,mod.quad)
anova(mod.linear,mod.cube)
anova(mod.linear,mod.combo)
anova(mod.cube,mod.combo)

Run the code above in your browser using DataLab