This script cleans & analyzes the fall 20 ACI data

Contents:

Part 1 - load test data & prep for analysis

Part 2 - basic psychometric analyses

Part 3 - multidimensional analyses

Part 1

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
s21 <- read.csv("G:/My Drive/EACI/mplus/spring 21/sp21.csv")

clean up some variables

itemNames <- c("f01","f02","f03","f04","f05","f06","f07","f08","f09","f10","f11",
"f12","f13","f14","f15","f16","f17","f18","f19","f20","f21","f22","f23","f24",
"f25","f26","f27","f28","f29","f30","f31","f32","f33","f34","f35","f36","f37",
"f38","f39","f40","f41","f42","f43","f44a","f44b","f44c","f44d","f45a","f45b",
"f45c","f45d","f46","f47","f48","f49","f50","f51","f52","f53","f54","f55","f56",
"f57","f58","f59","f60","f61","f62","f63","f64","f65","f66","A1","A2","A3","A4",
"A5","A6")
names(s21) <- itemNames
s21[s21 == -9] <- NA

Part 2

basic descriptives

itemDesc <- describe(s21) # get item descriptives
itemDesc
##      vars   n mean   sd median trimmed  mad min max range  skew kurtosis   se
## f01     1 303 0.13 0.33    0.0    0.03 0.00   0   1     1  2.25     3.08 0.02
## f02     2 359 0.13 0.34    0.0    0.04 0.00   0   1     1  2.14     2.60 0.02
## f03     3 375 0.31 0.46    0.0    0.26 0.00   0   1     1  0.84    -1.31 0.02
## f04     4 328 0.76 0.43    1.0    0.82 0.00   0   1     1 -1.21    -0.55 0.02
## f05     5 357 0.79 0.41    1.0    0.86 0.00   0   1     1 -1.44     0.07 0.02
## f06     6 348 0.84 0.37    1.0    0.92 0.00   0   1     1 -1.87     1.49 0.02
## f07     7 299 0.71 0.45    1.0    0.76 0.00   0   1     1 -0.93    -1.13 0.03
## f08     8 360 0.72 0.45    1.0    0.78 0.00   0   1     1 -0.99    -1.03 0.02
## f09     9 368 0.48 0.50    0.0    0.47 0.00   0   1     1  0.09    -2.00 0.03
## f10    10 327 0.49 0.50    0.0    0.49 0.00   0   1     1  0.03    -2.01 0.03
## f11    11 352 0.66 0.48    1.0    0.70 0.00   0   1     1 -0.66    -1.58 0.03
## f12    12 342 0.51 0.50    1.0    0.51 0.00   0   1     1 -0.05    -2.00 0.03
## f13    13 260 0.45 0.50    0.0    0.44 0.00   0   1     1  0.20    -1.97 0.03
## f14    14 296 0.32 0.47    0.0    0.27 0.00   0   1     1  0.78    -1.40 0.03
## f15    15 304 0.51 0.50    1.0    0.51 0.00   0   1     1 -0.04    -2.01 0.03
## f16    16 281 0.32 0.47    0.0    0.27 0.00   0   1     1  0.78    -1.39 0.03
## f17    17 292 0.29 0.46    0.0    0.24 0.00   0   1     1  0.92    -1.17 0.03
## f18    18 279 0.41 0.49    0.0    0.39 0.00   0   1     1  0.37    -1.87 0.03
## f19    19 255 0.58 0.50    1.0    0.60 0.00   0   1     1 -0.31    -1.91 0.03
## f20    20 298 0.50 0.50    0.5    0.50 0.74   0   1     1  0.00    -2.01 0.03
## f21    21 308 0.59 0.49    1.0    0.61 0.00   0   1     1 -0.35    -1.88 0.03
## f22    22 284 0.51 0.50    1.0    0.51 0.00   0   1     1 -0.03    -2.01 0.03
## f23    23 299 0.56 0.50    1.0    0.57 0.00   0   1     1 -0.22    -1.96 0.03
## f24    24 287 0.35 0.48    0.0    0.31 0.00   0   1     1  0.63    -1.61 0.03
## f25    25 248 0.78 0.41    1.0    0.85 0.00   0   1     1 -1.36    -0.15 0.03
## f26    26 262 0.71 0.45    1.0    0.77 0.00   0   1     1 -0.94    -1.12 0.03
## f27    27 283 0.62 0.49    1.0    0.65 0.00   0   1     1 -0.50    -1.76 0.03
## f28    28 263 0.59 0.49    1.0    0.62 0.00   0   1     1 -0.38    -1.86 0.03
## f29    29 272 0.61 0.49    1.0    0.63 0.00   0   1     1 -0.43    -1.82 0.03
## f30    30 265 0.68 0.47    1.0    0.72 0.00   0   1     1 -0.76    -1.42 0.03
## f31    31 244 0.68 0.47    1.0    0.72 0.00   0   1     1 -0.77    -1.41 0.03
## f32    32 279 0.38 0.49    0.0    0.35 0.00   0   1     1  0.49    -1.76 0.03
## f33    33 281 0.34 0.48    0.0    0.30 0.00   0   1     1  0.66    -1.56 0.03
## f34    34 265 0.58 0.49    1.0    0.60 0.00   0   1     1 -0.31    -1.91 0.03
## f35    35 272 0.50 0.50    1.0    0.50 0.00   0   1     1 -0.01    -2.01 0.03
## f36    36 265 0.55 0.50    1.0    0.56 0.00   0   1     1 -0.19    -1.97 0.03
## f37    37 260 0.37 0.48    0.0    0.34 0.00   0   1     1  0.52    -1.73 0.03
## f38    38 237 0.73 0.44    1.0    0.79 0.00   0   1     1 -1.05    -0.89 0.03
## f39    39 268 0.77 0.42    1.0    0.84 0.00   0   1     1 -1.29    -0.33 0.03
## f40    40 250 0.68 0.47    1.0    0.72 0.00   0   1     1 -0.77    -1.42 0.03
## f41    41 261 0.37 0.48    0.0    0.33 0.00   0   1     1  0.55    -1.71 0.03
## f42    42 257 0.74 0.44    1.0    0.80 0.00   0   1     1 -1.08    -0.83 0.03
## f43    43 235 0.77 0.42    1.0    0.83 0.00   0   1     1 -1.25    -0.44 0.03
## f44a   44 283 0.56 0.50    1.0    0.57 0.00   0   1     1 -0.23    -1.95 0.03
## f44b   45 283 0.78 0.41    1.0    0.85 0.00   0   1     1 -1.35    -0.18 0.02
## f44c   46 283 0.78 0.41    1.0    0.85 0.00   0   1     1 -1.38    -0.11 0.02
## f44d   47 283 0.21 0.41    0.0    0.14 0.00   0   1     1  1.43     0.04 0.02
## f45a   48 272 0.86 0.34    1.0    0.95 0.00   0   1     1 -2.11     2.47 0.02
## f45b   49 272 0.35 0.48    0.0    0.31 0.00   0   1     1  0.65    -1.59 0.03
## f45c   50 272 0.47 0.50    0.0    0.47 0.00   0   1     1  0.10    -2.00 0.03
## f45d   51 272 0.71 0.45    1.0    0.77 0.00   0   1     1 -0.94    -1.12 0.03
## f46    52 248 0.60 0.49    1.0    0.62 0.00   0   1     1 -0.39    -1.85 0.03
## f47    53 263 0.48 0.50    0.0    0.47 0.00   0   1     1  0.08    -2.00 0.03
## f48    54 254 0.49 0.50    0.0    0.49 0.00   0   1     1  0.05    -2.01 0.03
## f49    55 237 0.61 0.49    1.0    0.64 0.00   0   1     1 -0.46    -1.80 0.03
## f50    56 267 0.55 0.50    1.0    0.57 0.00   0   1     1 -0.22    -1.96 0.03
## f51    57 267 0.52 0.50    1.0    0.53 0.00   0   1     1 -0.08    -2.00 0.03
## f52    58 248 0.33 0.47    0.0    0.28 0.00   0   1     1  0.73    -1.47 0.03
## f53    59 259 0.39 0.49    0.0    0.36 0.00   0   1     1  0.45    -1.81 0.03
## f54    60 245 0.27 0.44    0.0    0.21 0.00   0   1     1  1.03    -0.94 0.03
## f55    61 226 0.21 0.41    0.0    0.14 0.00   0   1     1  1.40    -0.05 0.03
## f56    62 261 0.20 0.40    0.0    0.13 0.00   0   1     1  1.47     0.16 0.02
## f57    63 225 0.37 0.48    0.0    0.34 0.00   0   1     1  0.54    -1.72 0.03
## f58    64 259 0.67 0.47    1.0    0.71 0.00   0   1     1 -0.71    -1.50 0.03
## f59    65 254 0.58 0.49    1.0    0.60 0.00   0   1     1 -0.32    -1.91 0.03
## f60    66 260 0.65 0.48    1.0    0.69 0.00   0   1     1 -0.64    -1.59 0.03
## f61    67 248 0.71 0.45    1.0    0.76 0.00   0   1     1 -0.94    -1.12 0.03
## f62    68 258 0.46 0.50    0.0    0.45 0.00   0   1     1  0.15    -1.98 0.03
## f63    69 241 0.45 0.50    0.0    0.44 0.00   0   1     1  0.21    -1.97 0.03
## f64    70 250 0.65 0.48    1.0    0.69 0.00   0   1     1 -0.63    -1.60 0.03
## f65    71 258 0.52 0.50    1.0    0.52 0.00   0   1     1 -0.08    -2.00 0.03
## f66    72 245 0.45 0.50    0.0    0.44 0.00   0   1     1  0.19    -1.97 0.03
## A1     73 748 0.62 0.49    1.0    0.64 0.00   0   1     1 -0.48    -1.77 0.02
## A2     74 743 0.64 0.48    1.0    0.68 0.00   0   1     1 -0.60    -1.65 0.02
## A3     75 738 0.57 0.50    1.0    0.58 0.00   0   1     1 -0.26    -1.93 0.02
## A4     76 742 0.38 0.49    0.0    0.35 0.00   0   1     1  0.49    -1.76 0.02
## A5     77 739 0.67 0.47    1.0    0.71 0.00   0   1     1 -0.72    -1.48 0.02
## A6     78 744 0.72 0.45    1.0    0.78 0.00   0   1     1 -0.98    -1.04 0.02
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-78' # make the 1 dimensional model

