
bfactor
fits a confirmatory maximum likelihood
bi-factor model to dichotomous and polytomous data under
the item response theory paradigm. Fits univariate and
multivariate 1-4PL, graded, (generalized) partial credit,
nominal, multiple choice, and partially compensatory
models using a dimensional reduction EM algorithm so that
regardless of the number of specific factors estimated
the model only uses a two-dimensional quadrature grid for
integration. See confmirt
for appropriate
methods to be used on the objects returned from the
estimation.bfactor(data, model, itemtype = NULL, guess = 0, upper =
1, SE = FALSE, SEtol = .001, pars = NULL, constrain =
NULL, parprior = NULL, calcNull = TRUE, prev.cor =
NULL, quadpts = 20, grsm.block = NULL, rsm.block =
NULL, D = 1.702, verbose = FALSE, debug = FALSE,
technical = list(), ...)
matrix
or data.frame
that
consists of numerically ordered data, with missing data
coded as NA
mirt
for detailsmirt
for detailsmirt
for detailsncol(data)
.SE = TRUE
. Lower values will take
longer but may be more stable for computing the
information matrixmirt
for detailsmirt
for detailsmirt
for detailsmirt
for detailsbfactor
follows the item factor analysis strategy
explicated by Gibbons and Hedeker (1992) and Gibbons et
al. (2007). Nested models may be compared via an
approximate chi-squared difference test or by a reduction
in AIC or BIC (accessible via anova
). See
mirt
for more details regarding the IRT
estimation approach used in this package.Gibbons, R. D., & Hedeker, D. R. (1992). Full-information Item Bi-Factor Analysis. Psychometrika, 57, 423-436.
Gibbons, R. D., Darrell, R. B., Hedeker, D., Weiss, D. J., Segawa, E., Bhaumik, D. K., Kupfer, D. J., Frank, E., Grochocinski, V. J., & Stover, A. (2007). Full-Information item bifactor analysis of graded response data. Applied Psychological Measurement, 31, 4-19
expand.table
, key2binary
,
confmirt
, fscores
,
multipleGroup
, wald
,
fitIndices
###load SAT12 and compute bifactor model with 3 specific factors
data(SAT12)
data <- key2binary(SAT12,
key = c(1,4,5,2,3,1,2,1,3,1,2,4,2,1,5,3,4,4,1,4,3,3,4,1,3,5,1,3,1,5,4,5))
specific <- c(2,3,2,3,3,2,1,2,1,1,1,3,1,3,1,2,1,1,3,3,1,1,3,1,3,3,1,3,2,3,1,2)
mod1 <- bfactor(data, specific)
summary(mod1)
###Try with fixed guessing parameters added
guess <- rep(.1,32)
mod2 <- bfactor(data, specific, guess = guess)
coef(mod2)
#########
#simulate data
a <- matrix(c(
1,0.5,NA,
1,0.5,NA,
1,0.5,NA,
1,0.5,NA,
1,0.5,NA,
1,0.5,NA,
1,0.5,NA,
1,NA,0.5,
1,NA,0.5,
1,NA,0.5,
1,NA,0.5,
1,NA,0.5,
1,NA,0.5,
1,NA,0.5),ncol=3,byrow=TRUE)
d <- matrix(c(
-1.0,NA,NA,
-1.5,NA,NA,
1.5,NA,NA,
0.0,NA,NA,
2.5,1.0,-1,
3.0,2.0,-0.5,
3.0,2.0,-0.5,
3.0,2.0,-0.5,
2.5,1.0,-1,
2.0,0.0,NA,
-1.0,NA,NA,
-1.5,NA,NA,
1.5,NA,NA,
0.0,NA,NA),ncol=3,byrow=TRUE)
items <- rep('dich', 14)
items[5:10] <- 'graded'
sigma <- diag(3)
dataset <- simdata(a,d,2000,itemtype=items,sigma=sigma)
specific <- c(rep(1,7),rep(2,7))
simmod <- bfactor(dataset, specific)
coef(simmod)
Run the code above in your browser using DataLab