Functional Unidimensional Item Response Model
Estimates the functional unidimensional item response model for dichotomous data (Ip, Molenberghs, Chen, Goegebeur & De Boeck, 2013). Either the IRT model is estimated using a probit link and employing tetrachoric correlations or item discriminations and intercepts of a pre-estimated multidimensional IRT model are provided as input.
f1d.irt(dat=NULL, nnormal=1000, nfactors=3, A=NULL, intercept=NULL, mu=NULL, Sigma=NULL, maxiter=100, conv=10^(-5), progress=TRUE)
dat |
Data frame with dichotomous item responses |
nnormal |
Number of θ_p grid points for approximating the normal distribution |
nfactors |
Number of dimensions to be estimated |
A |
Matrix of item discriminations (if the IRT model is already estimated) |
intercept |
Vector of item intercepts (if the IRT model is already estimated) |
mu |
Vector of estimated means. In the default it is assumed that all means are zero. |
Sigma |
Estimated covariance matrix. In the default it is the identity matrix. |
maxiter |
Maximum number of iterations |
conv |
Convergence criterion |
progress |
Display progress? The default is |
The functional unidimensional item response model (F1D model) for dichotomous item responses is based on a multidimensional model with a link function g (probit or logit):
P( X_{pi}=1 | \bold{θ}_p )= g( ∑_d a_{id} θ_{pd} - d_i )
It is assumed that \bold{θ}_p is multivariate normally distribution with a zero mean vector and identity covariance matrix.
The F1D model estimates unidimensional item response functions such that
P( X_{pi}=1 | θ_p^\ast ) \approx g ≤ft( a_{i}^\ast θ_{p}^\ast - d_i^\ast \right)
The optimization function F minimizes the deviations of the approximation equations
a_{i}^\ast θ_{p}^\ast - d_i^\ast \approx ∑_d a_{id} θ_{pd} - d_i
The optimization function F is defined by
F( \{ a_i^\ast, d_i^\ast \}_i, \{ θ_p^\ast \}_p )= ∑_p ∑_i w_p ( a_{id} θ_{pd} - d_i- a_{i}^\ast θ_{p}^\ast + d_i^\ast )^2 \rightarrow Min!
All items i are equally weighted whereas the ability distribution of persons p are weighted according to the multivariate normal distribution (using weights w_p). The estimation is conducted using an alternating least squares algorithm (see Ip et al. 2013 for a different algorithm). The ability distribution θ_p^\ast of the functional unidimensional model is assumed to be standardized, i.e. does have a zero mean and a standard deviation of one.
A list with following entries:
item |
Data frame with estimated item parameters: Item intercepts
for the functional unidimensional a_{i}^\ast ( |
person |
Data frame with estimated θ_p^\ast
distribution. Locations are |
A |
Estimated or provided item discriminations |
intercept |
Estimated or provided intercepts |
dat |
Used dataset |
tetra |
Object generated by |
Ip, E. H., Molenberghs, G., Chen, S. H., Goegebeur, Y., & De Boeck, P. (2013). Functionally unidimensional item response models for multivariate binary data. Multivariate Behavioral Research, 48, 534-562.
For estimation of bifactor models and Green-Yang reliability
based on tetrachoric correlations see greenyang.reliability
.
For estimation of bifactor models based on marginal maximum likelihood
(i.e. full information maximum likelihood) see the
TAM::tam.fa
function in the TAM package.
############################################################################# # EXAMPLE 1: Dataset Mathematics data.math | Exploratory multidimensional model ############################################################################# data(data.math) dat <- ( data.math$data )[, -c(1,2) ] # select Mathematics items #**** # Model 1: Functional unidimensional model based on original data #++ (1) estimate model with 3 factors mod1 <- sirt::f1d.irt( dat=dat, nfactors=3) #++ (2) plot results par(mfrow=c(1,2)) # Intercepts plot( mod1$item$di0, mod1$item$di.ast, pch=16, main="Item Intercepts", xlab=expression( paste( d[i], " (Unidimensional Model)" )), ylab=expression( paste( d[i], " (Functional Unidimensional Model)" ))) abline( lm(mod1$item$di.ast ~ mod1$item$di0), col=2, lty=2 ) # Discriminations plot( mod1$item$ai0, mod1$item$ai.ast, pch=16, main="Item Discriminations", xlab=expression( paste( a[i], " (Unidimensional Model)" )), ylab=expression( paste( a[i], " (Functional Unidimensional Model)" ))) abline( lm(mod1$item$ai.ast ~ mod1$item$ai0), col=2, lty=2 ) par(mfrow=c(1,1)) #++ (3) estimate bifactor model and Green-Yang reliability gy1 <- sirt::greenyang.reliability( mod1$tetra, nfactors=3 ) ## Not run: #**** # Model 2: Functional unidimensional model based on estimated multidimensional # item response model #++ (1) estimate 2-dimensional exploratory factor analysis with 'smirt' I <- ncol(dat) Q <- matrix( 1, I,2 ) Q[1,2] <- 0 variance.fixed <- cbind( 1,2,0 ) mod2a <- sirt::smirt( dat, Qmatrix=Q, irtmodel="comp", est.a="2PL", variance.fixed=variance.fixed, maxiter=50) #++ (2) input estimated discriminations and intercepts for # functional unidimensional model mod2b <- sirt::f1d.irt( A=mod2a$a, intercept=mod2a$b ) ############################################################################# # EXAMPLE 2: Dataset Mathematics data.math | Confirmatory multidimensional model ############################################################################# data(data.math) library(TAM) # dataset dat <- data.math$data dat <- dat[, grep("M", colnames(dat) ) ] # extract item informations iteminfo <- data.math$item I <- ncol(dat) # define Q-matrix Q <- matrix( 0, nrow=I, ncol=3 ) Q[ grep( "arith", iteminfo$domain ), 1 ] <- 1 Q[ grep( "Meas", iteminfo$domain ), 2 ] <- 1 Q[ grep( "geom", iteminfo$domain ), 3 ] <- 1 # fit three-dimensional model in TAM mod1 <- TAM::tam.mml.2pl( dat, Q=Q, control=list(maxiter=40, snodes=1000) ) summary(mod1) # specify functional unidimensional model intercept <- mod1$xsi[, c("xsi") ] names(intercept) <- rownames(mod1$xsi) fumod1 <- sirt::f1d.irt( A=mod1$B[,2,], intercept=intercept, Sigma=mod1$variance) fumod1$item ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.