fit the Rasch

results.1pl.s21 <- mirt(data=s21, model=m_1dimension, itemtype="Rasch", SE=TRUE, verbose=FALSE)
coef.1pl.s21 <- coef(results.1pl.s21, IRTpars=TRUE, simplify=TRUE)

fit the 2pl

results.2pl.s21 <- mirt(data=s21, model=m_1dimension, itemtype="2PL", SE=TRUE, verbose=FALSE)
coef.2pl.s21 <- coef(results.2pl.s21, IRTpars=TRUE, simplify=TRUE)

fit the 3pl

param.num.3pl.s21 <- mirt(data=s21, model=m_1dimension, itemtype="3PL", SE=TRUE, verbose=FALSE,
                      pars='values') # get the parameter numbers
m <- 'F = 1-78
      PRIOR = (1-78, g, norm, -1.1,3)'
model <- mirt.model(m)
results.3pl.s21 <- mirt(data=s21, model=model, itemtype="3PL", SE=TRUE, verbose=FALSE)
## EM cycles terminated after 500 iterations.
coef.3pl.s21    <- coef(results.3pl.s21, IRTpars=TRUE, simplify=TRUE)
coef.3pl.s21
## $items
##           a      b     g u
## f01  -2.099 -2.858 0.112 1
## f02   1.183  2.481 0.056 1
## f03   5.127  1.309 0.214 1
## f04   4.669  0.054 0.510 1
## f05   1.389 -1.149 0.104 1
## f06   2.429 -0.703 0.450 1
## f07   2.114 -0.204 0.309 1
## f08   1.730 -0.114 0.404 1
## f09   2.266  0.670 0.246 1
## f10   1.554  0.734 0.253 1
## f11   0.888 -0.083 0.278 1
## f12   3.077  1.341 0.452 1
## f13   0.711  1.205 0.192 1
## f14   2.574  1.279 0.194 1
## f15   1.780  1.094 0.365 1
## f16   1.597  1.169 0.125 1
## f17   3.713  1.236 0.154 1
## f18   2.169  1.205 0.295 1
## f19   5.192  0.215 0.230 1
## f20   1.533  0.353 0.157 1
## f21   3.161  0.390 0.334 1
## f22   1.120  0.108 0.043 1
## f23   1.339  0.559 0.300 1
## f24   0.799  1.195 0.052 1
## f25   0.935 -1.361 0.102 1
## f26   3.069 -0.285 0.285 1
## f27   1.976  0.632 0.434 1
## f28   1.865 -0.177 0.050 1
## f29   8.334  0.406 0.358 1
## f30   4.098 -0.244 0.232 1
## f31   2.647 -0.388 0.067 1
## f32   3.861  0.893 0.203 1
## f33   3.248  1.001 0.165 1
## f34   2.959  0.290 0.263 1
## f35   1.953  0.267 0.115 1
## f36   2.901  0.133 0.183 1
## f37   1.745  1.209 0.199 1
## f38   2.324 -0.633 0.027 1
## f39   2.082 -0.794 0.165 1
## f40   2.161 -0.447 0.054 1
## f41   2.526  0.861 0.130 1
## f42   2.518 -0.745 0.032 1
## f43   2.039 -0.762 0.069 1
## f44a  2.405 -0.022 0.114 1
## f44b 11.355  0.539 0.683 1
## f44c  2.940  0.359 0.652 1
## f44d  2.316  1.567 0.110 1
## f45a 16.924  1.002 0.831 1
## f45b  1.566  2.764 0.318 1
## f45c 16.336  1.067 0.363 1
## f45d 14.975  1.105 0.655 1
## f46   2.530  0.279 0.277 1
## f47   4.097  0.802 0.282 1
## f48   4.524  0.373 0.201 1
## f49   2.418 -0.053 0.136 1
## f50   2.584  1.117 0.448 1
## f51   0.854  0.144 0.084 1
## f52   0.290  8.733 0.270 1
## f53   2.484  1.792 0.328 1
## f54   1.126  1.947 0.154 1
## f55   2.807  1.407 0.117 1
## f56   2.465  1.582 0.108 1
## f57   2.492  1.026 0.210 1
## f58   1.601 -0.150 0.275 1
## f59   3.845  1.461 0.522 1
## f60   3.936  0.214 0.378 1
## f61   2.011 -0.624 0.049 1
## f62   3.408  0.620 0.197 1
## f63   1.336  0.570 0.145 1
## f64   0.825  0.986 0.473 1
## f65   4.292  0.781 0.336 1
## f66   2.702  0.610 0.229 1
## A1    2.497 -0.186 0.108 1
## A2    1.847 -0.327 0.100 1
## A3    2.490  0.352 0.275 1
## A4    2.130  0.783 0.136 1
## A5    1.653 -0.577 0.027 1
## A6    3.045 -0.429 0.202 1
## 
## $means
## F 
## 0 
## 
## $cov
##   F
## F 1

lr tests

