load libraries and data
library(mirt)
## Warning: package 'mirt' was built under R version 4.1.3
## Loading required package: stats4
## Loading required package: lattice
## Warning: package 'lattice' was built under R version 4.1.3
library(psych)
library(mokken)
## Warning: package 'mokken' was built under R version 4.1.3
## Loading required package: poLCA
## Warning: package 'poLCA' was built under R version 4.1.3
## Loading required package: scatterplot3d
## Loading required package: MASS
## Warning: package 'MASS' was built under R version 4.1.3
##
## Attaching package: 'mokken'
## The following object is masked from 'package:psych':
##
## ICC
f20 <- read.csv("G:/My Drive/EACI/R files/f20_data.csv")
f20 <- f20[, -c(1:24,27:31,57,68,69,74,77)]
basic descriptives
itemDesc <- describe(f20) # get item descriptives
itemDesc
## vars n mean sd median trimmed mad min max range skew kurtosis se
## d05 1 272 0.43 0.50 0 0.41 0 0 1 1 0.30 -1.92 0.03
## d06 2 241 0.47 0.50 0 0.47 0 0 1 1 0.11 -2.00 0.03
## sb09 3 443 0.81 0.39 1 0.89 0 0 1 1 -1.58 0.49 0.02
## sb11 4 471 0.79 0.41 1 0.86 0 0 1 1 -1.40 -0.03 0.02
## sb14 5 434 0.78 0.42 1 0.84 0 0 1 1 -1.32 -0.25 0.02
## sb15 6 430 0.45 0.50 0 0.44 0 0 1 1 0.19 -1.97 0.02
## sb18 7 372 0.74 0.44 1 0.80 0 0 1 1 -1.09 -0.82 0.02
## sb21 8 336 0.78 0.42 1 0.85 0 0 1 1 -1.34 -0.19 0.02
## sb26 9 375 0.49 0.50 0 0.49 0 0 1 1 0.03 -2.00 0.03
## sb27 10 445 0.76 0.43 1 0.82 0 0 1 1 -1.18 -0.60 0.02
## sb28 11 371 0.55 0.50 1 0.56 0 0 1 1 -0.20 -1.97 0.03
## sb30 12 354 0.39 0.49 0 0.37 0 0 1 1 0.44 -1.81 0.03
## sb32 13 300 0.46 0.50 0 0.45 0 0 1 1 0.15 -1.99 0.03
## sb34 14 277 0.74 0.44 1 0.80 0 0 1 1 -1.11 -0.77 0.03
## sb35 15 408 0.67 0.47 1 0.71 0 0 1 1 -0.72 -1.49 0.02
## sb36 16 418 0.78 0.41 1 0.85 0 0 1 1 -1.38 -0.10 0.02
## sb37 17 371 0.76 0.43 1 0.82 0 0 1 1 -1.20 -0.57 0.02
## sb38 18 354 0.46 0.50 0 0.45 0 0 1 1 0.17 -1.98 0.03
## sb39 19 300 0.76 0.43 1 0.82 0 0 1 1 -1.19 -0.59 0.02
## sb40 20 278 0.67 0.47 1 0.71 0 0 1 1 -0.71 -1.49 0.03
## sb41 21 480 0.55 0.50 1 0.56 0 0 1 1 -0.19 -1.97 0.02
## sb42 22 437 0.54 0.50 1 0.55 0 0 1 1 -0.17 -1.98 0.02
## sb43 23 438 0.59 0.49 1 0.61 0 0 1 1 -0.36 -1.87 0.02
## sb44 24 378 0.62 0.49 1 0.64 0 0 1 1 -0.48 -1.78 0.03
## se09 25 353 0.62 0.49 1 0.65 0 0 1 1 -0.49 -1.76 0.03
## se10 26 310 0.16 0.37 0 0.08 0 0 1 1 1.80 1.25 0.02
## se12 27 315 0.24 0.43 0 0.17 0 0 1 1 1.22 -0.50 0.02
## se18 28 238 0.19 0.39 0 0.11 0 0 1 1 1.58 0.49 0.03
## se19 29 312 0.18 0.39 0 0.10 0 0 1 1 1.63 0.67 0.02
## se20 30 339 0.60 0.49 1 0.62 0 0 1 1 -0.39 -1.85 0.03
## se21 31 304 0.61 0.49 1 0.64 0 0 1 1 -0.44 -1.81 0.03
## se22 32 305 0.19 0.39 0 0.11 0 0 1 1 1.60 0.56 0.02
## se23 33 265 0.19 0.39 0 0.12 0 0 1 1 1.55 0.41 0.02
## se25 34 237 0.19 0.39 0 0.11 0 0 1 1 1.61 0.58 0.03
## se26 35 302 0.34 0.47 0 0.30 0 0 1 1 0.67 -1.56 0.03
## se49 36 272 0.31 0.46 0 0.26 0 0 1 1 0.82 -1.33 0.03
## se57 37 312 0.19 0.39 0 0.11 0 0 1 1 1.58 0.50 0.02
## ss16 38 265 0.47 0.50 0 0.46 0 0 1 1 0.13 -1.99 0.03
## ss35 39 350 0.36 0.48 0 0.32 0 0 1 1 0.58 -1.67 0.03
## ss39 40 340 0.34 0.47 0 0.30 0 0 1 1 0.68 -1.54 0.03
## ss53 41 339 0.63 0.48 1 0.66 0 0 1 1 -0.52 -1.74 0.03
## ss60 42 248 0.51 0.50 1 0.51 0 0 1 1 -0.03 -2.01 0.03
## ss65 43 399 0.73 0.44 1 0.79 0 0 1 1 -1.03 -0.94 0.02
## ss67 44 363 0.80 0.40 1 0.87 0 0 1 1 -1.49 0.21 0.02
## ss68 45 288 0.31 0.46 0 0.26 0 0 1 1 0.84 -1.30 0.03
## ss69 46 266 0.42 0.50 0 0.41 0 0 1 1 0.30 -1.92 0.03
## ss70 47 350 0.46 0.50 0 0.45 0 0 1 1 0.16 -1.98 0.03
## ss71 48 384 0.41 0.49 0 0.39 0 0 1 1 0.36 -1.88 0.03
## ss72 49 347 0.24 0.43 0 0.18 0 0 1 1 1.20 -0.56 0.02
## a1 50 884 0.65 0.48 1 0.69 0 0 1 1 -0.62 -1.61 0.02
## a2 51 879 0.69 0.46 1 0.73 0 0 1 1 -0.81 -1.34 0.02
## a3 52 878 0.60 0.49 1 0.63 0 0 1 1 -0.42 -1.83 0.02
## a4 53 877 0.40 0.49 0 0.37 0 0 1 1 0.41 -1.83 0.02
## a5 54 878 0.65 0.48 1 0.69 0 0 1 1 -0.63 -1.60 0.02
## a6 55 879 0.76 0.43 1 0.83 0 0 1 1 -1.24 -0.47 0.01
itemDiff <- itemDesc$mean # save the difficulties as a vector for plotting
items <- itemDesc$vars # save item names as a vector for plotting
plot item difficulties
plot(items,itemDiff, type = "l")
points(items,itemDiff)
IRT Analyses
m_1dimension <- 'math.skill = 1-55' # make the 1 dimensional model
fit the Rasch
results.1pl.f20 <- mirt(data=f20, model=m_1dimension, itemtype="Rasch", SE=TRUE, verbose=FALSE)
## Warning: data contains response patterns with only NAs
coef.1pl.f20 <- coef(results.1pl.f20, IRTpars=TRUE, simplify=TRUE)
fit the 2pl
results.2pl.f20 <- mirt(data=f20, model=m_1dimension, itemtype="2PL", SE=TRUE, verbose=FALSE)
## Warning: data contains response patterns with only NAs
coef.2pl.f20 <- coef(results.2pl.f20, IRTpars=TRUE, simplify=TRUE)
param.num.3pl <- mirt(data=f20, model=m_1dimension, itemtype="3PL", SE=TRUE, verbose=FALSE,
pars='values') # get the parameter numbers
## Warning: data contains response patterns with only NAs
3 pl
m <- 'F = 1-55
PRIOR = (1-55, g, norm, -1.1,3)'
model <- mirt.model(m)
results.3pl.f20 <- mirt(data=f20, model=model, itemtype="3PL", SE=TRUE, verbose=FALSE) # fit the 3pl
## Warning: data contains response patterns with only NAs
## EM cycles terminated after 500 iterations.
coef.3pl.f20 <- coef(results.3pl.f20, IRTpars=TRUE, simplify=TRUE)
coef.3pl.f20
## $items
## a b g u
## d05 1.488 0.414 0.051 1
## d06 0.999 0.135 0.026 1
## sb09 2.556 -0.936 0.152 1
## sb11 2.306 -0.811 0.050 1
## sb14 1.245 -1.148 0.100 1
## sb15 1.918 0.431 0.145 1
## sb18 4.591 -0.127 0.412 1
## sb21 2.742 -0.685 0.262 1
## sb26 0.593 1.999 0.327 1
## sb27 2.018 -0.654 0.077 1
## sb28 3.354 0.350 0.232 1
## sb30 1.218 1.664 0.273 1
## sb32 5.314 0.354 0.130 1
## sb34 3.212 -0.259 0.384 1
## sb35 2.273 -0.408 0.116 1
## sb36 2.461 -0.738 0.052 1
## sb37 2.424 -0.532 0.230 1
## sb38 2.474 0.450 0.167 1
## sb39 2.117 -0.423 0.330 1
## sb40 1.915 -0.518 0.074 1
## sb41 2.783 0.171 0.127 1
## sb42 38.223 0.361 0.247 1
## sb43 55.692 0.293 0.349 1
## sb44 34.473 0.330 0.373 1
## se09 0.662 -0.289 0.143 1
## se10 16.175 1.491 0.107 1
## se12 33.697 1.490 0.180 1
## se18 19.384 1.678 0.160 1
## se19 16.227 1.789 0.159 1
## se20 0.381 -0.305 0.131 1
## se21 0.732 -0.299 0.140 1
## se22 27.296 1.564 0.134 1
## se23 25.356 1.590 0.149 1
## se25 0.412 4.673 0.064 1
## se26 0.412 2.442 0.094 1
## se49 0.429 2.760 0.088 1
## se57 0.332 7.821 0.127 1
## ss16 0.888 0.307 0.055 1
## ss35 0.768 0.976 0.035 1
## ss39 0.880 3.380 0.292 1
## ss53 1.434 0.056 0.288 1
## ss60 0.851 0.182 0.096 1
## ss65 1.968 -0.306 0.251 1
## ss67 2.168 0.014 0.577 1
## ss68 1.746 0.991 0.082 1
## ss69 1.772 1.007 0.254 1
## ss70 1.431 0.339 0.083 1
## ss71 0.579 0.933 0.032 1
## ss72 1.425 2.032 0.157 1
## a1 2.946 -0.454 0.012 1
## a2 2.706 -0.558 0.047 1
## a3 3.196 0.005 0.210 1
## a4 1.666 0.576 0.089 1
## a5 2.070 -0.277 0.166 1
## a6 1.913 -0.623 0.275 1
##
## $means
## F
## 0
##
## $cov
## F
## F 1
anova(results.1pl.f20, results.2pl.f20)
##
## Model 1: mirt(data = f20, model = m_1dimension, itemtype = "Rasch", SE = TRUE,
## verbose = FALSE)
## Model 2: mirt(data = f20, model = m_1dimension, itemtype = "2PL", SE = TRUE,
## verbose = FALSE)
## AIC SABIC HQ BIC logLik X2 df p
## 1 24501.79 24612.08 24610.04 24789.96 -12194.89 NaN NaN NaN
## 2 23794.36 24011.00 24007.00 24360.42 -11787.18 815.428 54 0
anova(results.2pl.f20, results.3pl.f20)
##
## Model 1: mirt(data = f20, model = m_1dimension, itemtype = "2PL", SE = TRUE,
## verbose = FALSE)
## Model 2: mirt(data = f20, model = model, itemtype = "3PL", SE = TRUE,
## verbose = FALSE)
## AIC SABIC HQ BIC logLik logPost df
## 1 23794.36 24011.00 24007.00 24360.42 -11787.18 -11787.18 NaN
## 2 23649.37 23974.34 23968.33 24498.46 -11659.68 -11774.77 55
firstFive <- c(1:5)
itemplot(results.3pl.f20, 1)
plot(results.3pl.f20, type='trace', auto.key=F) # all item trace lines
plot(results.3pl.f20, type='infotrace',auto.key=T)
plot(results.3pl.f20, type='info', auto.key=T) # all item trace lines
theta <- fscores(results.3pl.f20)
2 factor model
#parnums.multi2.3pl.f20 <- mirt(data=f20, model=2, itemtype="3PL",
# pars = 'values', SE=TRUE, verbose=FALSE) # get param numbers
#results.multi2.3pl.f20 <- mirt(data=f20, model=2, itemtype="3PL",
# parprior = list(c(seq(4,275,5), 'norm', -1.1,3),
# c(seq(1,275,5), 'norm', 0.0,3),
# c(seq(2,275,5), 'norm', 0.0,3),
# c(seq(3,275,5), 'norm', 0.0,3)),
# SE=TRUE, verbose=FALSE) # fit the 3pl
#save(results.multi2.3pl.f20, file = "results.multi2.3pl.f20")
load('C:/Users/Sydne/Documents/results.multi2.3pl.f20')
coef.multi2.3pl.f20 <- coef(results.multi2.3pl.f20, simplify = T, rotate = 'bifactorT')
##
## Rotation: bifactorT
coef.multi2.3pl.f20
## $items
## a1 a2 d g u
## d05 1.960 -0.520 -0.756 0.057 1
## d06 1.172 -0.521 -0.145 0.022 1
## sb09 2.315 0.636 2.506 0.070 1
## sb11 2.211 0.940 1.980 0.038 1
## sb14 1.225 0.581 1.515 0.088 1
## sb15 1.845 0.867 -0.867 0.150 1
## sb18 2.873 1.090 0.991 0.329 1
## sb21 2.220 0.120 2.014 0.128 1
## sb26 0.271 0.831 -0.168 0.058 1
## sb27 1.928 0.458 1.314 0.078 1
## sb28 3.429 0.912 -1.083 0.214 1
## sb30 0.775 1.295 -1.790 0.219 1
## sb32 4.439 1.252 -1.472 0.108 1
## sb34 3.165 0.056 0.847 0.378 1
## sb35 2.356 -0.027 0.894 0.133 1
## sb36 2.596 -0.027 1.865 0.064 1
## sb37 2.515 0.069 1.358 0.227 1
## sb38 2.703 0.877 -1.298 0.176 1
## sb39 2.299 0.041 0.731 0.376 1
## sb40 1.995 0.143 0.918 0.103 1
## sb41 3.918 4.826 -0.031 0.043 1
## sb42 3.339 5.982 0.490 0.022 1
## sb43 4.197 5.502 0.606 0.157 1
## sb44 3.696 4.655 0.712 0.146 1
## se09 0.722 0.049 0.075 0.187 1
## se10 2.514 -0.182 -4.481 0.097 1
## se12 3.548 -1.882 -5.330 0.150 1
## se18 1.214 -1.866 -3.367 0.088 1
## se19 0.791 -1.342 -2.979 0.094 1
## se20 0.458 -0.320 0.213 0.090 1
## se21 0.706 -0.004 0.189 0.149 1
## se22 3.205 -1.967 -5.024 0.093 1
## se23 2.128 -1.676 -4.229 0.110 1
## se25 0.488 -1.241 -2.230 0.044 1
## se26 0.349 -0.059 -0.928 0.076 1
## se49 0.313 0.840 -1.158 0.043 1
## se57 0.167 -1.514 -3.348 0.124 1
## ss16 0.895 -0.158 -0.269 0.049 1
## ss35 0.805 -0.226 -0.753 0.031 1
## ss39 1.044 -0.722 -2.858 0.274 1
## ss53 1.339 0.064 -0.003 0.270 1
## ss60 0.999 -0.229 -0.305 0.140 1
## ss65 2.191 0.020 0.529 0.280 1
## ss67 2.395 0.649 -0.251 0.599 1
## ss68 2.183 0.423 -2.208 0.101 1
## ss69 1.379 -0.181 -1.395 0.224 1
## ss70 1.376 -0.055 -0.427 0.067 1
## ss71 0.703 -0.420 -0.542 0.024 1
## ss72 1.345 1.074 -3.214 0.152 1
## a1 2.888 0.372 1.338 0.012 1
## a2 2.737 0.143 1.533 0.046 1
## a3 3.438 0.461 -0.060 0.217 1
## a4 1.788 0.269 -1.105 0.105 1
## a5 1.986 -0.329 0.779 0.099 1
## a6 2.121 0.000 1.097 0.321 1
##
## $means
## F1 F2
## 0 0
##
## $cov
## F1 F2
## F1 1 0
## F2 0 1
3 factor model
#parnums.multi3.3pl.f20 <- mirt(data=f20, model=3, itemtype="3PL",
# pars = 'values', SE=TRUE, verbose=FALSE) # get param numbers
#results.multi3.3pl.f20 <- mirt(data=f20, model=3, itemtype="3PL",
# parprior = list(c(seq(5,330,6), 'norm', -1.1,3),
# c(seq(1,330,6), 'norm', 0.0,3),
# c(seq(2,330,6), 'norm', 0.0,3),
# c(seq(3,330,6), 'norm', 0.0,3),
# c(seq(4,330,6), 'norm', 0.0,3)),
# SE=TRUE, verbose=FALSE) # fit the 3pl
#save(results.multi3.3pl.f20, file = "results.multi3.3pl.f20")
load('C:/Users/Sydne/Documents/results.multi3.3pl.f20')
coef.multi3.3pl.f20 <- coef(results.multi3.3pl.f20, simplify = T, rotate = 'bifactorT')
##
## Rotation: bifactorT
coef.multi3.3pl.f20
## $items
## a1 a2 a3 d g u
## d05 2.225 -1.344 0.288 -0.943 0.074 1
## d06 1.496 -1.934 -0.144 -0.147 0.025 1
## sb09 2.945 0.128 -1.108 3.183 0.039 1
## sb11 2.534 0.500 0.444 2.135 0.039 1
## sb14 1.367 0.286 0.376 1.607 0.078 1
## sb15 1.787 0.068 -0.765 -0.323 0.045 1
## sb18 2.613 0.817 1.113 1.546 0.213 1
## sb21 2.549 0.041 1.374 2.493 0.102 1
## sb26 0.410 0.622 -0.258 -0.194 0.073 1
## sb27 2.061 0.086 0.363 1.375 0.081 1
## sb28 3.234 0.233 -0.443 -0.839 0.196 1
## sb30 1.004 1.012 -1.012 -1.716 0.193 1
## sb32 4.541 0.283 -0.070 -1.307 0.099 1
## sb34 3.317 0.355 2.386 1.976 0.255 1
## sb35 2.567 -0.547 -0.824 1.211 0.092 1
## sb36 3.065 -0.770 -1.075 2.281 0.052 1
## sb37 2.432 -0.518 -0.150 1.471 0.198 1
## sb38 3.551 -0.040 -0.469 -1.602 0.190 1
## sb39 2.191 -0.226 0.863 0.931 0.349 1
## sb40 1.843 -0.244 0.454 0.967 0.088 1
## sb41 4.842 3.931 -0.039 0.130 0.040 1
## sb42 4.427 5.136 -0.148 0.665 0.016 1
## sb43 4.909 4.188 -0.416 0.810 0.145 1
## sb44 4.030 3.579 -0.484 1.192 0.074 1
## se09 0.766 -0.149 -0.127 -0.036 0.227 1
## se10 1.676 0.485 2.699 -4.282 0.056 1
## se12 1.272 0.249 3.509 -3.242 0.038 1
## se18 0.864 -0.786 2.437 -4.009 0.099 1
## se19 0.760 -0.703 2.084 -3.665 0.087 1
## se20 0.422 -0.518 0.051 0.207 0.092 1
## se21 0.703 -0.245 -0.049 0.199 0.147 1
## se22 1.944 -0.135 2.716 -4.385 0.077 1
## se23 1.527 0.086 2.780 -4.842 0.113 1
## se25 0.169 -0.953 0.872 -2.307 0.058 1
## se26 0.275 0.081 0.584 -0.869 0.052 1
## se49 0.513 0.461 -0.563 -1.118 0.033 1
## se57 0.040 -0.495 0.334 -1.838 0.045 1
## ss16 0.805 -0.109 0.515 -0.275 0.054 1
## ss35 0.749 -0.372 -0.091 -0.738 0.030 1
## ss39 1.078 -1.029 0.734 -3.285 0.280 1
## ss53 1.419 -0.403 -0.422 0.118 0.240 1
## ss60 0.846 -0.388 0.207 -0.212 0.119 1
## ss65 2.163 -0.470 -0.056 0.548 0.280 1
## ss67 3.025 -0.216 -0.958 -0.211 0.592 1
## ss68 2.689 -0.269 -0.041 -2.609 0.113 1
## ss69 1.090 0.326 1.085 -1.119 0.167 1
## ss70 1.372 -0.369 -0.068 -0.439 0.075 1
## ss71 0.601 -0.560 -0.026 -0.547 0.024 1
## ss72 1.736 0.390 -0.835 -3.398 0.149 1
## a1 2.992 -0.248 0.398 1.418 0.011 1
## a2 2.829 -0.432 0.567 1.622 0.050 1
## a3 3.383 -0.304 -0.376 0.131 0.195 1
## a4 1.732 -0.023 0.169 -1.043 0.102 1
## a5 2.023 -0.784 0.643 0.817 0.111 1
## a6 1.976 -0.571 0.425 1.199 0.297 1
##
## $means
## F1 F2 F3
## 0 0 0
##
## $cov
## F1 F2 F3
## F1 1 0 0
## F2 0 1 0
## F3 0 0 1
4 factor model
#parnums.multi4.3pl.f20 <- mirt(data=f20, model=4, itemtype="3PL",
# pars = 'values', SE=TRUE, verbose=FALSE) # get param numbers
#results.multi4.3pl.f20 <- mirt(data=f20, model=4, itemtype="3PL",
# parprior = list(c(seq(6,385,7), 'norm', -1.1,3),
# c(seq(1,385,7), 'norm', 0.0,3),
# c(seq(2,385,7), 'norm', 0.0,3),
# c(seq(3,385,7), 'norm', 0.0,3),
# c(seq(4,385,7), 'norm', 0.0,3),
# c(seq(5,385,7), 'norm', 0.0,3)),
# SE=TRUE, verbose=FALSE, method = 'QMCEM') # fit the 3pl
#save(results.multi4.3pl.f20, file = "results.multi4.3pl.f20")
load('C:/Users/Sydne/Documents/results.multi4.3pl.f20')
coef.multi4.3pl.f20 <- coef(results.multi4.3pl.f20, simplify = T, rotate = 'bifactorT')
##
## Rotation: bifactorT
coef.multi4.3pl.f20
## $items
## a1 a2 a3 a4 d g u
## d05 2.119 0.402 0.186 1.465 -0.919 0.062 1
## d06 1.524 -0.132 -0.154 2.501 -0.219 0.026 1
## sb09 3.441 -1.900 -0.249 -0.105 3.565 0.091 1
## sb11 2.754 0.407 0.708 -0.807 2.296 0.042 1
## sb14 2.194 0.156 1.280 -0.809 1.435 0.328 1
## sb15 1.774 -0.731 -0.324 0.013 -0.320 0.043 1
## sb18 3.154 -0.087 1.344 -0.945 1.791 0.195 1
## sb21 2.577 -0.562 1.278 0.083 2.457 0.124 1
## sb26 0.430 -0.284 -0.298 -0.582 -0.227 0.080 1
## sb27 2.075 0.318 0.170 -0.049 1.291 0.105 1
## sb28 3.200 0.056 -2.312 0.252 -0.051 0.063 1
## sb30 0.717 -0.381 -1.830 -0.384 -1.071 0.058 1
## sb32 4.735 0.275 -0.751 0.183 -1.446 0.095 1
## sb34 3.648 -0.991 1.928 -0.105 1.565 0.317 1
## sb35 2.501 -0.755 -0.226 0.626 1.033 0.122 1
## sb36 2.824 -0.732 0.036 0.773 2.001 0.078 1
## sb37 2.241 -0.322 0.482 0.442 1.569 0.148 1
## sb38 3.834 -0.772 0.064 0.066 -1.658 0.182 1
## sb39 3.059 -0.652 1.450 0.367 0.998 0.372 1
## sb40 1.996 -0.550 0.341 0.503 0.968 0.106 1
## sb41 4.699 0.421 -1.237 -3.384 0.113 0.031 1
## sb42 4.853 0.155 -1.426 -4.948 0.577 0.022 1
## sb43 5.320 -0.029 -1.159 -4.128 0.764 0.151 1
## sb44 4.355 0.206 -1.085 -3.418 1.149 0.087 1
## se09 0.699 0.133 -0.340 0.333 0.258 0.115 1
## se10 1.376 2.614 -0.446 -0.318 -4.041 0.049 1
## se12 1.220 3.252 0.434 -0.199 -3.179 0.043 1
## se18 0.609 2.187 1.870 0.605 -3.619 0.049 1
## se19 0.652 0.732 2.561 0.167 -3.805 0.067 1
## se20 0.383 -0.066 0.273 0.416 0.202 0.088 1
## se21 0.690 -0.074 0.196 0.240 0.199 0.144 1
## se22 1.935 2.850 0.265 0.149 -4.582 0.078 1
## se23 1.017 2.690 0.235 -0.099 -3.766 0.066 1
## se25 0.205 -0.308 1.569 1.040 -2.596 0.039 1
## se26 0.278 0.731 -0.166 0.033 -0.953 0.058 1
## se49 0.520 -0.455 -0.370 -0.366 -1.145 0.045 1
## se57 -0.022 0.116 0.500 0.642 -2.097 0.065 1
## ss16 0.820 -0.052 0.361 0.155 -0.266 0.047 1
## ss35 0.814 -0.707 0.510 0.224 -0.869 0.033 1
## ss39 1.213 0.306 1.361 0.405 -3.236 0.268 1
## ss53 1.265 -0.276 -0.218 0.436 0.247 0.195 1
## ss60 0.879 -0.299 0.312 0.437 -0.318 0.144 1
## ss65 2.200 -0.408 0.570 0.280 0.503 0.277 1
## ss67 3.629 -1.046 0.211 0.326 -0.340 0.595 1
## ss68 2.956 -0.023 -0.464 0.485 -2.972 0.120 1
## ss69 1.917 -0.161 1.452 -0.416 -2.008 0.231 1
## ss70 1.357 -0.001 -0.138 0.500 -0.462 0.076 1
## ss71 0.709 -0.568 0.746 0.407 -0.696 0.031 1
## ss72 0.888 -0.131 -1.105 -0.059 -2.325 0.097 1
## a1 3.043 0.557 0.131 0.333 1.420 0.009 1
## a2 2.678 0.574 0.352 0.432 1.587 0.033 1
## a3 3.595 0.067 -1.020 0.797 0.216 0.179 1
## a4 1.627 0.501 -0.255 0.187 -0.943 0.076 1
## a5 2.018 0.680 0.441 0.814 0.805 0.108 1
## a6 2.115 0.221 0.393 0.456 1.064 0.333 1
##
## $means
## F1 F2 F3 F4
## 0 0 0 0
##
## $cov
## F1 F2 F3 F4
## F1 1 0 0 0
## F2 0 1 0 0
## F3 0 0 1 0
## F4 0 0 0 1
compare fit
anova(results.3pl.f20, results.multi2.3pl.f20, results.multi3.3pl.f20,
results.multi4.3pl.f20)
## AIC SABIC HQ BIC logLik logPost df
## 1 23649.37 23974.34 23968.33 24498.46 -11659.68 -11774.77 NaN
## 2 23502.28 23933.60 23925.62 24629.25 -11532.14 -12016.24 54
## 3 23441.51 23977.21 23967.31 24841.21 -11448.75 -12047.08 53
## 4 23428.08 24066.20 24054.41 25095.38 -11390.04 -12102.21 52
calculate IECV 2 factor
sum.multi2.f20 <- summary(results.multi2.3pl.f20, rotate = "bifactorT")
##
## Rotation: bifactorT
##
## Rotated factor loadings:
##
## F1 F2 h2
## d05 0.740 -0.19623 0.5867
## d06 0.550 -0.24466 0.3623
## sb09 0.787 0.21597 0.6656
## sb11 0.751 0.31912 0.6658
## sb14 0.563 0.26706 0.3881
## sb15 0.695 0.32644 0.5893
## sb18 0.818 0.31018 0.7652
## sb21 0.793 0.04277 0.6305
## sb26 0.141 0.43430 0.2086
## sb27 0.738 0.17528 0.5755
## sb28 0.871 0.23177 0.8129
## sb30 0.341 0.56936 0.4402
## sb32 0.903 0.25469 0.8802
## sb34 0.881 0.01556 0.7758
## sb35 0.811 -0.00913 0.6571
## sb36 0.836 -0.00867 0.6994
## sb37 0.828 0.02273 0.6860
## sb38 0.816 0.26467 0.7360
## sb39 0.804 0.01444 0.6461
## sb40 0.760 0.05427 0.5799
## sb41 0.608 0.74884 0.9303
## sb42 0.473 0.84743 0.9419
## sb43 0.589 0.77208 0.9430
## sb44 0.598 0.75292 0.9242
## se09 0.391 0.02639 0.1533
## se10 0.827 -0.05970 0.6868
## se12 0.813 -0.43145 0.8478
## se18 0.433 -0.66589 0.6311
## se19 0.343 -0.58166 0.4558
## se20 0.256 -0.17841 0.0971
## se21 0.383 -0.00222 0.1469
## se22 0.776 -0.47658 0.8300
## se23 0.665 -0.52385 0.7169
## se25 0.226 -0.57390 0.3803
## se26 0.201 -0.03415 0.0415
## se49 0.163 0.43675 0.2172
## se57 0.073 -0.66287 0.4447
## ss16 0.464 -0.08172 0.2219
## ss35 0.424 -0.11910 0.1942
## ss39 0.492 -0.33997 0.3575
## ss53 0.618 0.02940 0.3830
## ss60 0.503 -0.11506 0.2663
## ss65 0.790 0.00735 0.6236
## ss67 0.796 0.21577 0.6801
## ss68 0.780 0.15111 0.6306
## ss69 0.627 -0.08256 0.4004
## ss70 0.629 -0.02526 0.3958
## ss71 0.372 -0.22232 0.1880
## ss72 0.556 0.44352 0.5055
## a1 0.856 0.11023 0.7453
## a2 0.848 0.04443 0.7217
## a3 0.890 0.11930 0.8059
## a4 0.720 0.10847 0.5302
## a5 0.753 -0.12468 0.5832
## a6 0.780 0.00000 0.6083
##
## Rotated SS loadings: 23.885 6.696
##
## Factor correlations:
##
## F1 F2
## F1 1 0
## F2 0 1
f2.iecv.f20 <- sum.multi2.f20$rotF[,1]^2/sum.multi2.f20$h2
f2.summary <- as.data.frame(cbind(sum.multi2.f20$rotF[,1], sum.multi2.f20$h2,
f2.iecv.f20))
names(f2.summary) <- c("Gen Factor", "Communality", "IECV")
round(f2.summary,2)
## Gen Factor Communality IECV
## d05 0.74 0.59 0.93
## d06 0.55 0.36 0.83
## sb09 0.79 0.67 0.93
## sb11 0.75 0.67 0.85
## sb14 0.56 0.39 0.82
## sb15 0.69 0.59 0.82
## sb18 0.82 0.77 0.87
## sb21 0.79 0.63 1.00
## sb26 0.14 0.21 0.10
## sb27 0.74 0.58 0.95
## sb28 0.87 0.81 0.93
## sb30 0.34 0.44 0.26
## sb32 0.90 0.88 0.93
## sb34 0.88 0.78 1.00
## sb35 0.81 0.66 1.00
## sb36 0.84 0.70 1.00
## sb37 0.83 0.69 1.00
## sb38 0.82 0.74 0.90
## sb39 0.80 0.65 1.00
## sb40 0.76 0.58 0.99
## sb41 0.61 0.93 0.40
## sb42 0.47 0.94 0.24
## sb43 0.59 0.94 0.37
## sb44 0.60 0.92 0.39
## se09 0.39 0.15 1.00
## se10 0.83 0.69 0.99
## se12 0.81 0.85 0.78
## se18 0.43 0.63 0.30
## se19 0.34 0.46 0.26
## se20 0.26 0.10 0.67
## se21 0.38 0.15 1.00
## se22 0.78 0.83 0.73
## se23 0.67 0.72 0.62
## se25 0.23 0.38 0.13
## se26 0.20 0.04 0.97
## se49 0.16 0.22 0.12
## se57 0.07 0.44 0.01
## ss16 0.46 0.22 0.97
## ss35 0.42 0.19 0.93
## ss39 0.49 0.36 0.68
## ss53 0.62 0.38 1.00
## ss60 0.50 0.27 0.95
## ss65 0.79 0.62 1.00
## ss67 0.80 0.68 0.93
## ss68 0.78 0.63 0.96
## ss69 0.63 0.40 0.98
## ss70 0.63 0.40 1.00
## ss71 0.37 0.19 0.74
## ss72 0.56 0.51 0.61
## a1 0.86 0.75 0.98
## a2 0.85 0.72 1.00
## a3 0.89 0.81 0.98
## a4 0.72 0.53 0.98
## a5 0.75 0.58 0.97
## a6 0.78 0.61 1.00
calculate IECV 3 factor
sum.multi3.f20 <- summary(results.multi3.3pl.f20, rotate = "bifactorT")
##
## Rotation: bifactorT
##
## Rotated factor loadings:
##
## F1 F2 F3 h2
## d05 0.7131 -0.43074 0.09229 0.703
## d06 0.5016 -0.64844 -0.04837 0.674
## sb09 0.8227 0.03579 -0.30951 0.774
## sb11 0.8109 0.15990 0.14195 0.703
## sb14 0.6119 0.12791 0.16851 0.419
## sb15 0.6914 0.02625 -0.29595 0.566
## sb18 0.7661 0.23970 0.32647 0.751
## sb21 0.7589 0.01208 0.40892 0.743
## sb26 0.2186 0.33169 -0.13737 0.177
## sb27 0.7636 0.03189 0.13439 0.602
## sb28 0.8767 0.06312 -0.12002 0.787
## sb30 0.4115 0.41465 -0.41486 0.513
## sb32 0.9347 0.05824 -0.01444 0.877
## sb34 0.7470 0.07992 0.53730 0.853
## sb35 0.7935 -0.16897 -0.25483 0.723
## sb36 0.8180 -0.20557 -0.28694 0.794
## sb37 0.8061 -0.17169 -0.04977 0.682
## sb38 0.8954 -0.01000 -0.11833 0.816
## sb39 0.7519 -0.07738 0.29615 0.659
## sb40 0.7195 -0.09528 0.17730 0.558
## sb41 0.7490 0.60803 -0.00608 0.931
## sb42 0.6331 0.73448 -0.02110 0.941
## sb43 0.7342 0.62638 -0.06229 0.935
## sb44 0.7104 0.63093 -0.08539 0.910
## se09 0.4080 -0.07955 -0.06793 0.177
## se10 0.4608 0.13344 0.74218 0.781
## se12 0.3094 0.06060 0.85385 0.828
## se18 0.2706 -0.24600 0.76304 0.716
## se19 0.2637 -0.24396 0.72286 0.652
## se20 0.2308 -0.28334 0.02794 0.134
## se21 0.3782 -0.13210 -0.02645 0.161
## se22 0.5183 -0.03588 0.72402 0.794
## se23 0.4242 0.02382 0.77209 0.777
## se25 0.0790 -0.44470 0.40680 0.369
## se26 0.1512 0.04425 0.32040 0.127
## se49 0.2670 0.23979 -0.29296 0.215
## se57 0.0221 -0.27428 0.18533 0.110
## ss16 0.4117 -0.05570 0.26337 0.242
## ss35 0.3943 -0.19601 -0.04775 0.196
## ss39 0.4534 -0.43268 0.30871 0.488
## ss53 0.6193 -0.17587 -0.18425 0.448
## ss60 0.4336 -0.19909 0.10607 0.239
## ss65 0.7745 -0.16821 -0.01997 0.629
## ss67 0.8386 -0.05993 -0.26567 0.777
## ss68 0.8419 -0.08417 -0.01290 0.716
## ss69 0.4706 0.14065 0.46809 0.460
## ss70 0.6187 -0.16624 -0.03047 0.411
## ss71 0.3182 -0.29628 -0.01394 0.189
## ss72 0.6677 0.15004 -0.32114 0.571
## a1 0.8613 -0.07151 0.11469 0.760
## a2 0.8376 -0.12786 0.16775 0.746
## a3 0.8861 -0.07950 -0.09836 0.801
## a4 0.7115 -0.00946 0.06927 0.511
## a5 0.7144 -0.27707 0.22695 0.639
## a6 0.7310 -0.21118 0.15725 0.604
##
## Rotated SS loadings: 22.357 4.044 5.962
##
## Factor correlations:
##
## F1 F2 F3
## F1 1 0 0
## F2 0 1 0
## F3 0 0 1
f3.iecv.f20 <- sum.multi3.f20$rotF[,1]^2/sum.multi3.f20$h2
f3.summary <- as.data.frame(cbind(sum.multi3.f20$rotF[,1], sum.multi3.f20$h2,
f3.iecv.f20))
names(f3.summary) <- c("Gen Factor", "Communality", "IECV")
round(f3.summary,2)
## Gen Factor Communality IECV
## d05 0.71 0.70 0.72
## d06 0.50 0.67 0.37
## sb09 0.82 0.77 0.87
## sb11 0.81 0.70 0.93
## sb14 0.61 0.42 0.89
## sb15 0.69 0.57 0.84
## sb18 0.77 0.75 0.78
## sb21 0.76 0.74 0.77
## sb26 0.22 0.18 0.27
## sb27 0.76 0.60 0.97
## sb28 0.88 0.79 0.98
## sb30 0.41 0.51 0.33
## sb32 0.93 0.88 1.00
## sb34 0.75 0.85 0.65
## sb35 0.79 0.72 0.87
## sb36 0.82 0.79 0.84
## sb37 0.81 0.68 0.95
## sb38 0.90 0.82 0.98
## sb39 0.75 0.66 0.86
## sb40 0.72 0.56 0.93
## sb41 0.75 0.93 0.60
## sb42 0.63 0.94 0.43
## sb43 0.73 0.94 0.58
## sb44 0.71 0.91 0.55
## se09 0.41 0.18 0.94
## se10 0.46 0.78 0.27
## se12 0.31 0.83 0.12
## se18 0.27 0.72 0.10
## se19 0.26 0.65 0.11
## se20 0.23 0.13 0.40
## se21 0.38 0.16 0.89
## se22 0.52 0.79 0.34
## se23 0.42 0.78 0.23
## se25 0.08 0.37 0.02
## se26 0.15 0.13 0.18
## se49 0.27 0.21 0.33
## se57 0.02 0.11 0.00
## ss16 0.41 0.24 0.70
## ss35 0.39 0.20 0.79
## ss39 0.45 0.49 0.42
## ss53 0.62 0.45 0.86
## ss60 0.43 0.24 0.79
## ss65 0.77 0.63 0.95
## ss67 0.84 0.78 0.90
## ss68 0.84 0.72 0.99
## ss69 0.47 0.46 0.48
## ss70 0.62 0.41 0.93
## ss71 0.32 0.19 0.54
## ss72 0.67 0.57 0.78
## a1 0.86 0.76 0.98
## a2 0.84 0.75 0.94
## a3 0.89 0.80 0.98
## a4 0.71 0.51 0.99
## a5 0.71 0.64 0.80
## a6 0.73 0.60 0.89
calculate IECV 4 factor
sum.multi4.f20 <- summary(results.multi4.3pl.f20, rotate = "bifactorT")
##
## Rotation: bifactorT
##
## Rotated factor loadings:
##
## F1 F2 F3 F4 h2
## d05 0.6792 0.128776 0.0596 0.46982 0.702
## d06 0.4492 -0.038973 -0.0455 0.73695 0.748
## sb09 0.8018 -0.442639 -0.0581 -0.02456 0.843
## sb11 0.8017 0.118379 0.2061 -0.23490 0.754
## sb14 0.6929 0.049168 0.4042 -0.25545 0.711
## sb15 0.6862 -0.282883 -0.1252 0.00513 0.567
## sb18 0.7998 -0.022001 0.3408 -0.23956 0.814
## sb21 0.7601 -0.165911 0.3769 0.02434 0.748
## sb26 0.2268 -0.149954 -0.1574 -0.30710 0.193
## sb27 0.7662 0.117251 0.0628 -0.01801 0.605
## sb28 0.7430 0.013113 -0.5368 0.05841 0.844
## sb30 0.2701 -0.143558 -0.6891 -0.14446 0.589
## sb32 0.9288 0.053991 -0.1473 0.03585 0.889
## sb34 0.7976 -0.216625 0.4217 -0.02286 0.861
## sb35 0.7844 -0.236813 -0.0708 0.19640 0.715
## sb36 0.8149 -0.211391 0.0104 0.22303 0.759
## sb37 0.7709 -0.110830 0.1658 0.15206 0.657
## sb38 0.8987 -0.181044 0.0149 0.01536 0.841
## sb39 0.7921 -0.168761 0.3754 0.09508 0.806
## sb40 0.7263 -0.200035 0.1241 0.18320 0.616
## sb41 0.7609 0.068121 -0.2003 -0.54800 0.924
## sb42 0.6667 0.021231 -0.1958 -0.67976 0.945
## sb43 0.7555 -0.004184 -0.1646 -0.58625 0.942
## sb44 0.7386 0.034907 -0.1841 -0.57963 0.917
## se09 0.3670 0.069796 -0.1786 0.17493 0.202
## se10 0.3984 0.757024 -0.1293 -0.09196 0.757
## se12 0.3129 0.834482 0.1113 -0.05102 0.809
## se18 0.1763 0.633525 0.5419 0.17532 0.757
## se19 0.2018 0.226587 0.7924 0.05158 0.723
## se20 0.2112 -0.036226 0.1506 0.22893 0.121
## se21 0.3701 -0.039473 0.1051 0.12883 0.166
## se22 0.5020 0.739450 0.0687 0.03861 0.805
## se23 0.3035 0.802595 0.0703 -0.02946 0.742
## se25 0.0801 -0.120160 0.6117 0.40569 0.560
## se26 0.1476 0.388721 -0.0883 0.01746 0.181
## se49 0.2724 -0.238326 -0.1937 -0.19163 0.205
## se57 -0.0119 0.061169 0.2647 0.33980 0.189
## ss16 0.4249 -0.026833 0.1872 0.08046 0.223
## ss35 0.3895 -0.338420 0.2439 0.10710 0.337
## ss39 0.4767 0.120387 0.5346 0.15920 0.553
## ss53 0.5767 -0.125651 -0.0995 0.19887 0.398
## ss60 0.4371 -0.148388 0.1551 0.21729 0.284
## ss65 0.7634 -0.141501 0.1978 0.09714 0.651
## ss67 0.8722 -0.251411 0.0508 0.07840 0.833
## ss68 0.8503 -0.006488 -0.1334 0.13959 0.760
## ss69 0.6432 -0.054108 0.4874 -0.13960 0.674
## ss70 0.6064 -0.000575 -0.0617 0.22361 0.422
## ss71 0.3365 -0.269381 0.3538 0.19321 0.348
## ss72 0.4001 -0.059012 -0.4979 -0.02638 0.412
## a1 0.8574 0.156932 0.0370 0.09373 0.770
## a2 0.8184 0.175385 0.1075 0.13208 0.730
## a3 0.8593 0.016077 -0.2438 0.19056 0.834
## a4 0.6702 0.206480 -0.1050 0.07697 0.509
## a5 0.7010 0.236066 0.1530 0.28266 0.650
## a6 0.7583 0.079135 0.1408 0.16344 0.628
##
## Rotated SS loadings: 21.81 4.303 4.539 3.571
##
## Factor correlations:
##
## F1 F2 F3 F4
## F1 1 0 0 0
## F2 0 1 0 0
## F3 0 0 1 0
## F4 0 0 0 1
f4.iecv.f20 <- sum.multi4.f20$rotF[,1]^2/sum.multi4.f20$h2
f4.summary <- as.data.frame(cbind(sum.multi4.f20$rotF[,1], sum.multi4.f20$h2,
f4.iecv.f20))
names(f4.summary) <- c("Gen Factor", "Communality", "IECV")
round(f4.summary,2)
## Gen Factor Communality IECV
## d05 0.68 0.70 0.66
## d06 0.45 0.75 0.27
## sb09 0.80 0.84 0.76
## sb11 0.80 0.75 0.85
## sb14 0.69 0.71 0.68
## sb15 0.69 0.57 0.83
## sb18 0.80 0.81 0.79
## sb21 0.76 0.75 0.77
## sb26 0.23 0.19 0.27
## sb27 0.77 0.61 0.97
## sb28 0.74 0.84 0.65
## sb30 0.27 0.59 0.12
## sb32 0.93 0.89 0.97
## sb34 0.80 0.86 0.74
## sb35 0.78 0.71 0.86
## sb36 0.81 0.76 0.88
## sb37 0.77 0.66 0.90
## sb38 0.90 0.84 0.96
## sb39 0.79 0.81 0.78
## sb40 0.73 0.62 0.86
## sb41 0.76 0.92 0.63
## sb42 0.67 0.95 0.47
## sb43 0.76 0.94 0.61
## sb44 0.74 0.92 0.60
## se09 0.37 0.20 0.67
## se10 0.40 0.76 0.21
## se12 0.31 0.81 0.12
## se18 0.18 0.76 0.04
## se19 0.20 0.72 0.06
## se20 0.21 0.12 0.37
## se21 0.37 0.17 0.82
## se22 0.50 0.80 0.31
## se23 0.30 0.74 0.12
## se25 0.08 0.56 0.01
## se26 0.15 0.18 0.12
## se49 0.27 0.21 0.36
## se57 -0.01 0.19 0.00
## ss16 0.42 0.22 0.81
## ss35 0.39 0.34 0.45
## ss39 0.48 0.55 0.41
## ss53 0.58 0.40 0.84
## ss60 0.44 0.28 0.67
## ss65 0.76 0.65 0.89
## ss67 0.87 0.83 0.91
## ss68 0.85 0.76 0.95
## ss69 0.64 0.67 0.61
## ss70 0.61 0.42 0.87
## ss71 0.34 0.35 0.33
## ss72 0.40 0.41 0.39
## a1 0.86 0.77 0.95
## a2 0.82 0.73 0.92
## a3 0.86 0.83 0.88
## a4 0.67 0.51 0.88
## a5 0.70 0.65 0.76
## a6 0.76 0.63 0.92
target rotation, 3 factors
target3.f20 <- matrix(data = c(rep(1,24),rep(0,13),rep(0,18),
rep(0,24),rep(1,13),rep(0,18),
rep(0,24),rep(0,13),rep(1,18)), ncol = 3)
coef.target3.3pl.f20 <- coef(results.multi3.3pl.f20, simplify = T, rotate = 'targetT',
Target = target3.f20)
##
## Rotation: targetT
coef.target3.3pl.f20
## $items
## a1 a2 a3 d g u
## d05 2.055 1.560 0.432 -0.943 0.074 1
## d06 1.761 1.609 -0.557 -0.147 0.025 1
## sb09 3.015 -0.320 0.853 3.183 0.039 1
## sb11 1.851 0.322 1.826 2.135 0.039 1
## sb14 0.930 0.249 1.079 1.607 0.078 1
## sb15 1.875 -0.246 0.455 -0.323 0.045 1
## sb18 1.535 0.523 2.471 1.546 0.213 1
## sb21 1.524 1.263 2.114 2.493 0.102 1
## sb26 0.340 -0.565 0.432 -0.194 0.073 1
## sb27 1.573 0.504 1.287 1.375 0.081 1
## sb28 2.925 0.073 1.465 -0.839 0.196 1
## sb30 1.121 -1.242 0.507 -1.716 0.193 1
## sb32 3.857 0.487 2.365 -1.307 0.099 1
## sb34 1.636 1.798 3.304 1.976 0.255 1
## sb35 2.701 0.307 0.419 1.211 0.092 1
## sb36 3.294 0.397 0.372 2.281 0.052 1
## sb37 2.262 0.693 0.781 1.471 0.198 1
## sb38 3.267 0.313 1.435 -1.602 0.190 1
## sb39 1.515 1.080 1.462 0.931 0.349 1
## sb40 1.414 0.775 1.030 0.967 0.088 1
## sb41 3.321 -2.190 4.803 0.130 0.040 1
## sb42 2.760 -3.234 5.284 0.665 0.016 1
## sb43 3.501 -2.613 4.767 0.810 0.145 1
## sb44 2.912 -2.342 3.914 1.192 0.074 1
## se09 0.747 0.157 0.206 -0.036 0.227 1
## se10 0.056 1.630 2.769 -4.282 0.056 1
## se12 -0.622 2.258 2.916 -3.242 0.038 1
## se18 -0.243 2.287 1.419 -4.009 0.099 1
## se19 -0.183 1.983 1.204 -3.665 0.087 1
## se20 0.448 0.492 -0.084 0.207 0.092 1
## se21 0.677 0.269 0.163 0.199 0.147 1
## se22 0.410 2.152 2.525 -4.385 0.077 1
## se23 -0.024 1.959 2.497 -4.842 0.113 1
## se25 -0.063 1.301 0.020 -2.307 0.058 1
## se26 -0.057 0.357 0.541 -0.869 0.052 1
## se49 0.606 -0.621 0.196 -1.118 0.033 1
## se57 -0.018 0.592 -0.085 -1.838 0.045 1
## ss16 0.469 0.542 0.641 -0.275 0.054 1
## ss35 0.763 0.345 0.081 -0.738 0.030 1
## ss39 0.796 1.420 0.336 -3.285 0.280 1
## ss53 1.499 0.267 0.189 0.118 0.240 1
## ss60 0.709 0.563 0.300 -0.212 0.119 1
## ss65 1.977 0.673 0.736 0.548 0.280 1
## ss67 3.086 0.048 0.768 -0.211 0.592 1
## ss68 2.377 0.617 1.129 -2.609 0.113 1
## ss69 0.351 0.625 1.399 -1.119 0.167 1
## ss70 1.284 0.460 0.404 -0.439 0.075 1
## ss71 0.646 0.503 -0.069 -0.547 0.024 1
## ss72 1.796 -0.541 0.588 -3.398 0.149 1
## a1 2.424 0.932 1.558 1.418 0.011 1
## a2 2.244 1.150 1.466 1.622 0.050 1
## a3 3.136 0.544 1.245 0.131 0.195 1
## a4 1.407 0.409 0.939 -1.043 0.102 1
## a5 1.594 1.332 0.897 0.817 0.111 1
## a6 1.612 1.025 0.874 1.199 0.297 1
##
## $means
## F1 F2 F3
## 0 0 0
##
## $cov
## F1 F2 F3
## F1 1 0 0
## F2 0 1 0
## F3 0 0 1
target rotation, 4 factors
target4.f20 <- matrix(data = c(rep(1,55),
rep(1,24),rep(0,13),rep(0,18),
rep(0,24),rep(1,13),rep(0,18),
rep(0,24),rep(0,13),rep(1,18)), ncol = 4)
coef.target4.3pl.f20 <- coef(results.multi4.3pl.f20, simplify = T, rotate = 'targetT',
Target = target4.f20)
##
## Rotation: targetT
coef.target4.3pl.f20
## $items
## a1 a2 a3 a4 d g u
## d05 2.295 -0.245 0.167 1.214 -0.919 0.062 1
## d06 1.978 -1.144 -0.640 1.728 -0.219 0.026 1
## sb09 2.291 2.459 -1.342 1.559 3.565 0.091 1
## sb11 2.070 1.863 0.993 0.399 2.296 0.042 1
## sb14 1.347 1.800 1.233 0.745 1.435 0.328 1
## sb15 1.342 1.080 -0.683 0.596 -0.320 0.043 1
## sb18 2.022 2.469 1.165 1.053 1.791 0.195 1
## sb21 1.663 1.605 0.597 1.702 2.457 0.124 1
## sb26 0.187 0.713 -0.285 -0.262 -0.227 0.080 1
## sb27 1.817 0.915 0.386 0.389 1.291 0.105 1
## sb28 3.445 0.912 -1.626 -0.554 -0.051 0.063 1
## sb30 0.872 0.482 -1.496 -0.963 -1.071 0.058 1
## sb32 4.381 1.861 -0.301 0.593 -1.446 0.095 1
## sb34 2.192 2.541 0.846 2.457 1.565 0.317 1
## sb35 2.092 0.986 -0.728 1.178 1.033 0.122 1
## sb36 2.343 1.062 -0.544 1.481 2.001 0.078 1
## sb37 1.780 0.940 0.102 1.220 1.569 0.148 1
## sb38 2.987 2.097 -0.395 1.354 -1.658 0.182 1
## sb39 2.073 1.684 0.620 2.123 0.998 0.372 1
## sb40 1.547 0.849 -0.168 1.231 0.968 0.106 1
## sb41 3.556 4.404 0.115 -1.786 0.113 0.031 1
## sb42 3.214 5.741 0.101 -2.605 0.577 0.022 1
## sb43 3.698 5.462 0.029 -1.782 0.764 0.151 1
## sb44 3.136 4.381 0.083 -1.681 1.149 0.087 1
## se09 0.827 -0.034 -0.208 0.073 0.258 0.115 1
## se10 2.133 -0.274 1.487 -1.480 -4.041 0.049 1
## se12 2.018 -0.557 2.522 -1.244 -3.179 0.043 1
## se18 0.946 -0.770 2.701 0.486 -3.619 0.049 1
## se19 0.157 0.306 2.328 1.417 -3.805 0.067 1
## se20 0.342 -0.060 0.085 0.521 0.202 0.088 1
## se21 0.573 0.208 0.063 0.450 0.199 0.144 1
## se22 2.625 -0.343 2.083 -0.780 -4.582 0.078 1
## se23 1.728 -0.527 1.984 -1.065 -3.766 0.066 1
## se25 -0.080 -0.300 0.746 1.740 -2.596 0.039 1
## se26 0.550 -0.226 0.361 -0.395 -0.953 0.058 1
## se49 0.282 0.651 -0.489 -0.075 -1.145 0.045 1
## se57 0.061 -0.462 0.319 0.599 -2.097 0.065 1
## ss16 0.623 0.352 0.217 0.521 -0.266 0.047 1
## ss35 0.363 0.596 -0.121 0.986 -0.869 0.033 1
## ss39 0.878 0.367 1.141 1.173 -3.236 0.268 1
## ss53 1.157 0.346 -0.396 0.545 0.247 0.195 1
## ss60 0.676 0.262 -0.034 0.790 -0.318 0.144 1
## ss65 1.647 1.094 0.139 1.218 0.503 0.277 1
## ss67 2.746 1.941 -0.521 1.683 -0.340 0.595 1
## ss68 2.767 0.962 -0.382 0.682 -2.972 0.120 1
## ss69 1.059 1.532 1.069 1.169 -2.008 0.231 1
## ss70 1.329 0.240 -0.167 0.509 -0.462 0.076 1
## ss71 0.309 0.389 0.106 1.136 -0.696 0.031 1
## ss72 0.996 0.334 -0.861 -0.431 -2.325 0.097 1
## a1 2.841 0.977 0.463 0.678 1.420 0.009 1
## a2 2.503 0.759 0.609 0.775 1.587 0.033 1
## a3 3.580 0.898 -0.773 0.620 0.216 0.179 1
## a4 1.683 0.376 0.144 0.066 -0.943 0.076 1
## a5 2.060 0.128 0.657 0.837 0.805 0.108 1
## a6 1.894 0.629 0.389 0.866 1.064 0.333 1
##
## $means
## F1 F2 F3 F4
## 0 0 0 0
##
## $cov
## F1 F2 F3 F4
## F1 1 0 0 0
## F2 0 1 0 0
## F3 0 0 1 0
## F4 0 0 0 1
make plots
# 2 factors
f2.summary <- f2.summary[order(f2.summary$IECV),]
f2.summary$color <- ifelse(f2.summary$IECV < .5, "green3",
ifelse(f2.summary$IECV > .5 & f2.summary$IECV < .8,
"gold2", "red"))
f2.summary$pch <- ifelse(f2.summary$Communality < .33, 1, 16)
plot(f2.summary$Communality, f2.summary$IECV,
xlab = "Communality", ylab = "IECV", main = "2 Dimensions",
col = f2.summary$color, pch = f2.summary$pch)
text(-.03+f2.summary$Communality, f2.summary$IECV,
labels = row.names(f2.summary))
plot(1-f2.summary$Communality, f2.summary$IECV,
xlab = "Uniqueness", ylab = "IECV", main = "2 Dimensions")
plot(f2.summary$IECV, xlab = "Item", ylab = "IECV", xaxt = "n")
axis(1, at = seq(1,55,1), las = 2, labels = row.names(f2.summary))
# 3 factors
f3.summary <- f3.summary[order(f3.summary$IECV),]
f3.summary$color <- ifelse(f3.summary$IECV < .5, "green3",
ifelse(f3.summary$IECV > .5 & f3.summary$IECV < .8,
"gold2", "red"))
f3.summary$pch <- ifelse(f3.summary$Communality < .33, 1, 16)
plot(f3.summary$Communality, f3.summary$IECV,
xlab = "Communality", ylab = "IECV", main = "3 Dimensions",
col = f3.summary$color, pch = f3.summary$pch)
text(-.03+f3.summary$Communality, f3.summary$IECV,
labels = row.names(f3.summary))
plot(1-f3.summary$Communality, f3.summary$IECV,
xlab = "Uniqueness", ylab = "IECV", main = "3 Dimensions")
plot(f3.summary$IECV, xlab = "Item", ylab = "IECV", xaxt = "n")
axis(1, at = seq(1,55,1), las = 2, labels = row.names(f3.summary))
# 4 factors
f4.summary <- f4.summary[order(f4.summary$IECV),]
f4.summary$color <- ifelse(f4.summary$IECV < .5, "green3",
ifelse(f4.summary$IECV > .5 & f4.summary$IECV < .8,
"gold2", "red"))
f4.summary$pch <- ifelse(f4.summary$Communality < .33, 1, 16)
plot(f4.summary$Communality, f4.summary$IECV,
xlab = "Communality", ylab = "IECV", main = "4 Dimensions",
col = f4.summary$color, pch = f4.summary$pch)
text(-.03+f4.summary$Communality, f4.summary$IECV,
labels = row.names(f4.summary))
plot(1-f4.summary$Communality, f4.summary$IECV,
xlab = "Uniqueness", ylab = "IECV", main = "4 Dimensions")
plot(f4.summary$IECV, xlab = "Item", ylab = "IECV", xaxt = "n")
axis(1, at = seq(1,55,1), las = 2, labels = row.names(f4.summary))