FUP | R Documentation |
Estimate the coefficients of a filtered unconstrained polynomial IRT model.
FUP(data, thetaInit, item, startvals, k = 0)
data |
N(subjects)-by-p(items) matrix of 0/1 item response data. |
thetaInit |
Initial theta surrogates (e.g., calculated by svdNorm). |
item |
item number for coefficient estimation. |
startvals |
start values for function minimization. |
k |
order of monotonic polynomial = 2k+1 (see Liang & Browne, 2015). |
b |
Vector of polynomial coefficients. |
FHAT |
Function value at convergence. |
counts |
Number of function evaluations during minimization (see optim documentation for further details). |
AIC |
Pseudo scaled Akaike Information Criterion (AIC). Candidate models that produce the smallest AIC suggest the optimal number of parameters given the sample size. Scaling is accomplished by dividing the non-scaled AIC by sample size. |
BIC |
Pseudo scaled Bayesian Information Criterion (BIC). Candidate models that produce the smallest BIC suggest the optimal number of parameters given the sample size. Scaling is accomplished by dividing the non-scaled BIC by sample size. |
convergence |
Convergence = 0 indicates that the optimization algorithm converged; convergence=1 indicates that the optimization failed to converge. . |
Niels Waller
Liang, L. & Browne, M. W. (2015). A quasi-parametric method for fitting flexible item response functions. Journal of Educational and Behavioral Statistics, 40, 5–34.
## Not run:
NSubjects <- 2000
## generate sample k=1 FMP data
b <- matrix(c(
#b0 b1 b2 b3 b4 b5 b6 b7 k
1.675, 1.974, -0.068, 0.053, 0, 0, 0, 0, 1,
1.550, 1.805, -0.230, 0.032, 0, 0, 0, 0, 1,
1.282, 1.063, -0.103, 0.003, 0, 0, 0, 0, 1,
0.704, 1.376, -0.107, 0.040, 0, 0, 0, 0, 1,
1.417, 1.413, 0.021, 0.000, 0, 0, 0, 0, 1,
-0.008, 1.349, -0.195, 0.144, 0, 0, 0, 0, 1,
0.512, 1.538, -0.089, 0.082, 0, 0, 0, 0, 1,
0.122, 0.601, -0.082, 0.119, 0, 0, 0, 0, 1,
1.801, 1.211, 0.015, 0.000, 0, 0, 0, 0, 1,
-0.207, 1.191, 0.066, 0.033, 0, 0, 0, 0, 1,
-0.215, 1.291, -0.087, 0.029, 0, 0, 0, 0, 1,
0.259, 0.875, 0.177, 0.072, 0, 0, 0, 0, 1,
-0.423, 0.942, 0.064, 0.094, 0, 0, 0, 0, 1,
0.113, 0.795, 0.124, 0.110, 0, 0, 0, 0, 1,
1.030, 1.525, 0.200, 0.076, 0, 0, 0, 0, 1,
0.140, 1.209, 0.082, 0.148, 0, 0, 0, 0, 1,
0.429, 1.480, -0.008, 0.061, 0, 0, 0, 0, 1,
0.089, 0.785, -0.065, 0.018, 0, 0, 0, 0, 1,
-0.516, 1.013, 0.016, 0.023, 0, 0, 0, 0, 1,
0.143, 1.315, -0.011, 0.136, 0, 0, 0, 0, 1,
0.347, 0.733, -0.121, 0.041, 0, 0, 0, 0, 1,
-0.074, 0.869, 0.013, 0.026, 0, 0, 0, 0, 1,
0.630, 1.484, -0.001, 0.000, 0, 0, 0, 0, 1),
nrow=23, ncol=9, byrow=TRUE)
# generate data using the above item parameters
ex1.data<-genFMPData(NSubj = NSubjects, bParams = b, seed = 345)$data
NItems <- ncol(ex1.data)
# compute (initial) surrogate theta values from
# the normed left singular vector of the centered
# data matrix
thetaInit <- svdNorm(ex1.data)
# Choose model
k <- 1 # order of polynomial = 2k+1
# Initialize matrices to hold output
if(k == 0) {
startVals <- c(1.5, 1.5)
bmat <- matrix(0,NItems,6)
colnames(bmat) <- c(paste("b", 0:1, sep = ""),"FHAT", "AIC", "BIC", "convergence")
}
if(k == 1) {
startVals <- c(1.5, 1.5, .10, .10)
bmat <- matrix(0,NItems,8)
colnames(bmat) <- c(paste("b", 0:3, sep = ""),"FHAT", "AIC", "BIC", "convergence")
}
if(k == 2) {
startVals <- c(1.5, 1.5, .10, .10, .10, .10)
bmat <- matrix(0,NItems,10)
colnames(bmat) <- c(paste("b", 0:5, sep = ""),"FHAT", "AIC", "BIC", "convergence")
}
if(k == 3) {
startVals <- c(1.5, 1.5, .10, .10, .10, .10, .10, .10)
bmat <- matrix(0,NItems,12)
colnames(bmat) <- c(paste("b", 0:7, sep = ""),"FHAT", "AIC", "BIC", "convergence")
}
# estimate item parameters and fit statistics
for(i in 1:NItems){
out<-FUP(data = ex1.data,thetaInit = thetaInit, item = i, startvals = startVals, k = k)
Nb <- length(out$b)
bmat[i,1:Nb] <- out$b
bmat[i,Nb+1] <- out$FHAT
bmat[i,Nb+2] <- out$AIC
bmat[i,Nb+3] <- out$BIC
bmat[i,Nb+4] <- out$convergence
}
# print results
print(bmat)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.