anova(results.1pl.s21, results.2pl.s21)
## 
## Model 1: mirt(data = s21, model = m_1dimension, itemtype = "Rasch", SE = TRUE, 
##     verbose = FALSE)
## Model 2: mirt(data = s21, model = m_1dimension, itemtype = "2PL", SE = TRUE, 
##     verbose = FALSE)
##        AIC    SABIC       HQ      BIC    logLik      X2  df   p
## 1 27780.29 27921.54 27928.93 28172.45 -13811.14     NaN NaN NaN
## 2 27243.13 27522.05 27536.65 28017.53 -13465.57 691.157  77   0
anova(results.2pl.s21, results.3pl.s21)
## 
## Model 1: mirt(data = s21, model = m_1dimension, itemtype = "2PL", SE = TRUE, 
##     verbose = FALSE)
## Model 2: mirt(data = s21, model = model, itemtype = "3PL", SE = TRUE, 
##     verbose = FALSE)
##        AIC    SABIC       HQ      BIC    logLik   logPost  df
## 1 27243.13 27522.05 27536.65 28017.53 -13465.57 -13465.57 NaN
## 2 27080.76 27499.15 27521.04 28242.37 -13306.38 -13468.52  78
firstFive <- c(1:5)
itemplot(results.3pl.s21, 1)

plot(results.3pl.s21, type='trace', auto.key=F) # all item trace lines

plot(results.3pl.s21, type='infotrace',auto.key=T)

plot(results.3pl.s21, type='info', auto.key=T) # all item trace lines

theta <- fscores(results.3pl.s21)

Part 3

2 factor model

#parnums.multi2.3pl.s21 <- mirt(data=s21, model=2, itemtype="3PL",
#                           pars = 'values', SE=TRUE, verbose=FALSE) # get param numbers
#results.multi2.3pl.s21 <- mirt(data=s21, model=2, itemtype="3PL",
#                           parprior = list(c(seq(4,390,5), 'norm', -1.1,3),
#                                           c(seq(1,390,5), 'norm',  0.0,3),
#                                           c(seq(2,390,5), 'norm',  0.0,3),
#                                           c(seq(3,390,5), 'norm',  0.0,3)),
#                           SE=TRUE, verbose=FALSE) # fit the 3pl
#save(results.multi2.3pl.s21, file = "results.multi2.3pl.s21")
load('C:/Users/Sydne/Documents/results.multi2.3pl.s21')
coef.multi2.3pl.s21 <- coef(results.multi2.3pl.s21, simplify = T, rotate = 'bifactorT')
## 
## Rotation:  bifactorT
coef.multi2.3pl.s21
## $items
##          a1     a2      d     g u
## f01  -0.239 -1.298 -2.794 0.027 1
## f02   1.021  0.082 -2.706 0.048 1
## f03   2.736  0.520 -3.690 0.192 1
## f04   3.644 -2.015  1.478 0.346 1
## f05   1.375 -0.390  1.622 0.116 1
## f06   3.051 -3.116  4.631 0.049 1
## f07   1.924 -1.189  1.310 0.093 1
## f08   1.236 -0.749  1.041 0.147 1
## f09   1.706  0.428 -0.913 0.194 1
## f10   1.433  0.248 -0.976 0.235 1
## f11   0.949 -0.107 -0.101 0.334 1
## f12   0.506  1.067 -0.354 0.156 1
## f13   1.048  1.015 -1.442 0.255 1
## f14   2.056 -0.267 -2.738 0.186 1
## f15   1.158 -0.037 -1.164 0.312 1
## f16   1.450  0.106 -1.698 0.115 1
## f17   2.356  0.110 -2.922 0.129 1
## f18   2.013 -0.441 -2.457 0.287 1
## f19   3.996  0.368 -0.634 0.206 1
## f20   1.674  0.524 -0.622 0.172 1
## f21   2.067  0.394 -0.281 0.251 1
## f22   1.164  0.516 -0.104 0.039 1
## f23   1.345  0.619 -0.621 0.271 1
## f24   0.784 -0.239 -0.956 0.056 1
## f25   0.972  0.513  1.172 0.199 1
## f26   2.770  0.109  1.026 0.258 1
## f27   1.180  0.758 -0.113 0.282 1
## f28   1.939  0.328  0.396 0.047 1
## f29   4.386 -1.369 -0.894 0.302 1
## f30   3.583  0.329  1.141 0.211 1
## f31   2.423  0.389  1.109 0.046 1
## f32   3.288 -1.448 -2.817 0.184 1
## f33   4.194 -0.978 -3.897 0.156 1
## f34   2.722  0.463 -0.618 0.245 1
## f35   2.438 -1.674 -0.290 0.065 1
## f36   2.680 -0.355 -0.226 0.168 1
## f37   0.946  0.648 -1.014 0.085 1
## f38   2.171  0.040  1.471 0.030 1
## f39   2.303  1.031  2.156 0.087 1
## f40   2.232 -0.297  1.040 0.069 1
## f41   2.198  0.484 -1.792 0.111 1
## f42   2.566  0.512  2.032 0.030 1
## f43   1.963  0.336  1.575 0.074 1
## f44a  2.233  0.262  0.253 0.081 1
## f44b  3.339 -0.277 -1.031 0.645 1
## f44c  2.405  0.759 -0.387 0.614 1
## f44d  2.260  0.746 -3.642 0.105 1
## f45a  0.574  1.838  1.840 0.431 1
## f45b  0.161  0.110 -1.287 0.164 1
## f45c  2.371  4.265 -1.596 0.159 1
## f45d  1.348  4.371 -0.289 0.454 1
## f46   3.055  1.406 -0.687 0.261 1
## f47   2.928  0.642 -1.965 0.245 1
## f48   3.887  1.135 -1.099 0.167 1
## f49   3.429  1.944  0.401 0.103 1
## f50   2.093 -0.001 -2.334 0.437 1
## f51   0.885 -0.209 -0.127 0.092 1
## f52   0.628 -1.032 -2.681 0.250 1
## f53   1.490  0.417 -2.931 0.304 1
## f54   1.801  1.188 -3.429 0.189 1
## f55   2.079 -0.586 -3.149 0.098 1
## f56   2.043 -1.674 -3.668 0.087 1
## f57   2.218 -0.613 -2.330 0.198 1
## f58   1.516 -0.490  0.421 0.238 1
## f59   1.826  0.283 -2.693 0.495 1
## f60   3.167  0.518 -0.236 0.354 1
## f61   1.942 -0.225  1.346 0.038 1
## f62   3.212 -0.760 -1.860 0.193 1
## f63   1.768 -1.248 -1.200 0.180 1
## f64   0.439 -0.246  0.217 0.224 1
## f65   3.951 -0.986 -2.887 0.327 1
## f66   2.494 -0.224 -1.494 0.222 1
## A1    2.350 -0.277  0.619 0.088 1
## A2    1.823 -0.211  0.674 0.098 1
## A3    2.370 -0.235 -0.779 0.275 1
## A4    1.854  0.028 -1.417 0.123 1
## A5    1.611 -0.023  0.974 0.037 1
## A6    2.907  0.000  1.376 0.205 1
## 
## $means
## F1 F2 
##  0  0 
## 
## $cov
##    F1 F2
## F1  1  0
## F2  0  1

3 factor model

