This script cleans & analyzes the fall 20 ACI data
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")
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
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)
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))