tam.fa | R Documentation |
Estimates the bifactor model and exploratory factor analysis with marginal maximum likelihood estimation.
This function is simply a wrapper to tam.mml
or
tam.mml.2pl
.
tam.fa(resp, irtmodel, dims=NULL, nfactors=NULL, pid=NULL,
pweights=NULL, verbose=TRUE, control=list(), ...)
resp |
Data frame with polytomous item responses |
irtmodel |
A string which defines the IRT model to be estimated. Options
are |
dims |
A numeric or string vector which only applies in case of
|
nfactors |
A numerical value which indicates the number of factors in exploratory factor analysis. |
pid |
An optional vector of person identifiers |
pweights |
An optional vector of person weights |
verbose |
Logical indicating whether output should
be printed during iterations. This argument replaces |
control |
See |
... |
Further arguments to be passed. These arguments are used in
|
The exploratory factor analysis (irtmodel="efa"
is estimated using an echelon form of the loading matrix and uncorrelated factors.
The obtained standardized loading matrix is rotated using oblimin rotation.
In addition, a Schmid-Leimann transformation (see Revelle & Zinbarg, 2009)
is employed.
The bifactor model (irtmodel="bifactor2"
; Reise 2012)
for dichotomous responses is defined as
logit P(X_{pi}=1 | \theta_{pg}, u_{p1}, \ldots, u_{pD} )=
a_{i0} \theta_{pg} + a_{i1} u_{pd(i) }
Items load on the general factor \theta_{pg}
and a specific (nested)
factor u_{pd(i) }
. All factors are assumed to be uncorrelated.
In the Rasch testlet model (irtmodel="bifactor1"
),
all item slopes are set to 1 and variances are
estimated.
For polytomous data, the generalized partial credit model is used. The loading structure is defined in the same way as for dichotomous data.
The same list entries as in tam.mml
but in addition the
following statistics are included:
B.stand |
Standardized factor loadings of the bifactor model or the exploratory factor analysis. |
B.SL |
In case of exploratory factor analysis ( |
efa.oblimin |
Output from oblimin rotation in exploratory factor analysis which is produced by the GPArotation package |
meas |
Vector of dimensionality and reliability statistics.
Included are the ECV measure (explained common variation;
Reise, Moore & Haviland, 2010; Reise, 2012),
|
Green, S. B., & Yang, Y. (2009). Reliability of summed item scores using structural equation modeling: An alternative to coefficient alpha. Psychometrika, 74, 155-167. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1007/s11336-008-9099-3")}
Reise, S. P. (2012). The rediscovery of bifactor measurement models. Multivariate Behavioral Research, 47(5), 667-696. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1080/00273171.2012.715555")}
Reise, S. P., Moore, T. M., & Haviland, M. G. (2010). Bifactor models and rotations: Exploring the extent to which multidimensional data yield univocal scale scores. Journal of Personality Assessment, 92(6), 544-559. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1080/00223891.2010.496477")}
Revelle, W., & Zinbarg, R. E. (2009). Coefficients alpha, beta, omega and the glb: Comments on Sijtsma. Psychometrika, 74(1), 145-154. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1007/s11336-008-9102-z")}
Wang, W.-C., & Wilson, M. (2005). The Rasch testlet model. Applied Psychological Measurement, 29(2), 126-149. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1177/0146621604271053")}
For more details see tam.mml
because tam.fa
is just
a wrapper for tam.mml.2pl
and tam.mml
.
logLik.tam
, anova.tam
## Not run:
#############################################################################
# EXAMPLE 1: Dataset reading from sirt package
#############################################################################
data(data.read,package="sirt")
resp <- data.read
#***
# Model 1a: Exploratory factor analysis with 2 factors
mod1a <- TAM::tam.fa( resp=resp, irtmodel="efa", nfactors=2 )
summary(mod1a)
# varimax rotation
stats::varimax(mod1a$B.stand)
# promax rotation
stats::promax(mod1a$B.stand)
# more rotations are included in the GPArotation package
library(GPArotation)
# geomin rotation oblique
GPArotation::geominQ( mod1a$B.stand )
# quartimin rotation
GPArotation::quartimin( mod1a$B.stand )
#***
# Model 1b: Rasch testlet model with 3 testlets
dims <- substring( colnames(resp),1,1 ) # define dimensions
mod1b <- TAM::tam.fa( resp=resp, irtmodel="bifactor1", dims=dims )
summary(mod1b)
#***
# Model 1c: Bifactor model
mod1c <- TAM::tam.fa( resp=resp, irtmodel="bifactor2", dims=dims )
summary(mod1c)
#***
# Model 1d: reestimate Model 1c but assume that items 3 and 5 do not load on
# specific factors
dims1 <- dims
dims1[c(3,5)] <- NA
mod1d <- TAM::tam.fa( resp=resp, irtmodel="bifactor2", dims=dims1 )
summary(mod1d)
#############################################################################
# EXAMPLE 2: Polytomous data
#############################################################################
data(data.timssAusTwn.scored, package="TAM")
dat <- data.timssAusTwn.scored
resp <- dat[, grep("M0", colnames(dat))]
#***
# Model 1a: Rasch testlet model with 2 testlets
dims <- c( rep(1,5), rep(2,6))
mod1a <- TAM::tam.fa( resp=resp, irtmodel="bifactor1", dims=dims )
summary(mod1a)
#***
# Model 1b: Bifactor model
mod1b <- TAM::tam.fa( resp=resp, irtmodel="bifactor2", dims=dims )
summary(mod1b)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.