#parnums.multi3.3pl.s21 <- mirt(data=s21, model=3, itemtype="3PL",
#                               pars = 'values', SE=TRUE, verbose=FALSE) # get param numbers
#results.multi3.3pl.s21 <- mirt(data=s21, model=3, itemtype="3PL",
#                               parprior = list(c(seq(5,468,6), 'norm', -1.1,3),
#                                               c(seq(1,468,6), 'norm',  0.0,3),
#                                               c(seq(2,468,6), 'norm',  0.0,3),
#                                               c(seq(3,468,6), 'norm',  0.0,3),
#                                               c(seq(4,468,6), 'norm',  0.0,3)),
#                               SE=TRUE, verbose=FALSE) # fit the 3pl
#save(results.multi3.3pl.s21, file = "results.multi3.3pl.s21")
load('C:/Users/Sydne/Documents/results.multi3.3pl.s21')
coef.multi3.3pl.s21 <- coef(results.multi3.3pl.s21, simplify = T, rotate = 'bifactorT')
## 
## Rotation:  bifactorT
coef.multi3.3pl.s21
## $items
##          a1     a2     a3      d     g u
## f01  -0.465  0.729  0.714 -2.602 0.026 1
## f02   0.764  0.316  0.304 -2.437 0.028 1
## f03   2.835 -0.249 -0.193 -3.781 0.187 1
## f04   2.620  3.081  0.948  1.703 0.296 1
## f05   1.311 -0.210  0.321  1.460 0.163 1
## f06   2.076  3.340  1.274  4.312 0.059 1
## f07   1.537  2.470  0.048  1.571 0.077 1
## f08   1.246  0.202  0.397  0.587 0.284 1
## f09   1.528  0.035 -0.267 -0.744 0.162 1
## f10   1.582  1.134 -0.945 -1.480 0.268 1
## f11   2.125 -1.902  0.596 -1.605 0.481 1
## f12   0.776 -0.849 -0.355 -0.579 0.208 1
## f13   0.897 -0.415  0.201 -0.841 0.163 1
## f14   2.260 -0.681 -0.201 -2.959 0.170 1
## f15   0.888 -0.180  0.319 -0.620 0.212 1
## f16   1.438  0.331  0.001 -1.798 0.118 1
## f17   2.204 -0.459 -1.042 -2.524 0.075 1
## f18   2.375  0.396  1.090 -3.038 0.285 1
## f19   4.454  0.634  0.199 -0.929 0.203 1
## f20   1.330  0.272  0.461 -0.600 0.161 1
## f21   2.097 -0.117 -0.193 -0.371 0.257 1
## f22   1.324 -0.143 -0.225 -0.160 0.042 1
## f23   1.031 -0.120  0.216 -0.357 0.210 1
## f24   0.740  0.140  0.176 -1.034 0.067 1
## f25   1.017 -0.066 -0.220  1.114 0.193 1
## f26   2.223  0.563 -0.667  1.279 0.136 1
## f27   1.229 -0.491 -0.395  0.204 0.190 1
## f28   2.444  1.716 -1.726  0.685 0.016 1
## f29   4.566 -1.377  0.876 -1.179 0.296 1
## f30   4.903  0.948 -1.941  1.581 0.193 1
## f31   3.225  1.249 -1.872  1.477 0.042 1
## f32   2.977 -1.260  0.309 -2.598 0.152 1
## f33   3.873  1.240  0.723 -4.149 0.164 1
## f34   2.512  0.880 -0.802 -0.593 0.230 1
## f35   2.554 -1.122  0.795 -0.981 0.153 1
## f36   2.862  1.364  0.265 -0.552 0.184 1
## f37   1.213 -0.496 -0.138 -1.255 0.113 1
## f38   1.959  0.534 -0.106  1.341 0.028 1
## f39   1.993 -0.410  0.328  1.859 0.079 1
## f40   2.674  0.309  0.964  1.005 0.093 1
## f41   1.980  0.090 -0.259 -1.658 0.098 1
## f42   2.434 -0.129  0.015  1.909 0.032 1
## f43   2.069 -0.046  0.127  1.542 0.073 1
## f44a  3.915 -0.244  4.570  0.780 0.010 1
## f44b  2.262 -1.153  2.153  0.628 0.484 1
## f44c  2.796  0.444  4.532  0.767 0.507 1
## f44d  1.959  1.110  0.321 -3.526 0.095 1
## f45a  2.075 -1.790 -2.608 -0.376 0.746 1
## f45b  0.235 -0.691  0.136 -0.975 0.076 1
## f45c  2.607 -0.815 -3.678 -1.472 0.154 1
## f45d  0.936 -1.470 -1.978  1.548 0.084 1
## f46   2.550  0.506 -1.395 -0.413 0.226 1
## f47   2.660 -0.045 -0.137 -2.089 0.260 1
## f48   4.304 -0.228 -0.630 -1.424 0.168 1
## f49   3.358 -0.463 -1.263  0.203 0.111 1
## f50   2.015  0.025 -0.718 -2.050 0.408 1
## f51   0.815  0.156  0.164 -0.222 0.116 1
## f52   0.009  0.613  0.002 -1.307 0.129 1
## f53   1.509  0.534 -0.173 -3.090 0.305 1
## f54   1.466 -0.063  1.704 -2.994 0.140 1
## f55   1.313  1.576 -0.149 -2.955 0.082 1
## f56   2.138 -0.011 -0.374 -3.636 0.100 1
## f57   2.261  1.269 -0.411 -2.784 0.208 1
## f58   1.531  0.442 -0.009  0.479 0.205 1
## f59   1.864  1.064 -0.935 -2.988 0.485 1
## f60   2.966  1.084 -0.125 -0.323 0.341 1
## f61   1.764  0.629  0.347  1.262 0.038 1
## f62   3.663 -0.262  1.719 -2.540 0.189 1
## f63   1.062  0.534 -0.039 -0.588 0.092 1
## f64   1.211  0.075  0.264 -1.630 0.544 1
## f65   3.786  0.140  1.131 -3.224 0.327 1
## f66   2.544  0.781  0.355 -1.820 0.226 1
## A1    2.573  1.284  0.733  0.468 0.115 1
## A2    1.806  0.914  0.516  0.550 0.124 1
## A3    2.499  1.210  0.475 -1.139 0.284 1
## A4    1.793  0.463  0.101 -1.497 0.117 1
## A5    1.541  0.415  0.150  0.913 0.036 1
## A6    2.721  0.510  0.463  1.260 0.201 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.s21 <- mirt(data=s21, model=4, itemtype="3PL",
#                               pars = 'values', SE=TRUE, verbose=FALSE) # get param numbers
#results.multi4.3pl.s21 <- mirt(data=s21, model=4, itemtype="3PL",
#                               parprior = list(c(seq(6,546,7), 'norm', -1.1,3),
#                                               c(seq(1,546,7), 'norm',  0.0,3),
#                                               c(seq(2,546,7), 'norm',  0.0,3),
#                                               c(seq(3,546,7), 'norm',  0.0,3),
#                                               c(seq(4,546,7), 'norm',  0.0,3),
#                                               c(seq(5,546,7), 'norm',  0.0,3)),
#                               SE=TRUE, verbose=FALSE, method = 'QMCEM') # fit the 3pl
#save(results.multi4.3pl.s21, file = "results.multi4.3pl.s21")
load('C:/Users/Sydne/Documents/results.multi4.3pl.s21')
coef.multi4.3pl.s21 <- coef(results.multi4.3pl.s21, simplify = T, rotate = 'bifactorT')
## 
## Rotation:  bifactorT
coef.multi4.3pl.s21
## $items
##          a1     a2     a3     a4      d     g u
## f01  -0.278 -1.905  0.412 -0.049 -3.427 0.029 1
## f02   1.181 -0.923 -0.404 -0.434 -3.362 0.057 1
## f03   2.402  0.588 -0.880  1.171 -3.158 0.158 1
## f04   3.468 -0.966  2.129 -0.415  1.719 0.318 1
## f05   1.485 -0.133  0.196  0.425  1.642 0.141 1
## f06   2.655 -1.411  2.877 -0.178  4.401 0.068 1
## f07   2.649 -0.548  2.804  0.244  2.097 0.081 1
## f08   1.217 -0.424  0.821  0.407  1.192 0.098 1
## f09   1.560  0.310 -0.356  0.047 -0.726 0.166 1
## f10   1.375  0.748  0.773  0.064 -0.819 0.195 1
## f11   1.033 -0.183  0.023  0.369 -0.332 0.387 1
## f12   0.847  1.426 -0.750 -0.673 -0.864 0.239 1
## f13   1.406  2.237  0.701 -0.673 -2.414 0.284 1
## f14   2.108  0.384 -0.022  0.464 -2.679 0.172 1
## f15   0.941 -0.196 -0.219 -0.350 -0.680 0.229 1
## f16   1.600  0.186  0.145 -0.279 -1.882 0.128 1
## f17   2.363  0.833 -1.460  0.842 -2.735 0.081 1
## f18   2.727 -0.717  0.216 -1.245 -3.326 0.290 1
## f19   4.088  0.557  0.184 -0.215 -0.731 0.213 1
## f20   1.670 -0.041  0.084 -0.585 -0.719 0.192 1
## f21   2.041  0.414 -0.392  0.236 -0.165 0.230 1
## f22   1.277  0.302 -0.455  0.392 -0.113 0.037 1
## f23   1.378 -0.228 -0.635 -0.125 -0.692 0.283 1
## f24   0.771 -0.166  0.050  0.110 -0.929 0.050 1
## f25   0.948  0.575 -0.080 -0.085  1.248 0.168 1
## f26   3.352  0.555  0.809  1.333  1.690 0.192 1
## f27   1.447  0.244 -1.852 -0.209  0.545 0.142 1
## f28   2.845  0.742  0.834  1.610  0.734 0.015 1
## f29   4.645 -0.211  0.769  1.432 -0.565 0.270 1
## f30   5.290  0.431 -0.083  1.569  1.805 0.201 1
## f31   4.122  0.190 -0.172  1.880  1.736 0.073 1
## f32   3.753 -0.415  0.427  1.795 -3.051 0.163 1
## f33   4.778 -0.382  1.189  1.421 -4.168 0.135 1
## f34   3.385  0.302 -0.192  1.304 -0.631 0.221 1
## f35   3.384 -0.140  1.295  1.590 -0.651 0.110 1
## f36   2.557  0.104  0.859 -0.389 -0.163 0.150 1
## f37   1.520  0.177 -0.919 -0.516 -1.826 0.167 1
## f38   2.339 -0.282 -0.325 -0.014  1.587 0.022 1
## f39   2.748 -0.426 -1.529  0.091  2.526 0.090 1
## f40   3.113 -0.921 -0.820 -0.631  1.346 0.076 1
## f41   2.373  0.338 -1.281 -0.039 -1.801 0.096 1
## f42   2.699  0.101 -0.661 -0.398  2.147 0.030 1
## f43   2.374  0.155 -0.854 -0.589  1.750 0.109 1
## f44a  4.427 -4.385 -0.176 -0.701  1.077 0.011 1
## f44b  2.814 -2.717 -0.114  0.826  0.764 0.499 1
## f44c  3.306 -4.066  0.458 -1.295  0.862 0.516 1
## f44d  2.142 -0.555 -0.786 -0.798 -3.690 0.103 1
## f45a  1.466  2.607 -2.347  0.695  0.026 0.729 1
## f45b  0.141  0.011 -0.312  0.417 -0.919 0.075 1
## f45c  1.825  4.643 -0.740 -1.011 -0.683 0.053 1
## f45d  0.436  1.863 -0.960  0.330  1.381 0.080 1
## f46   2.826  1.732  0.531  0.348 -0.317 0.218 1
## f47   3.012  0.285 -0.667 -0.095 -2.137 0.261 1
## f48   4.023  1.003  0.366  0.518 -1.286 0.177 1
## f49   3.583  2.428 -0.060  0.412  0.541 0.101 1
## f50   2.275  0.372 -0.853  0.550 -2.377 0.423 1
## f51   0.880 -0.046  0.282  0.276 -0.021 0.051 1
## f52   1.209 -1.592  0.093 -0.675 -3.833 0.265 1
## f53   1.784  0.471 -0.276 -0.847 -3.308 0.299 1
## f54   0.686 -0.186  0.823 -0.271 -1.703 0.086 1
## f55   1.558 -0.568  1.323  0.339 -2.784 0.072 1
## f56   2.214 -0.165 -0.146  0.674 -3.681 0.100 1
## f57   1.298 -0.552 -0.266 -0.050 -1.051 0.063 1
## f58   1.572 -0.092  0.230  0.185  0.381 0.251 1
## f59   2.247  1.514  1.178  0.840 -3.215 0.472 1
## f60   3.226  0.218 -0.148 -0.794 -0.380 0.364 1
## f61   1.893 -0.320  0.050 -0.250  1.353 0.032 1
## f62   3.627 -1.311 -0.146  0.650 -2.070 0.183 1
## f63   3.188 -0.752 -1.004  0.476 -2.428 0.261 1
## f64   1.712 -1.557 -0.895  0.023 -2.080 0.529 1
## f65   4.007 -1.081 -0.949  0.742 -2.616 0.303 1
## f66   3.031 -0.246  1.426  0.354 -1.955 0.225 1
## A1    3.284 -0.219  0.381 -1.686  0.717 0.109 1
## A2    2.382 -0.015  0.568 -1.317  0.684 0.140 1
## A3    3.336  0.156  1.104 -1.493 -1.144 0.272 1
## A4    2.214  0.220  0.271 -0.659 -1.759 0.137 1
## A5    1.692  0.176  0.071 -0.443  0.970 0.055 1
## A6    2.848 -0.114 -0.246 -0.637  1.431 0.191 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.s21, results.multi2.3pl.s21, results.multi3.3pl.s21,
      results.multi4.3pl.s21)
##        AIC    SABIC       HQ      BIC    logLik   logPost  df
## 1 27080.76 27499.15 27521.04 28242.37 -13306.38 -13468.52 NaN
## 2 27027.95 27584.01 27613.11 28571.79 -13202.97 -13879.69  77
## 3 26989.32 27681.26 27717.48 28910.44 -13107.66 -13948.69  76
## 4 26926.02 27752.06 27795.29 29219.45 -13001.01 -14009.95  75

calculate IECV 2 factor

sum.multi2.s21 <- summary(results.multi2.3pl.s21, rotate = "bifactorT")
## 
## Rotation:  bifactorT 
## 
## Rotated factor loadings: 
## 
##           F1       F2     h2
## f01  -0.1109 -0.60255 0.3754
## f02   0.5140  0.04122 0.2659
## f03   0.8383  0.15930 0.7281
## f04   0.8100 -0.44796 0.8568
## f05   0.6187 -0.17543 0.4136
## f06   0.6517 -0.66570 0.8678
## f07   0.6797 -0.42015 0.6385
## f08   0.5537 -0.33531 0.4190
## f09   0.6971  0.17471 0.5165
## f10   0.6400  0.11078 0.4219
## f11   0.4864 -0.05475 0.2396
## f12   0.2441  0.51502 0.3248
## f13   0.4674  0.45296 0.4236
## f14   0.7664 -0.09963 0.5974
## f15   0.5624 -0.01803 0.3167
## f16   0.6478  0.04724 0.4219
## f17   0.8100  0.03791 0.6576
## f18   0.7533 -0.16482 0.5946
## f19   0.9168  0.08442 0.8476
## f20   0.6849  0.21422 0.5149
## f21   0.7637  0.14569 0.6044
## f22   0.5478  0.24271 0.3590
## f23   0.5962  0.27449 0.4307
## f24   0.4151 -0.12660 0.1884
## f25   0.4796  0.25330 0.2942
## f26   0.8515  0.03346 0.7262
## f27   0.5352  0.34360 0.4045
## f28   0.7456  0.12592 0.5718
## f29   0.8951 -0.27945 0.8793
## f30   0.9002  0.08274 0.8172
## f31   0.8113  0.13028 0.6752
## f32   0.8271 -0.36411 0.8167
## f33   0.9057 -0.21117 0.8649
## f34   0.8392  0.14284 0.7246
## f35   0.7146 -0.49048 0.7512
## f36   0.8390 -0.11102 0.7162
## f37   0.4610  0.31593 0.3124
## f38   0.7869  0.01437 0.6194
## f39   0.7566  0.33874 0.6872
## f40   0.7908 -0.10516 0.6364
## f41   0.7790  0.17150 0.6362
## f42   0.8220  0.16390 0.7026
## f43   0.7493  0.12819 0.5779
## f44a  0.7918  0.09301 0.6356
## f44b  0.8885 -0.07363 0.7948
## f44c  0.7905  0.24931 0.6871
## f44d  0.7724  0.25501 0.6616
## f45a  0.2234  0.71525 0.5615
## f45b  0.0939  0.06418 0.0129
## f45c  0.4588  0.82526 0.8915
## f45d  0.2762  0.89559 0.8784
## f46   0.8105  0.37312 0.7961
## f47   0.8494  0.18625 0.7563
## f48   0.8849  0.25847 0.8499
## f49   0.7986  0.45281 0.8429
## f50   0.7759 -0.00026 0.6020
## f51   0.4585 -0.10845 0.2220
## f52   0.3011 -0.49436 0.3350
## f53   0.6477  0.18149 0.4525
## f54   0.6553  0.43239 0.6164
## f55   0.7560 -0.21315 0.6170
## f56   0.6502 -0.53276 0.7066
## f57   0.7750 -0.21407 0.6465
## f58   0.6503 -0.21038 0.4671
## f59   0.7268  0.11258 0.5409
## f60   0.8719  0.14249 0.7804
## f61   0.7492 -0.08693 0.5688
## f62   0.8649 -0.20479 0.7899
## f63   0.6421 -0.45324 0.6177
## f64   0.2472 -0.13878 0.0804
## f65   0.8952 -0.22352 0.8513
## f66   0.8238 -0.07412 0.6841
## A1    0.8062 -0.09489 0.6590
## A2    0.7284 -0.08430 0.5376
## A3    0.8097 -0.08017 0.6620
## A4    0.7367  0.01103 0.5428
## A5    0.6873 -0.00972 0.4725
## A6    0.8630  0.00000 0.7447
## 
## Rotated SS loadings:  38.952 7.052 
## 
## Factor correlations: 
## 
##    F1 F2
## F1  1  0
## F2  0  1
f2.iecv.s21 <- sum.multi2.s21$rotF[,1]^2/sum.multi2.s21$h2
f2.summary <- as.data.frame(cbind(sum.multi2.s21$rotF[,1], sum.multi2.s21$h2,
                                  f2.iecv.s21))
names(f2.summary) <- c("Gen Factor", "Communality", "IECV")
round(f2.summary,2)
##      Gen Factor Communality IECV
## f01       -0.11        0.38 0.03
## f02        0.51        0.27 0.99
## f03        0.84        0.73 0.97
## f04        0.81        0.86 0.77
## f05        0.62        0.41 0.93
## f06        0.65        0.87 0.49
## f07        0.68        0.64 0.72
## f08        0.55        0.42 0.73
## f09        0.70        0.52 0.94
## f10        0.64        0.42 0.97
## f11        0.49        0.24 0.99
## f12        0.24        0.32 0.18
## f13        0.47        0.42 0.52
## f14        0.77        0.60 0.98
## f15        0.56        0.32 1.00
## f16        0.65        0.42 0.99
## f17        0.81        0.66 1.00
## f18        0.75        0.59 0.95
## f19        0.92        0.85 0.99
## f20        0.68        0.51 0.91
## f21        0.76        0.60 0.96
## f22        0.55        0.36 0.84
## f23        0.60        0.43 0.83
## f24        0.42        0.19 0.91
## f25        0.48        0.29 0.78
## f26        0.85        0.73 1.00
## f27        0.54        0.40 0.71
## f28        0.75        0.57 0.97
## f29        0.90        0.88 0.91
## f30        0.90        0.82 0.99
## f31        0.81        0.68 0.97
## f32        0.83        0.82 0.84
## f33        0.91        0.86 0.95
## f34        0.84        0.72 0.97
## f35        0.71        0.75 0.68
## f36        0.84        0.72 0.98
## f37        0.46        0.31 0.68
## f38        0.79        0.62 1.00
## f39        0.76        0.69 0.83
## f40        0.79        0.64 0.98
## f41        0.78        0.64 0.95
## f42        0.82        0.70 0.96
## f43        0.75        0.58 0.97
## f44a       0.79        0.64 0.99
## f44b       0.89        0.79 0.99
## f44c       0.79        0.69 0.91
## f44d       0.77        0.66 0.90
## f45a       0.22        0.56 0.09
## f45b       0.09        0.01 0.68
## f45c       0.46        0.89 0.24
## f45d       0.28        0.88 0.09
## f46        0.81        0.80 0.83
## f47        0.85        0.76 0.95
## f48        0.88        0.85 0.92
## f49        0.80        0.84 0.76
## f50        0.78        0.60 1.00
## f51        0.46        0.22 0.95
## f52        0.30        0.34 0.27
## f53        0.65        0.45 0.93
## f54        0.66        0.62 0.70
## f55        0.76        0.62 0.93
## f56        0.65        0.71 0.60
## f57        0.78        0.65 0.93
## f58        0.65        0.47 0.91
## f59        0.73        0.54 0.98
## f60        0.87        0.78 0.97
## f61        0.75        0.57 0.99
## f62        0.86        0.79 0.95
## f63        0.64        0.62 0.67
## f64        0.25        0.08 0.76
## f65        0.90        0.85 0.94
## f66        0.82        0.68 0.99
## A1         0.81        0.66 0.99
## A2         0.73        0.54 0.99
## A3         0.81        0.66 0.99
## A4         0.74        0.54 1.00
## A5         0.69        0.47 1.00
## A6         0.86        0.74 1.00

calculate IECV 3 factor

sum.multi3.s21 <- summary(results.multi3.3pl.s21, rotate = "bifactorT")
## 
## Rotation:  bifactorT 
## 
## Rotated factor loadings: 
## 
##            F1      F2        F3    h2
## f01  -0.22838  0.3576  0.350119 0.303
## f02   0.39883  0.1647  0.158837 0.211
## f03   0.85346 -0.0750 -0.057984 0.737
## f04   0.58360  0.6863  0.211154 0.856
## f05   0.60077 -0.0962  0.147047 0.392
## f06   0.46434  0.7472  0.284912 0.855
## f07   0.45589  0.7328  0.014202 0.745
## f08   0.57798  0.0939  0.184274 0.377
## f09   0.66350  0.0152 -0.116058 0.454
## f10   0.57457  0.4119 -0.343376 0.618
## f11   0.62983 -0.5637  0.176647 0.746
## f12   0.37215 -0.4072 -0.170509 0.333
## f13   0.45334 -0.2096  0.101460 0.260
## f14   0.77481 -0.2334 -0.068765 0.660
## f15   0.45444 -0.0922  0.163308 0.242
## f16   0.63832  0.1469  0.000338 0.429
## f17   0.73267 -0.1525 -0.346316 0.680
## f18   0.75556  0.1259  0.346602 0.707
## f19   0.92518  0.1317  0.041257 0.875
## f20   0.59762  0.1222  0.206977 0.415
## f21   0.77377 -0.0432 -0.071099 0.606
## f22   0.60939 -0.0658 -0.103600 0.386
## f23   0.51426 -0.0600  0.107576 0.280
## f24   0.39579  0.0748  0.094088 0.171
## f25   0.50968 -0.0333 -0.110151 0.273
## f26   0.75798  0.1921 -0.227319 0.663
## f27   0.56069 -0.2239 -0.180199 0.397
## f28   0.63545  0.4461 -0.448742 0.804
## f29   0.88849 -0.2680  0.170517 0.890
## f30   0.87213  0.1686 -0.345375 0.908
## f31   0.75265  0.2915 -0.436787 0.842
## f32   0.81191 -0.3438  0.084381 0.784
## f33   0.86699  0.2775  0.161850 0.855
## f34   0.77065  0.2699 -0.246107 0.727
## f35   0.75944 -0.3335  0.236381 0.744
## f36   0.79324  0.3780  0.073520 0.778
## f37   0.56365 -0.2305 -0.063981 0.375
## f38   0.73887  0.2012 -0.040036 0.588
## f39   0.74565 -0.1535  0.122533 0.595
## f40   0.80358  0.0929  0.289686 0.738
## f41   0.75425  0.0341 -0.098787 0.580
## f42   0.81869 -0.0435  0.004927 0.672
## f43   0.77122 -0.0173  0.047346 0.597
## f44a  0.62553 -0.0390  0.730229 0.926
## f44b  0.60502 -0.3085  0.575796 0.793
## f44c  0.49853  0.0792  0.808145 0.908
## f44d  0.68955  0.3908  0.113069 0.641
## f45a  0.50014 -0.4315 -0.628701 0.832
## f45b  0.12669 -0.3719  0.073438 0.160
## f45c  0.53342 -0.1667 -0.752582 0.879
## f45d  0.29832 -0.4686 -0.630259 0.706
## f46   0.74864  0.1486 -0.409548 0.750
## f47   0.84143 -0.0143 -0.043332 0.710
## f48   0.92035 -0.0488 -0.134605 0.868
## f49   0.83997 -0.1158 -0.315902 0.819
## f50   0.73713  0.0093 -0.262488 0.612
## f51   0.42879  0.0822  0.086340 0.198
## f52   0.00483  0.3388  0.000865 0.115
## f53   0.64407  0.2279 -0.073717 0.472
## f54   0.51979 -0.0222  0.604217 0.636
## f55   0.49180  0.5904 -0.055784 0.594
## f56   0.77520 -0.0041 -0.135412 0.619
## f57   0.72265  0.4056 -0.131370 0.704
## f58   0.65675  0.1894 -0.004051 0.467
## f59   0.64407  0.3676 -0.322949 0.654
## f60   0.82630  0.3019 -0.034743 0.775
## f61   0.69058  0.2461  0.135971 0.556
## f62   0.83294 -0.0595  0.390975 0.850
## f63   0.51147  0.2570 -0.018649 0.328
## f64   0.57479  0.0357  0.125474 0.347
## f65   0.87953  0.0326  0.262672 0.844
## f66   0.80029  0.2456  0.111701 0.713
## A1    0.75203  0.3754  0.214393 0.752
## A2    0.67022  0.3392  0.191607 0.601
## A3    0.75923  0.3678  0.144286 0.733
## A4    0.71235  0.1839  0.040202 0.543
## A5    0.65908  0.1774  0.064180 0.470
## A6    0.82892  0.1554  0.140921 0.731
## 
## Rotated SS loadings:  35.26 6.226 5.967 
## 
## Factor correlations: 
## 
##    F1 F2 F3
## F1  1  0  0
## F2  0  1  0
## F3  0  0  1
f3.iecv.s21 <- sum.multi3.s21$rotF[,1]^2/sum.multi3.s21$h2
f3.summary <- as.data.frame(cbind(sum.multi3.s21$rotF[,1], sum.multi3.s21$h2,
                                  f3.iecv.s21))
names(f3.summary) <- c("Gen Factor", "Communality", "IECV")
round(f3.summary,2)
##      Gen Factor Communality IECV
## f01       -0.23        0.30 0.17
## f02        0.40        0.21 0.75
## f03        0.85        0.74 0.99
## f04        0.58        0.86 0.40
## f05        0.60        0.39 0.92
## f06        0.46        0.86 0.25
## f07        0.46        0.75 0.28
## f08        0.58        0.38 0.89
## f09        0.66        0.45 0.97
## f10        0.57        0.62 0.53
## f11        0.63        0.75 0.53
## f12        0.37        0.33 0.42
## f13        0.45        0.26 0.79
## f14        0.77        0.66 0.91
## f15        0.45        0.24 0.85
## f16        0.64        0.43 0.95
## f17        0.73        0.68 0.79
## f18        0.76        0.71 0.81
## f19        0.93        0.88 0.98
## f20        0.60        0.41 0.86
## f21        0.77        0.61 0.99
## f22        0.61        0.39 0.96
## f23        0.51        0.28 0.95
## f24        0.40        0.17 0.92
## f25        0.51        0.27 0.95
## f26        0.76        0.66 0.87
## f27        0.56        0.40 0.79
## f28        0.64        0.80 0.50
## f29        0.89        0.89 0.89
## f30        0.87        0.91 0.84
## f31        0.75        0.84 0.67
## f32        0.81        0.78 0.84
## f33        0.87        0.85 0.88
## f34        0.77        0.73 0.82
## f35        0.76        0.74 0.78
## f36        0.79        0.78 0.81
## f37        0.56        0.37 0.85
## f38        0.74        0.59 0.93
## f39        0.75        0.59 0.94
## f40        0.80        0.74 0.87
## f41        0.75        0.58 0.98
## f42        0.82        0.67 1.00
## f43        0.77        0.60 1.00
## f44a       0.63        0.93 0.42
## f44b       0.61        0.79 0.46
## f44c       0.50        0.91 0.27
## f44d       0.69        0.64 0.74
## f45a       0.50        0.83 0.30
## f45b       0.13        0.16 0.10
## f45c       0.53        0.88 0.32
## f45d       0.30        0.71 0.13
## f46        0.75        0.75 0.75
## f47        0.84        0.71 1.00
## f48        0.92        0.87 0.98
## f49        0.84        0.82 0.86
## f50        0.74        0.61 0.89
## f51        0.43        0.20 0.93
## f52        0.00        0.11 0.00
## f53        0.64        0.47 0.88
## f54        0.52        0.64 0.42
## f55        0.49        0.59 0.41
## f56        0.78        0.62 0.97
## f57        0.72        0.70 0.74
## f58        0.66        0.47 0.92
## f59        0.64        0.65 0.63
## f60        0.83        0.78 0.88
## f61        0.69        0.56 0.86
## f62        0.83        0.85 0.82
## f63        0.51        0.33 0.80
## f64        0.57        0.35 0.95
## f65        0.88        0.84 0.92
## f66        0.80        0.71 0.90
## A1         0.75        0.75 0.75
## A2         0.67        0.60 0.75
## A3         0.76        0.73 0.79
## A4         0.71        0.54 0.93
## A5         0.66        0.47 0.92
## A6         0.83        0.73 0.94

calculate IECV 4 factor

sum.multi4.s21 <- summary(results.multi4.3pl.s21, rotate = "bifactorT")
## 
## Rotation:  bifactorT 
## 
## Rotated factor loadings: 
## 
##           F1       F2       F3       F4     h2
## f01  -0.1070 -0.73185  0.15845 -0.01893 0.5725
## f02   0.5037 -0.39375 -0.17253 -0.18514 0.4728
## f03   0.7192  0.17586 -0.26344  0.35059 0.7404
## f04   0.7648 -0.21297  0.46950 -0.09155 0.8591
## f05   0.6427 -0.05758  0.08486  0.18396 0.4574
## f06   0.5901 -0.31360  0.63939 -0.03949 0.8569
## f07   0.6220 -0.12860  0.65844  0.05727 0.8403
## f08   0.5240 -0.18264  0.35318  0.17499 0.4633
## f09   0.6619  0.13165 -0.15120  0.01999 0.4786
## f10   0.5637  0.30676  0.31679  0.02632 0.5130
## f11   0.5079 -0.08996  0.01128  0.18134 0.2991
## f12   0.3280  0.55257 -0.29036 -0.26089 0.5653
## f13   0.4274  0.67998  0.21309 -0.20466 0.7323
## f14   0.7594  0.13850 -0.00788  0.16718 0.6239
## f15   0.4709 -0.09802 -0.10955 -0.17539 0.2741
## f16   0.6766  0.07887  0.06130 -0.11818 0.4818
## f17   0.6816  0.24026 -0.42135  0.24299 0.7589
## f18   0.7731 -0.20323  0.06130 -0.35283 0.7672
## f19   0.9141  0.12465  0.04108 -0.04807 0.8552
## f20   0.6797 -0.01671  0.03430 -0.23808 0.5202
## f21   0.7481  0.15161 -0.14357  0.08646 0.6108
## f22   0.5722  0.13550 -0.20411  0.17575 0.4183
## f23   0.6006 -0.09916 -0.27651 -0.05442 0.4499
## f24   0.4101 -0.08849  0.02649  0.05851 0.1801
## f25   0.4658  0.28261 -0.03922 -0.04174 0.3001
## f26   0.8161  0.13521  0.19694  0.32445 0.8283
## f27   0.4957  0.08371 -0.63425 -0.07159 0.6602
## f28   0.7387  0.19269  0.21658  0.41817 0.8046
## f29   0.8913 -0.04054  0.14750  0.27483 0.8933
## f30   0.9135  0.07449 -0.01430  0.27094 0.9136
## f31   0.8505  0.03931 -0.03545  0.38791 0.8767
## f32   0.8277 -0.09164  0.09420  0.39580 0.8591
## f33   0.8826 -0.07064  0.21967  0.26255 0.9012
## f34   0.8414  0.07505 -0.04778  0.32406 0.8210
## f35   0.7852 -0.03243  0.30044  0.36906 0.8440
## f36   0.7954  0.03223  0.26719 -0.12098 0.7197
## f37   0.6031  0.07028 -0.36482 -0.20493 0.5437
## f38   0.7998 -0.09626 -0.11124 -0.00466 0.6614
## f39   0.7628 -0.11826 -0.42449  0.02517 0.7767
## f40   0.8173 -0.24194 -0.21520 -0.16576 0.8003
## f41   0.7399  0.10536 -0.39944 -0.01205 0.7183
## f42   0.8218  0.03069 -0.20114 -0.12121 0.7314
## f43   0.7650  0.04991 -0.27505 -0.18964 0.6993
## f44a  0.6811 -0.67466 -0.02703 -0.10789 0.9314
## f44b  0.6474 -0.62517 -0.02619  0.18993 0.8467
## f44c  0.5821 -0.71609  0.08071 -0.22810 0.9102
## f44d  0.7122 -0.18451 -0.26124 -0.26516 0.6798
## f45a  0.3472  0.61725 -0.55583  0.16456 0.8376
## f45b  0.0787  0.00597 -0.17474  0.23364 0.0914
## f45c  0.3368  0.85696 -0.13660 -0.18663 0.9013
## f45d  0.1581  0.67641 -0.34847  0.11967 0.6183
## f46   0.7477  0.45819  0.14054  0.09201 0.7972
## f47   0.8518  0.08070 -0.18852 -0.02684 0.7683
## f48   0.8888  0.22150  0.08093  0.11439 0.8586
## f49   0.7674  0.51992 -0.01285  0.08833 0.8671
## f50   0.7484  0.12243 -0.28050  0.18080 0.6864
## f51   0.4497 -0.02372  0.14425  0.14087 0.2435
## f52   0.4458 -0.58700  0.03427 -0.24875 0.6063
## f53   0.6699  0.17669 -0.10378 -0.31790 0.5918
## f54   0.3368 -0.09152  0.40368 -0.13278 0.3024
## f55   0.5684 -0.20728  0.48263  0.12370 0.6143
## f56   0.7685 -0.05713 -0.05075  0.23392 0.6511
## f57   0.5828 -0.24792 -0.11941 -0.02242 0.4159
## f58   0.6725 -0.03951  0.09853  0.07916 0.4699
## f59   0.6399  0.43121  0.33543  0.23909 0.7651
## f60   0.8621  0.05828 -0.03949 -0.21205 0.7932
## f61   0.7342 -0.12420  0.01952 -0.09694 0.5643
## f62   0.8498 -0.30719 -0.03422  0.15227 0.8409
## f63   0.8270 -0.19500 -0.26035  0.12352 0.8050
## f64   0.5691 -0.51729 -0.29759  0.00753 0.6801
## f65   0.8627 -0.23271 -0.20436  0.15965 0.8657
## f66   0.8014 -0.06505  0.37706  0.09364 0.7974
## A1    0.8032 -0.05364  0.09309 -0.41230 0.8267
## A2    0.7307 -0.00457  0.17410 -0.40393 0.7275
## A3    0.7975  0.03740  0.26390 -0.35689 0.8345
## A4    0.7659  0.07616  0.09361 -0.22806 0.6532
## A5    0.6913  0.07201  0.02914 -0.18080 0.5167
## A6    0.8403 -0.03359 -0.07248 -0.18804 0.7479
## 
## Rotated SS loadings:  36.916 6.978 5.024 3.334 
## 
## 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.s21 <- sum.multi4.s21$rotF[,1]^2/sum.multi4.s21$h2
f4.summary <- as.data.frame(cbind(sum.multi4.s21$rotF[,1], sum.multi4.s21$h2,
                                  f4.iecv.s21))
names(f4.summary) <- c("Gen Factor", "Communality", "IECV")
round(f4.summary,2)
##      Gen Factor Communality IECV
## f01       -0.11        0.57 0.02
## f02        0.50        0.47 0.54
## f03        0.72        0.74 0.70
## f04        0.76        0.86 0.68
## f05        0.64        0.46 0.90
## f06        0.59        0.86 0.41
## f07        0.62        0.84 0.46
## f08        0.52        0.46 0.59
## f09        0.66        0.48 0.92
## f10        0.56        0.51 0.62
## f11        0.51        0.30 0.86
## f12        0.33        0.57 0.19
## f13        0.43        0.73 0.25
## f14        0.76        0.62 0.92
## f15        0.47        0.27 0.81
## f16        0.68        0.48 0.95
## f17        0.68        0.76 0.61
## f18        0.77        0.77 0.78
## f19        0.91        0.86 0.98
## f20        0.68        0.52 0.89
## f21        0.75        0.61 0.92
## f22        0.57        0.42 0.78
## f23        0.60        0.45 0.80
## f24        0.41        0.18 0.93
## f25        0.47        0.30 0.72
## f26        0.82        0.83 0.80
## f27        0.50        0.66 0.37
## f28        0.74        0.80 0.68
## f29        0.89        0.89 0.89
## f30        0.91        0.91 0.91
## f31        0.85        0.88 0.83
## f32        0.83        0.86 0.80
## f33        0.88        0.90 0.86
## f34        0.84        0.82 0.86
## f35        0.79        0.84 0.73
## f36        0.80        0.72 0.88
## f37        0.60        0.54 0.67
## f38        0.80        0.66 0.97
## f39        0.76        0.78 0.75
## f40        0.82        0.80 0.83
## f41        0.74        0.72 0.76
## f42        0.82        0.73 0.92
## f43        0.76        0.70 0.84
## f44a       0.68        0.93 0.50
## f44b       0.65        0.85 0.49
## f44c       0.58        0.91 0.37
## f44d       0.71        0.68 0.75
## f45a       0.35        0.84 0.14
## f45b       0.08        0.09 0.07
## f45c       0.34        0.90 0.13
## f45d       0.16        0.62 0.04
## f46        0.75        0.80 0.70
## f47        0.85        0.77 0.94
## f48        0.89        0.86 0.92
## f49        0.77        0.87 0.68
## f50        0.75        0.69 0.82
## f51        0.45        0.24 0.83
## f52        0.45        0.61 0.33
## f53        0.67        0.59 0.76
## f54        0.34        0.30 0.38
## f55        0.57        0.61 0.53
## f56        0.77        0.65 0.91
## f57        0.58        0.42 0.82
## f58        0.67        0.47 0.96
## f59        0.64        0.77 0.54
## f60        0.86        0.79 0.94
## f61        0.73        0.56 0.96
## f62        0.85        0.84 0.86
## f63        0.83        0.81 0.85
## f64        0.57        0.68 0.48
## f65        0.86        0.87 0.86
## f66        0.80        0.80 0.81
## A1         0.80        0.83 0.78
## A2         0.73        0.73 0.73
## A3         0.80        0.83 0.76
## A4         0.77        0.65 0.90
## A5         0.69        0.52 0.93
## A6         0.84        0.75 0.94

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)
f2.summary$num <- seq(1,78,1)
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,78,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,78,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,78,1), las = 2, labels = row.names(f4.summary))