This script cleans & analyzes the spring 19 s19 data
## Part 1 - load test data & prep for analysis
## Part 2 - basic psychometric analyses
## Part 3 - multidimensional analyses
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
s19_raw <- read.csv("G:/My Drive/EACI/Master Excel files & test books/19 spring/all end of semester data for spring 2019, de-identified, missing CUNYfirst IDs.csv")
s19 <- data.frame(s19_raw[,c(1,3,5:28)]) # create a dataframe as a subset of variables we'll use
clean up some variables
names(s19)[3] <- 'id'# fix student ID var name so we can match the demographics later
s19$id <- as.character(s19$id) # convert student ids to string so they display properly
describe(s19)# basic descriptives for all variables
## vars n mean sd median trimmed mad min max range skew
## Sr.no 1 716 358.50 206.84 358.5 358.50 265.39 1 716 715 0.00
## course* 2 716 29.85 15.43 29.0 29.44 16.31 1 61 60 0.22
## id* 3 666 332.41 191.56 332.5 332.38 245.37 1 664 663 0.00
## Form* 4 716 3.97 1.88 4.0 4.09 1.48 1 6 5 -0.66
## Q1* 5 716 3.12 1.12 4.0 3.07 1.48 1 7 6 0.23
## Q2* 6 716 4.40 1.65 5.0 4.46 1.48 1 9 8 -0.46
## Q3* 7 716 5.26 2.42 6.0 5.33 2.97 1 9 8 -0.44
## Q4* 8 716 2.85 1.34 2.0 2.68 0.00 1 6 5 0.96
## Q5* 9 716 3.45 0.92 4.0 3.53 0.00 1 5 4 -0.85
## Q6* 10 716 3.08 0.90 3.0 3.11 1.48 1 6 5 -0.19
## Q7* 11 716 2.56 0.96 2.0 2.42 0.00 1 7 6 1.52
## Q8* 12 716 3.39 1.21 4.0 3.36 1.48 1 6 5 -0.12
## Q9* 13 716 4.30 1.60 5.0 4.37 1.48 1 7 6 -0.56
## Q10* 14 716 4.21 1.67 4.0 4.27 2.97 1 7 6 -0.20
## Q11* 15 716 3.74 1.45 4.0 3.70 1.48 1 6 5 0.31
## Q12* 16 716 3.29 1.16 3.0 3.26 1.48 1 6 5 0.17
## Q13* 17 716 7.64 2.26 9.0 8.13 0.00 1 9 8 -1.56
## Q14* 18 716 3.66 0.92 4.0 3.73 0.00 1 6 5 -0.73
## Q15* 19 716 3.46 1.75 2.0 3.28 1.48 1 7 6 0.61
## Q16* 20 716 3.09 0.63 3.0 3.01 0.00 1 6 5 1.55
## Q17* 21 716 3.67 1.68 3.0 3.43 0.00 1 8 7 1.48
## Q18* 22 716 3.91 0.82 4.0 4.01 0.00 1 6 5 -1.32
## Q19* 23 716 4.59 1.55 5.0 4.77 1.48 1 6 5 -0.64
## Q20* 24 716 6.01 1.80 7.0 6.41 0.00 1 7 6 -1.56
## Q21* 25 716 5.50 1.26 6.0 5.82 0.00 1 7 6 -2.27
## Q22* 26 716 3.20 1.08 3.0 3.07 0.00 1 7 6 1.19
## kurtosis se
## Sr.no -1.21 7.73
## course* -0.74 0.58
## id* -1.20 7.42
## Form* -1.05 0.07
## Q1* -1.05 0.04
## Q2* -0.76 0.06
## Q3* -1.47 0.09
## Q4* -0.97 0.05
## Q5* -0.92 0.03
## Q6* -0.76 0.03
## Q7* 2.01 0.04
## Q8* -1.42 0.05
## Q9* -1.18 0.06
## Q10* -1.50 0.06
## Q11* -0.98 0.05
## Q12* -1.19 0.04
## Q13* 1.26 0.08
## Q14* 1.06 0.03
## Q15* -0.98 0.07
## Q16* 8.03 0.02
## Q17* 1.41 0.06
## Q18* 3.41 0.03
## Q19* -0.96 0.06
## Q20* 0.89 0.07
## Q21* 4.10 0.05
## Q22* 2.13 0.04
length(unique(s19$id)) # check to see if all student ids are unique
## [1] 665
find and remove duplicates
s19$id[duplicated(s19$id)] # list of duplicates
## [1] NA NA NA NA NA NA
## [7] NA NA NA NA NA NA
## [13] NA "23705970" NA NA NA NA
## [19] NA NA NA NA NA NA
## [25] NA NA NA NA "23627966" NA
## [31] NA NA NA NA NA NA
## [37] NA NA NA NA NA NA
## [43] NA NA NA NA NA NA
## [49] NA NA NA
# sort StudentCUNYfirstID & find dupes
# observations 222 & 257 are same student who took same form in 2 courses
# exact same response pattern each time
# observations 258 & 438 are same studnet who took different forms in 2 courses
s19 <- s19[-c(257),] # drop observation 257
check over all variables
apply(s19, MARGIN = 2, table)
## $Sr.no
##
## 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 258 259 260 261
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
##
## $course
##
## MAT 12-0700 MAT 12-0905 MAT 12-1006 MAT 12-1301
## 6 5 17 4
## MAT 12-1400 MAT 12-1902 MAT 150.5-0804 MAT 150.5-0805
## 4 6 11 8
## MAT 150.5-0807 MAT 150.5-1001 MAT 150.5-1201 MAT 150.5-1403
## 6 13 13 5
## MAT 150.5-1701 MAT 150.5-1800 MAT 206-103W MAT 206-1100
## 15 9 15 20
## MAT 206-1702 MAT 206-1901 MAT 206.5-0800 MAT 206.5-0901
## 18 9 17 10
## MAT 206.5-1101 MAT 206.5-1301 MAT 206.5-1401 MAT 206.5-1500
## 14 15 23 19
## MAT 206.5-1700 MAT 206.5-1800 MAT 206.5-1803 MAT 206.5 - 1801
## 12 16 22 14
## MAT 209-1701 MAT 214-1000 MAT 214.5-1700 MAT 301-1001
## 21 28 14 18
## MAT 301-1200 MAT 301-120W MAT 301-1701 MAT 301-172W
## 15 17 22 16
## MAT 301-503W MAT 301-505W MAT 302-1300 MAT 302-1700
## 9 2 14 15
## MAT 303-1000 MAT 303-1200 MAT 501-1400 MAT 51-0909
## 5 18 10 2
## MAT 51-1007 MAT 51-1100 MAT 56-0801 Mat 56-0806
## 6 11 12 19
## MAT 56-0811 MAT 56-0900 MAT 56-1700 MAT 56-1701
## 3 6 5 3
## MAT 56-1702 MAT 56-1704 MAT 56-1902 MAT 56-1904
## 8 6 12 7
## MAT 56.5-0800 MAT 56.5-0900 MAT 56.5-1000 MAT 56.5-1201
## 4 8 11 7
## MAT 56.5-1700
## 15
##
## $id
##
## 12063719 12077127 13050247 13114982 13116577
## 1 1 1 1 1
## 13127801 14010902 14016095 14017071 14059175
## 1 1 1 1 1
## 14061155 14063280 14086963 14113767 14164978
## 1 1 1 1 1
## 14222188 14230828 14232566 15017786 15021738
## 1 1 1 1 1
## 15039833 15043806 15059136 15079837 15135445
## 1 1 1 1 1
## 15172506 15210816 15213775 15216892 15256924
## 1 1 1 1 1
## 15271388 15278584 15296504 15304768 15318498
## 1 1 1 1 1
## 15326410 15327104 15345167 15348996 15355558
## 1 1 1 1 1
## 15398632 15398949 16153142 20379117 2147023124370
## 1 1 1 1 1
## 23008859 23014052 23018974 23020824 23021301
## 1 1 1 1 1
## 23024730 23031466 23040405 23047476 23048664
## 1 1 1 1 1
## 23058252 23062239 23098418 23099162 23099932
## 1 1 1 1 1
## 23101684 23135287 23142691 23151931 23155593
## 1 1 1 1 1
## 23160257 23162802 23164700 23172502 23189683
## 1 1 1 1 1
## 23204236 23205868 23216299 23222851 23225377
## 1 1 1 1 1
## 23227896 23229698 23231211 23234774 23238706
## 1 1 1 1 1
## 23239766 23243359 23249597 23249726 23250660
## 1 1 1 1 1
## 23254287 23260749 23274422 23295350 23296049
## 1 1 1 1 1
## 23296338 23301529 23303870 23304482 23308021
## 1 1 1 1 1
## 23327690 23327918 23328562 23355051 23356617
## 1 1 1 1 1
## 23361237 23362283 23364886 23366551 23376053
## 1 1 1 1 1
## 23376227 23378132 23378631 23383411 23385056
## 1 1 1 1 1
## 23391344 23393696 23393699 23394898 23394942
## 1 1 1 1 1
## 23397458 23409970 23410209 23416613 23419911
## 1 1 1 1 1
## 23421331 23424190 23426489 23426700 23429416
## 1 1 1 1 1
## 23432687 23433312 23436790 23439074 23440982
## 1 1 1 1 1
## 23442183 23444139 23445461 23445514 23455320
## 1 1 1 1 1
## 23455603 23456854 23462632 23465783 23469380
## 1 1 1 1 1
## 23469990 23472002 23473854 23474569 23474581
## 1 1 1 1 1
## 23475876 23484159 23487447 23498460 23499317
## 1 1 1 1 1
## 23505186 23506076 23509344 23512135 23516597
## 1 1 1 1 1
## 23517319 23517636 23517664 23519611 23529696
## 1 1 1 1 1
## 23532412 23533225 23533551 23536570 23538563
## 1 1 1 1 1
## 23540065 23541044 23541134 23542262 23543346
## 1 1 1 1 1
## 23543897 23545957 23546387 23546760 23549967
## 1 1 1 1 1
## 23550874 23552991 23554259 23555467 23555812
## 1 1 1 1 1
## 23555902 23556156 23559275 23561202 23565384
## 1 1 1 1 1
## 23566594 23566650 23566915 23568796 23569998
## 1 1 1 1 1
## 23572122 23573868 23578376 23578450 23578828
## 1 1 1 1 1
## 23579416 23579480 23579606 23581236 23586130
## 1 1 1 1 1
## 23587366 23588524 23589043 23589350 23589618
## 1 1 1 1 1
## 23590326 23591582 23592851 23592919 23595312
## 1 1 1 1 1
## 23597005 23597901 23598394 23599249 23600342
## 1 1 1 1 1
## 23600433 23600677 23601006 23603112 23604065
## 1 1 1 1 1
## 23604220 23605859 23607295 23608112 23608327
## 1 1 1 1 1
## 23608735 23608764 23608939 23610050 23610691
## 1 1 1 1 1
## 23610702 23611121 23613657 23613866 23614500
## 1 1 1 1 1
## 23614656 23615361 23615433 23615468 23617564
## 1 1 1 1 1
## 23618002 23618015 23618674 23618935 23619150
## 1 1 1 1 1
## 23619748 23620048 23620755 23623319 23624020
## 1 1 1 1 1
## 23624938 23625305 23627966 23629452 23629753
## 1 1 2 1 1
## 23630672 23630742 23630745 23632402 23634006
## 1 1 1 1 1
## 23634079 23634371 23634417 23634821 23635472
## 1 1 1 1 1
## 23637438 23637676 23638629 2364105 23645255
## 1 1 1 1 1
## 23646565 23647296 23648349 23648845 23650857
## 1 1 1 1 1
## 23650935 23651979 23652469 23654266 23654493
## 1 1 1 1 1
## 23655311 23656143 23656285 23658143 23658541
## 1 1 1 1 1
## 23658663 23659920 23661606 23661749 23664498
## 1 1 1 1 1
## 23664526 23665349 23665471 23666533 23666609
## 1 1 1 1 1
## 23667875 23668462 23669403 23669858 23670555
## 1 1 1 1 1
## 23670631 23671058 23671819 23673599 23673975
## 1 1 1 1 1
## 23674446 23674670 23675985 23676271 23676391
## 1 1 1 1 1
## 23676595 23677809 23677814 23678844 23680391
## 1 1 1 1 1
## 23681057 23681698 23681873 23682541 23682587
## 1 1 1 1 1
## 23682789 23684086 23684771 23685669 23685803
## 1 1 1 1 1
## 23687522 23689258 23689665 23689955 23690438
## 1 1 1 1 1
## 23690598 23691032 23693326 23695008 23697882
## 1 1 1 1 1
## 23697980 23698163 23698227 23698287 23698503
## 1 1 1 1 1
## 23698759 23700513 23700695 23701364 23702835
## 1 1 1 1 1
## 23703381 23703931 23704428 23705144 23705970
## 1 1 1 1 1
## 23706802 23706925 23706960 23706981 23708673
## 1 1 1 1 1
## 23709179 23709463 23709503 23710193 23711741
## 1 1 1 1 1
## 23711827 23712301 23712371 23712637 23713659
## 1 1 1 1 1
## 23714050 23714078 23714428 23714885 23715434
## 1 1 1 1 1
## 23716229 23717461 23717549 23720326 23720956
## 1 1 1 1 1
## 23721226 23722225 23722546 23725299 23726303
## 1 1 1 1 1
## 23726706 23727163 23727631 23728677 23729621
## 1 1 1 1 1
## 23731294 23731359 23731727 23732786 23733446
## 1 1 1 1 1
## 23734284 23734593 23734752 23734846 23735191
## 1 1 1 1 1
## 23735991 23736072 23736119 23736194 23736346
## 1 1 1 1 1
## 23737077 23737793 23738461 23738709 23739121
## 1 1 1 1 1
## 23739157 23739280 23739447 23741662 23741698
## 1 1 1 1 1
## 23741809 23741836 23741930 23741962 23742065
## 1 1 1 1 1
## 23742106 23742884 23743488 23743937 23744158
## 1 1 1 1 1
## 23744982 23745911 23746352 23746982 23746984
## 1 1 1 1 1
## 23747051 23747298 23747731 23747790 23747901
## 1 1 1 1 1
## 23747937 23748384 23748463 23748641 23748735
## 1 1 1 1 1
## 23749266 23749367 23749632 23749869 23750443
## 1 1 1 1 1
## 23756851 23756913 23757588 23759547 23759633
## 1 1 1 1 1
## 23760314 23760414 23760789 23762154 23762169
## 1 1 1 1 1
## 23762636 23762713 23763084 23763339 23766435
## 1 1 1 1 1
## 23766763 23766866 23769990 23771278 23771803
## 1 1 1 1 1
## 23772194 23772686 23774077 23775413 23777196
## 1 1 1 1 1
## 23779710 23780830 23781821 23782094 23783804
## 1 1 1 1 1
## 23784054 23784196 23784924 23785067 23785094
## 1 1 1 1 1
## 23786376 23788042 23788333 23788435 23788891
## 1 1 1 1 1
## 23789657 23789792 23792225 23792464 23793686
## 1 1 1 1 1
## 23794478 23794853 23796760 23796997 23797838
## 1 1 1 1 1
## 23798752 23798928 23801676 23802047 23802190
## 1 1 1 1 1
## 23802200 23802238 23802454 23803158 23803513
## 1 1 1 1 1
## 23804236 23804297 23804629 23804906 23804949
## 1 1 1 1 1
## 23804968 23805120 23805474 23806613 23806826
## 1 1 1 1 1
## 23810500 23811497 23811625 23812494 23812583
## 1 1 1 1 1
## 23812688 23812950 23813049 23813316 23813492
## 1 1 1 1 1
## 23813835 23813856 23813953 23814697 23814757
## 1 1 1 1 1
## 23814779 23814828 23815298 23815523 23815893
## 1 1 1 1 1
## 23816193 23816635 23816659 23817940 23818029
## 1 1 1 1 1
## 23818101 23818403 23819394 23820749 23822334
## 1 1 1 1 1
## 23823154 23823352 23823772 23823979 23824312
## 1 1 1 1 1
## 23824390 23824393 23824602 23825328 23825362
## 1 1 1 1 1
## 23825664 23825667 23825770 23825941 23826076
## 1 1 1 1 1
## 23826084 23826424 23827472 23827855 23827940
## 1 1 1 1 1
## 23828085 23828672 23829153 23830841 23830865
## 1 1 1 1 1
## 23831311 23831312 23831319 23831594 23831820
## 1 1 1 1 1
## 23832908 23832965 23834075 23834125 23834642
## 1 1 1 1 1
## 23834759 23835831 23836023 23836122 23836642
## 1 1 1 1 1
## 23836663 23836669 23836757 23837248 23837420
## 1 1 1 1 1
## 23837575 23837690 23837710 23837944 23838214
## 1 1 1 1 1
## 23838674 238392823 23839365 23839408 23839502
## 1 1 1 1 1
## 23840477 23841014 23842103 23842726 23842732
## 1 1 1 1 1
## 23843130 23843160 23843259 23843778 23844409
## 1 1 1 1 1
## 23844658 23844721 23844802 23844863 23845339
## 1 1 1 1 1
## 23846760 23849016 23849523 23849759 23850186
## 1 1 1 1 1
## 23851030 23851274 23851414 23852259 23852506
## 1 1 1 1 1
## 23852546 23852550 23859512 23860039 23860328
## 1 1 1 1 1
## 23861639 23861924 23864021 23867740 23872770
## 1 1 1 1 1
## 23874285 23876529 23883827 23884080 23887152
## 1 1 1 1 1
## 23889073 23890941 23898838 23900039 23903003
## 1 1 1 1 1
## 23904535 23906259 23912383 23918745 23919128
## 1 1 1 1 1
## 23921646 23923833 23925150 23926966 23927243
## 1 1 1 1 1
## 23928813 23928836 23930831 23932100 23932361
## 1 1 1 1 1
## 23933579 23943361 23943465 23945144 24447244
## 1 1 1 1 1
## 28604256 3786858 76128200 7657438
## 1 1 1 1
##
## $Form
##
## A A b B C D
## 182 1 1 177 180 174
##
## $Q1
##
## a a b c d e
## 4 333 1 338 28 9 2
##
## $Q2
##
## a a|b a|c b c c c | d d
## 4 204 1 1 329 167 1 1 7
##
## $Q3
##
## a a a | c a|c b c d v
## 3 233 1 1 1 204 116 155 1
##
## $Q4
##
## a a|c b c d
## 4 500 1 29 176 5
##
## $Q5
##
## a b c d
## 3 190 22 484 16
##
## $Q6
##
## a b c d e
## 18 194 229 265 7 2
##
## $Q7
##
## a b c c|e d e
## 4 498 44 157 1 8 3
##
## $Q8
##
## a a b c d
## 7 273 1 307 121 6
##
## $Q9
##
## a a|d b c d e
## 8 201 1 41 297 155 12
##
## $Q10
##
## a b c c|d d e
## 6 195 26 197 1 289 1
##
## $Q11
##
## a b c c|d d
## 11 166 139 238 1 160
##
## $Q12
##
## a b c d e
## 12 222 172 166 140 3
##
## $Q13
##
## a a|c b b c c|d d e
## 19 31 1 50 3 96 1 45 469
##
## $Q14
##
## a b c d e
## 14 98 72 484 29 18
##
## $Q15
##
## a a|b b c d e
## 19 350 1 154 58 87 46
##
## $Q16
##
## a b c d e
## 11 28 601 43 23 9
##
## $Q17
##
## a b c c c | d d e
## 26 47 421 117 1 1 56 46
##
## $Q18
##
## a b c d e
## 15 46 34 522 88 10
##
## $Q19
##
## a b c d e
## 19 73 117 91 90 325
##
## $Q20
##
## a b c c|e d e
## 20 43 48 43 1 48 512
##
## $Q21
##
## a b b|d c d e
## 20 17 54 1 44 563 16
##
## $Q22
##
## a b c c|e d e
## 19 117 401 121 1 51 5
# fix mislabeled forms
s19$Form[s19$Form == 'A '] <- 'A'
s19$Form[s19$Form == 'b' ] <- 'B'
# fix mislabeled item responses
s19[,4:25][s19[,4:25] == 'a '] <- 'a'
s19[,4:25][s19[,4:25] == 'b '] <- 'b'
s19[,4:25][s19[,4:25] == 'c '] <- 'c'
s19[,4:25][s19[,4:25] == 'd '] <- 'd'
s19[,4:25][s19[,4:25] == 'e '] <- 'e'
# double check that everything's correct
apply(s19, MARGIN = 2, unique)
## $Sr.no
## [1] " 1" " 2" " 3" " 4" " 5" " 6" " 7" " 8" " 9" " 10" " 11" " 12"
## [13] " 13" " 14" " 15" " 16" " 17" " 18" " 19" " 20" " 21" " 22" " 23" " 24"
## [25] " 25" " 26" " 27" " 28" " 29" " 30" " 31" " 32" " 33" " 34" " 35" " 36"
## [37] " 37" " 38" " 39" " 40" " 41" " 42" " 43" " 44" " 45" " 46" " 47" " 48"
## [49] " 49" " 50" " 51" " 52" " 53" " 54" " 55" " 56" " 57" " 58" " 59" " 60"
## [61] " 61" " 62" " 63" " 64" " 65" " 66" " 67" " 68" " 69" " 70" " 71" " 72"
## [73] " 73" " 74" " 75" " 76" " 77" " 78" " 79" " 80" " 81" " 82" " 83" " 84"
## [85] " 85" " 86" " 87" " 88" " 89" " 90" " 91" " 92" " 93" " 94" " 95" " 96"
## [97] " 97" " 98" " 99" "100" "101" "102" "103" "104" "105" "106" "107" "108"
## [109] "109" "110" "111" "112" "113" "114" "115" "116" "117" "118" "119" "120"
## [121] "121" "122" "123" "124" "125" "126" "127" "128" "129" "130" "131" "132"
## [133] "133" "134" "135" "136" "137" "138" "139" "140" "141" "142" "143" "144"
## [145] "145" "146" "147" "148" "149" "150" "151" "152" "153" "154" "155" "156"
## [157] "157" "158" "159" "160" "161" "162" "163" "164" "165" "166" "167" "168"
## [169] "169" "170" "171" "172" "173" "174" "175" "176" "177" "178" "179" "180"
## [181] "181" "182" "183" "184" "185" "186" "187" "188" "189" "190" "191" "192"
## [193] "193" "194" "195" "196" "197" "198" "199" "200" "201" "202" "203" "204"
## [205] "205" "206" "207" "208" "209" "210" "211" "212" "213" "214" "215" "216"
## [217] "217" "218" "219" "220" "221" "222" "223" "224" "225" "226" "227" "228"
## [229] "229" "230" "231" "232" "233" "234" "235" "236" "237" "238" "239" "240"
## [241] "241" "242" "243" "244" "245" "246" "247" "248" "249" "250" "251" "252"
## [253] "253" "254" "255" "256" "258" "259" "260" "261" "262" "263" "264" "265"
## [265] "266" "267" "268" "269" "270" "271" "272" "273" "274" "275" "276" "277"
## [277] "278" "279" "280" "281" "282" "283" "284" "285" "286" "287" "288" "289"
## [289] "290" "291" "292" "293" "294" "295" "296" "297" "298" "299" "300" "301"
## [301] "302" "303" "304" "305" "306" "307" "308" "309" "310" "311" "312" "313"
## [313] "314" "315" "316" "317" "318" "319" "320" "321" "322" "323" "324" "325"
## [325] "326" "327" "328" "329" "330" "331" "332" "333" "334" "335" "336" "337"
## [337] "338" "339" "340" "341" "342" "343" "344" "345" "346" "347" "348" "349"
## [349] "350" "351" "352" "353" "354" "355" "356" "357" "358" "359" "360" "361"
## [361] "362" "363" "364" "365" "366" "367" "368" "369" "370" "371" "372" "373"
## [373] "374" "375" "376" "377" "378" "379" "380" "381" "382" "383" "384" "385"
## [385] "386" "387" "388" "389" "390" "391" "392" "393" "394" "395" "396" "397"
## [397] "398" "399" "400" "401" "402" "403" "404" "405" "406" "407" "408" "409"
## [409] "410" "411" "412" "413" "414" "415" "416" "417" "418" "419" "420" "421"
## [421] "422" "423" "424" "425" "426" "427" "428" "429" "430" "431" "432" "433"
## [433] "434" "435" "436" "437" "438" "439" "440" "441" "442" "443" "444" "445"
## [445] "446" "447" "448" "449" "450" "451" "452" "453" "454" "455" "456" "457"
## [457] "458" "459" "460" "461" "462" "463" "464" "465" "466" "467" "468" "469"
## [469] "470" "471" "472" "473" "474" "475" "476" "477" "478" "479" "480" "481"
## [481] "482" "483" "484" "485" "486" "487" "488" "489" "490" "491" "492" "493"
## [493] "494" "495" "496" "497" "498" "499" "500" "501" "502" "503" "504" "505"
## [505] "506" "507" "508" "509" "510" "511" "512" "513" "514" "515" "516" "517"
## [517] "518" "519" "520" "521" "522" "523" "524" "525" "526" "527" "528" "529"
## [529] "530" "531" "532" "533" "534" "535" "536" "537" "538" "539" "540" "541"
## [541] "542" "543" "544" "545" "546" "547" "548" "549" "550" "551" "552" "553"
## [553] "554" "555" "556" "557" "558" "559" "560" "561" "562" "563" "564" "565"
## [565] "566" "567" "568" "569" "570" "571" "572" "573" "574" "575" "576" "577"
## [577] "578" "579" "580" "581" "582" "583" "584" "585" "586" "587" "588" "589"
## [589] "590" "591" "592" "593" "594" "595" "596" "597" "598" "599" "600" "601"
## [601] "602" "603" "604" "605" "606" "607" "608" "609" "610" "611" "612" "613"
## [613] "614" "615" "616" "617" "618" "619" "620" "621" "622" "623" "624" "625"
## [625] "626" "627" "628" "629" "630" "631" "632" "633" "634" "635" "636" "637"
## [637] "638" "639" "640" "641" "642" "643" "644" "645" "646" "647" "648" "649"
## [649] "650" "651" "652" "653" "654" "655" "656" "657" "658" "659" "660" "661"
## [661] "662" "663" "664" "665" "666" "667" "668" "669" "670" "671" "672" "673"
## [673] "674" "675" "676" "677" "678" "679" "680" "681" "682" "683" "684" "685"
## [685] "686" "687" "688" "689" "690" "691" "692" "693" "694" "695" "696" "697"
## [697] "698" "699" "700" "701" "702" "703" "704" "705" "706" "707" "708" "709"
## [709] "710" "711" "712" "713" "714" "715" "716"
##
## $course
## [1] "MAT 206-103W" "MAT 51-1100" "MAT 206-1901" "MAT 206.5-0800"
## [5] "MAT 206.5-1500" "MAT 56-1902" "MAT 51-0909" "MAT 56-0900"
## [9] "MAT 302-1300" "MAT 56-1704" "MAT 150.5-1403" "MAT 150.5-0804"
## [13] "MAT 56.5-0900" "MAT 56.5-1201" "MAT 150.5-1201" "Mat 56-0806"
## [17] "MAT 12-1006" "MAT 206.5-1700" "MAT 12-1902" "MAT 209-1701"
## [21] "MAT 51-1007" "MAT 56-0801" "MAT 303-1200" "MAT 301-172W"
## [25] "MAT 302-1700" "MAT 301-120W" "MAT 56-1701" "MAT 150.5-0805"
## [29] "MAT 214.5-1700" "MAT 150.5-1001" "MAT 214-1000" "MAT 56-1700"
## [33] "MAT 150.5-0807" "MAT 206.5-1101" "MAT 301-1701" "MAT 501-1400"
## [37] "MAT 303-1000" "MAT 206-1702" "MAT 206.5-1803" "MAT 150.5-1701"
## [41] "MAT 56-1904" "MAT 56.5-1700" "MAT 301-503W" "MAT 206.5-1301"
## [45] "MAT 206.5-1800" "MAT 301-1200" "MAT 12-1301" "MAT 301-1001"
## [49] "MAT 206.5 - 1801" "MAT 12-0905" "MAT 56.5-1000" "MAT 150.5-1800"
## [53] "MAT 206.5-1401" "MAT 56-1702" "MAT 12-1400" "MAT 206.5-0901"
## [57] "MAT 206-1100" "MAT 12-0700" "MAT 301-505W" "MAT 56-0811"
## [61] "MAT 56.5-0800"
##
## $id
## [1] "23837248" "23661749" "23383411" "23756851"
## [5] "23698227" "23802238" "23742106" "23541134"
## [9] "23410209" "23796997" NA "23844409"
## [13] "23737793" "23738461" "23918745" "23659920"
## [17] "23860328" "23804236" "23771803" "23378132"
## [21] "23784924" "23804629" "23516597" "23673599"
## [25] "23499317" "23762169" "23844721" "23598394"
## [29] "23687522" "23589350" "23822334" "23455320"
## [33] "23647296" "23697882" "23613866" "23816659"
## [37] "23760414" "23876529" "23700695" "23635472"
## [41] "23552991" "15216892" "23834075" "12077127"
## [45] "23664498" "23542262" "15348996" "23852259"
## [49] "23816635" "15213775" "23746984" "23824393"
## [53] "23021301" "23706981" "23648845" "23883827"
## [57] "23811497" "23843259" "23742065" "23720956"
## [61] "23671819" "23536570" "23842103" "23849759"
## [65] "23789657" "23810500" "23610050" "23519611"
## [69] "14086963" "23614500" "23216299" "23884080"
## [73] "23843130" "23774077" "23784054" "23779710"
## [77] "23655311" "23842726" "23601006" "2147023124370"
## [81] "23890941" "23243359" "23749266" "23814697"
## [85] "23394898" "2364105" "23823979" "23676391"
## [89] "23684771" "23825667" "23579606" "23308021"
## [93] "23689665" "23750443" "23823154" "23540065"
## [97] "23674670" "23705144" "23741962" "23549967"
## [101] "23851414" "23677814" "23062239" "23762713"
## [105] "23820749" "23442183" "23762154" "23669403"
## [109] "23831312" "23849016" "23546760" "23801676"
## [113] "23741698" "23816193" "23872770" "23578376"
## [117] "23802454" "23784196" "23726706" "23861924"
## [121] "15326410" "14113767" "23592919" "15304768"
## [125] "23615361" "23600677" "23797838" "23859512"
## [129] "23634006" "23142691" "23231211" "23714428"
## [133] "23462632" "23943465" "23834759" "23617564"
## [137] "23578450" "23805474" "23561202" "23589043"
## [141] "23608939" "23743937" "23205868" "23788042"
## [145] "23736194" "14063280" "23249597" "14016095"
## [149] "23769990" "23785067" "23812688" "23517319"
## [153] "23737077" "23685803" "23782094" "23648349"
## [157] "15318498" "3786858" "23803513" "23608764"
## [161] "23824390" "23874285" "23721226" "23825664"
## [165] "23903003" "23676595" "23838214" "23487447"
## [169] "13127801" "23455603" "23837690" "23419911"
## [173] "23579416" "23813856" "23689258" "23605859"
## [177] "23656143" "23792225" "23624020" "238392823"
## [181] "23630745" "23474581" "23630672" "23852550"
## [185] "23301529" "23703931" "23327690" "23831319"
## [189] "23834642" "23757588" "23681057" "23018974"
## [193] "23852506" "23746352" "13116577" "23239766"
## [197] "23844802" "23048664" "23898838" "14222188"
## [201] "23588524" "23760314" "23634079" "23624938"
## [205] "23708673" "23698163" "23517664" "23827472"
## [209] "23579480" "23705970" "23376227" "23099162"
## [213] "23155593" "23706802" "23361237" "23906259"
## [217] "16153142" "23620755" "15210816" "14010902"
## [221] "23841014" "15296504" "15059136" "23225377"
## [225] "23766763" "23664526" "23693326" "23565384"
## [229] "23505186" "15327104" "23429416" "23554259"
## [233] "23099932" "23860039" "23666533" "15398632"
## [237] "23440982" "23426700" "23416613" "23472002"
## [241] "23047476" "23260749" "23568796" "23627966"
## [245] "23469990" "23747051" "23566594" "23475876"
## [249] "23151931" "23836757" "20379117" "23512135"
## [253] "23700513" "23578828" "23629452" "23595312"
## [257] "23706960" "14232566" "23637438" "23469380"
## [261] "23739280" "23101684" "23098418" "23717549"
## [265] "23378631" "23599249" "23432687" "76128200"
## [269] "23250660" "23591582" "23529696" "23634417"
## [273] "23550874" "23532412" "23162802" "23674446"
## [277] "23748641" "23637676" "23697980" "23546387"
## [281] "23020824" "23618935" "23509344" "23749632"
## [285] "23652469" "23436790" "23397458" "23619748"
## [289] "23731294" "23720326" "23709179" "23748384"
## [293] "23424190" "23825362" "23738709" "23830865"
## [297] "23742884" "23804297" "23823352" "23533551"
## [301] "23611121" "23445461" "14061155" "23831594"
## [305] "23867740" "23656285" "23541044" "23698759"
## [309] "23792464" "23804968" "23604065" "23839365"
## [313] "23058252" "23031466" "23796760" "23654266"
## [317] "23736346" "23625305" "23651979" "23788891"
## [321] "23484159" "23731359" "23327918" "23771278"
## [325] "23728677" "23556156" "23830841" "23811625"
## [329] "23789792" "23409970" "23733446" "23573868"
## [333] "23555902" "14059175" "23788435" "23658143"
## [337] "23393699" "23710193" "23543346" "23680391"
## [341] "23295350" "23831311" "23798752" "23517636"
## [345] "23698287" "23714078" "23303870" "23559275"
## [349] "23376053" "23135287" "23780830" "23587366"
## [353] "23665349" "23676271" "23900039" "23701364"
## [357] "23608112" "23364886" "23714050" "23589618"
## [361] "23766435" "23741809" "23813492" "23538563"
## [365] "23717461" "23887152" "23729621" "23851030"
## [369] "23658663" "23756913" "23843778" "23739121"
## [373] "23456854" "23835831" "23837710" "23850186"
## [377] "23227896" "23785094" "23831820" "23421331"
## [381] "23249726" "23650935" "23673975" "23682541"
## [385] "23813835" "23836669" "23745911" "15398949"
## [389] "23677809" "23678844" "15172506" "15135445"
## [393] "23731727" "23604220" "23749367" "23727163"
## [397] "23736072" "23274422" "23620048" "23691032"
## [401] "23734593" "23684086" "23681698" "23690438"
## [405] "15021738" "23646565" "14164978" "24447244"
## [409] "23823772" "23759633" "13114982" "23645255"
## [413] "23706925" "23827855" "15079837" "23506076"
## [417] "28604256" "23783804" "23385056" "23786376"
## [421] "23829153" "23172502" "23836122" "23794853"
## [425] "23726303" "23815298" "23744158" "23746982"
## [429] "23819394" "23747731" "23608735" "15278584"
## [433] "23600342" "23304482" "23763339" "23864021"
## [437] "23889073" "23826424" "23945144" "23802200"
## [441] "23366551" "23704428" "23473854" "23433312"
## [445] "23650857" "23698503" "23465783" "23008859"
## [449] "23813049" "23716229" "23689955" "23926966"
## [453] "23545957" "23618002" "15017786" "23836023"
## [457] "23685669" "23812583" "23610702" "23024730"
## [461] "23533225" "23928813" "23813316" "23160257"
## [465] "12063719" "23760789" "23164700" "23772194"
## [469] "23229698" "23839502" "23722225" "23615433"
## [473] "23714885" "23852546" "23355051" "23671058"
## [477] "23748463" "23204236" "23839408" "23614656"
## [481] "23543897" "23703381" "13050247" "23566915"
## [485] "23638629" "23712371" "15043806" "23597901"
## [489] "23498460" "23933579" "23722546" "23747298"
## [493] "23668462" "23682789" "23825770" "23828085"
## [497] "23930831" "23836663" "23825328" "23923833"
## [501] "23394942" "23921646" "23861639" "15355558"
## [505] "23682587" "23818029" "23743488" "23712637"
## [509] "23658541" "23843160" "23600433" "23613657"
## [513] "23623319" "23741836" "14230828" "23712301"
## [517] "23736119" "23851274" "23296049" "23444139"
## [521] "23932100" "23838674" "23828672" "23690598"
## [525] "23607295" "23732786" "23702835" "23597005"
## [529] "23840477" "23812950" "23741930" "23849523"
## [533] "23837944" "23670555" "23804949" "23832908"
## [537] "23254287" "23356617" "23798928" "23695008"
## [541] "23715434" "23735191" "23569998" "23661606"
## [545] "23748735" "23749869" "23832965" "23812494"
## [549] "23618015" "23813953" "23772686" "23618674"
## [553] "23806613" "23222851" "23734846" "23825941"
## [557] "23675985" "23328562" "23619150" "23741662"
## [561] "23629753" "23747937" "23665471" "15345167"
## [565] "23793686" "23234774" "23581236" "23445514"
## [569] "23296338" "15039833" "23844863" "23666609"
## [573] "23681873" "23615468" "23775413" "23426489"
## [577] "23925150" "23630742" "23189683" "23670631"
## [581] "23814828" "23845339" "15271388" "23669858"
## [585] "23842732" "23362283" "23802047" "23818403"
## [589] "23610691" "23803158" "23814757" "23709503"
## [593] "23555467" "23735991" "23725299" "7657438"
## [597] "23238706" "23709463" "23826076" "23739447"
## [601] "23824602" "23590326" "23744982" "23654493"
## [605] "23763084" "23603112" "23818101" "23586130"
## [609] "23439074" "14017071" "23634821" "23555812"
## [613] "23040405" "23817940" "23826084" "23846760"
## [617] "23815893" "23919128" "23804906" "23805120"
## [621] "23932361" "23711827" "23713659" "23927243"
## [625] "23727631" "23912383" "23827940" "23834125"
## [629] "23747901" "23928836" "15256924" "23592851"
## [633] "23711741" "23904535" "23474569" "23566650"
## [637] "23759547" "23824312" "23393696" "23837420"
## [641] "23572122" "23802190" "23815523" "23762636"
## [645] "23794478" "23781821" "23788333" "23634371"
## [649] "23806826" "23836642" "23391344" "23943361"
## [653] "23777196" "23739157" "23837575" "23608327"
## [657] "23014052" "23844658" "23667875" "23734284"
## [661] "23747790" "23734752" "23766866" "23632402"
## [665] "23814779"
##
## $Form
## [1] "A" "C" "D" "B"
##
## $Q1
## [1] "a" "d" "b" "c" "e" ""
##
## $Q2
## [1] "b" "d" "c" "a" "" "a|c" "c | d" "a|b"
##
## $Q3
## [1] "d" "c" "a" "b" "a | c" "" "a|c" "v"
##
## $Q4
## [1] "a" "c" "b" "d" "" "a|c"
##
## $Q5
## [1] "c" "d" "a" "b" ""
##
## $Q6
## [1] "b" "a" "c" "" "d" "e"
##
## $Q7
## [1] "a" "c" "b" "e" "d" "" "c|e"
##
## $Q8
## [1] "c" "b" "d" "a" ""
##
## $Q9
## [1] "d" "e" "c" "a" "b" "" "a|d"
##
## $Q10
## [1] "a" "d" "c" "b" "e" "" "c|d"
##
## $Q11
## [1] "d" "a" "c" "b" "" "c|d"
##
## $Q12
## [1] "b" "d" "a" "c" "" "e"
##
## $Q13
## [1] "e" "" "d" "c" "a" "b" "a|c" "c|d"
##
## $Q14
## [1] "c" "a" "b" "d" "e" ""
##
## $Q15
## [1] "a" "c" "e" "b" "d" "" "a|b"
##
## $Q16
## [1] "b" "c" "d" "e" "" "a"
##
## $Q17
## [1] "b" "e" "" "d" "a" "c" "c | d"
##
## $Q18
## [1] "c" "d" "" "a" "b" "e"
##
## $Q19
## [1] "e" "" "b" "c" "a" "d"
##
## $Q20
## [1] "e" "c" "d" "b" "" "a" "c|e"
##
## $Q21
## [1] "d" "e" "" "c" "b" "a" "b|d"
##
## $Q22
## [1] "b" "a" "" "c" "d" "e" "c|e"
score items
s19$q1[s19$Form == 'A' & s19$Q1 == 'a'] <- 1
s19$q1[s19$Form == 'A' & s19$Q1 != 'a'] <- 0
s19$q1[s19$Form == 'A' & s19$Q1 == '' ] <- NA
s19$q1[s19$Form == 'C' & s19$Q1 == 'b'] <- 1
s19$q1[s19$Form == 'C' & s19$Q1 != 'b'] <- 0
s19$q1[s19$Form == 'C' & s19$Q1 == '' ] <- NA
s19$q2[s19$Form == 'B' & s19$Q1 == 'b'] <- 1
s19$q2[s19$Form == 'B' & s19$Q1 != 'b'] <- 0
s19$q2[s19$Form == 'B' & s19$Q1 == '' ] <- NA
s19$q2[s19$Form == 'D' & s19$Q1 == 'a'] <- 1
s19$q2[s19$Form == 'D' & s19$Q1 != 'a'] <- 0
s19$q2[s19$Form == 'D' & s19$Q1 == '' ] <- NA
s19$q3[s19$Form == 'A' & s19$Q2 == 'b'] <- 1
s19$q3[s19$Form == 'A' & s19$Q2 != 'b'] <- 0
s19$q3[s19$Form == 'A' & s19$Q2 == '' ] <- NA
s19$q3[s19$Form == 'C' & s19$Q2 == 'a'] <- 1
s19$q3[s19$Form == 'C' & s19$Q2 != 'a'] <- 0
s19$q3[s19$Form == 'C' & s19$Q2 == '' ] <- NA
s19$q4[s19$Form == 'B' & s19$Q2 == 'c'] <- 1
s19$q4[s19$Form == 'B' & s19$Q2 != 'c'] <- 0
s19$q4[s19$Form == 'B' & s19$Q2 == '' ] <- NA
s19$q4[s19$Form == 'D' & s19$Q2 == 'b'] <- 1
s19$q4[s19$Form == 'D' & s19$Q2 != 'b'] <- 0
s19$q4[s19$Form == 'D' & s19$Q2 == '' ] <- NA
s19$q5[s19$Form == 'A' & s19$Q3 == 'd'] <- 1
s19$q5[s19$Form == 'A' & s19$Q3 != 'd'] <- 0
s19$q5[s19$Form == 'B' & s19$Q3 == '' ] <- NA
s19$q5[s19$Form == 'C' & s19$Q3 == 'b'] <- 1
s19$q5[s19$Form == 'C' & s19$Q3 != 'b'] <- 0
s19$q5[s19$Form == 'C' & s19$Q3 == '' ] <- NA
s19$q6[s19$Form == 'B' & s19$Q3 == 'a'] <- 1
s19$q6[s19$Form == 'B' & s19$Q3 != 'a'] <- 0
s19$q6[s19$Form == 'B' & s19$Q3 == '' ] <- NA
s19$q6[s19$Form == 'D' & s19$Q3 == 'c'] <- 1
s19$q6[s19$Form == 'D' & s19$Q3 != 'c'] <- 0
s19$q6[s19$Form == 'D' & s19$Q3 == '' ] <- NA
s19$q7[s19$Form == 'A' & s19$Q4 == 'a'] <- 1
s19$q7[s19$Form == 'A' & s19$Q4 != 'a'] <- 0
s19$q7[s19$Form == 'A' & s19$Q4 == '' ] <- NA
s19$q7[s19$Form == 'C' & s19$Q4 == 'a'] <- 1
s19$q7[s19$Form == 'C' & s19$Q4 != 'a'] <- 0
s19$q7[s19$Form == 'C' & s19$Q3 == '' ] <- NA
s19$q8[s19$Form == 'B' & s19$Q4 == 'c'] <- 1
s19$q8[s19$Form == 'B' & s19$Q4 != 'c'] <- 0
s19$q8[s19$Form == 'B' & s19$Q4 == '' ] <- NA
s19$q8[s19$Form == 'D' & s19$Q4 == 'a'] <- 1
s19$q8[s19$Form == 'D' & s19$Q4 != 'a'] <- 0
s19$q8[s19$Form == 'D' & s19$Q4 == '' ] <- NA
s19$q9[s19$Form == 'A' & s19$Q5 == 'c'] <- 1
s19$q9[s19$Form == 'A' & s19$Q5 != 'c'] <- 0
s19$q9[s19$Form == 'A' & s19$Q5 == '' ] <- NA
s19$q9[s19$Form == 'C' & s19$Q5 == 'c'] <- 1
s19$q9[s19$Form == 'C' & s19$Q5 != 'c'] <- 0
s19$q9[s19$Form == 'C' & s19$Q5 == '' ] <- NA
s19$q10[s19$Form == 'B' & s19$Q5 == 'a'] <- 1
s19$q10[s19$Form == 'B' & s19$Q5 != 'a'] <- 0
s19$q10[s19$Form == 'B' & s19$Q5 == '' ] <- NA
s19$q10[s19$Form == 'D' & s19$Q5 == 'c'] <- 1
s19$q10[s19$Form == 'D' & s19$Q5 != 'c'] <- 0
s19$q10[s19$Form == 'D' & s19$Q3 == '' ] <- NA
s19$q11[s19$Form == 'A' & s19$Q6 == 'b'] <- 1
s19$q11[s19$Form == 'A' & s19$Q6 != 'b'] <- 0
s19$q11[s19$Form == 'A' & s19$Q6 == '' ] <- NA
s19$q11[s19$Form == 'C' & s19$Q6 == 'c'] <- 1
s19$q11[s19$Form == 'C' & s19$Q6 != 'c'] <- 0
s19$q11[s19$Form == 'C' & s19$Q6 == '' ] <- NA
s19$q12[s19$Form == 'B' & s19$Q6 == 'c'] <- 1
s19$q12[s19$Form == 'B' & s19$Q6 != 'c'] <- 0
s19$q12[s19$Form == 'B' & s19$Q6 == '' ] <- NA
s19$q12[s19$Form == 'D' & s19$Q6 == 'a'] <- 1
s19$q12[s19$Form == 'D' & s19$Q6 != 'a'] <- 0
s19$q12[s19$Form == 'D' & s19$Q6 == '' ] <- NA
s19$q13[s19$Form == 'A' & s19$Q7 == 'a'] <- 1
s19$q13[s19$Form == 'A' & s19$Q7 != 'a'] <- 0
s19$q13[s19$Form == 'A' & s19$Q7 == '' ] <- NA
s19$q13[s19$Form == 'D' & s19$Q7 == 'c'] <- 1
s19$q13[s19$Form == 'D' & s19$Q7 != 'c'] <- 0
s19$q13[s19$Form == 'D' & s19$Q7 == '' ] <- NA
s19$q14[s19$Form == 'B' & s19$Q7 == 'a'] <- 1
s19$q14[s19$Form == 'B' & s19$Q7 != 'a'] <- 0
s19$q14[s19$Form == 'B' & s19$Q7 == '' ] <- NA
s19$q14[s19$Form == 'C' & s19$Q7 == 'a'] <- 1
s19$q14[s19$Form == 'C' & s19$Q7 != 'a'] <- 0
s19$q14[s19$Form == 'C' & s19$Q7 == '' ] <- NA
s19$q15[s19$Form == 'A' & s19$Q8 == 'c'] <- 1
s19$q15[s19$Form == 'A' & s19$Q8 != 'c'] <- 0
s19$q15[s19$Form == 'A' & s19$Q8 == '' ] <- NA
s19$q15[s19$Form == 'D' & s19$Q8 == 'b'] <- 1
s19$q15[s19$Form == 'D' & s19$Q8 != 'b'] <- 0
s19$q15[s19$Form == 'D' & s19$Q8 == '' ] <- NA
s19$q16[s19$Form == 'B' & s19$Q8 == 'a'] <- 1
s19$q16[s19$Form == 'B' & s19$Q8 != 'a'] <- 0
s19$q16[s19$Form == 'B' & s19$Q8 == '' ] <- NA
s19$q16[s19$Form == 'C' & s19$Q8 == 'b'] <- 1
s19$q16[s19$Form == 'C' & s19$Q8 != 'b'] <- 0
s19$q16[s19$Form == 'C' & s19$Q8 == '' ] <- NA
s19$q17[s19$Form == 'A' & s19$Q9 == 'd'] <- 1
s19$q17[s19$Form == 'A' & s19$Q9 != 'd'] <- 0
s19$q17[s19$Form == 'A' & s19$Q9 == '' ] <- NA
s19$q17[s19$Form == 'D' & s19$Q9 == 'c'] <- 1
s19$q17[s19$Form == 'D' & s19$Q9 != 'c'] <- 0
s19$q17[s19$Form == 'D' & s19$Q9 == '' ] <- NA
s19$q18[s19$Form == 'B' & s19$Q9 == 'c'] <- 1
s19$q18[s19$Form == 'B' & s19$Q9 != 'c'] <- 0
s19$q18[s19$Form == 'B' & s19$Q9 == '' ] <- NA
s19$q18[s19$Form == 'C' & s19$Q9 == 'a'] <- 1
s19$q18[s19$Form == 'C' & s19$Q9 != 'a'] <- 0
s19$q18[s19$Form == 'C' & s19$Q9 == '' ] <- NA
s19$q19[s19$Form == 'A' & s19$Q10 == 'a'] <- 1
s19$q19[s19$Form == 'A' & s19$Q10 != 'a'] <- 0
s19$q19[s19$Form == 'A' & s19$Q10 == '' ] <- NA
s19$q19[s19$Form == 'D' & s19$Q10 == 'd'] <- 1
s19$q19[s19$Form == 'D' & s19$Q10 != 'd'] <- 0
s19$q19[s19$Form == 'D' & s19$Q10 == '' ] <- NA
s19$q20[s19$Form == 'B' & s19$Q10 == 'd'] <- 1
s19$q20[s19$Form == 'B' & s19$Q10 != 'd'] <- 0
s19$q20[s19$Form == 'B' & s19$Q10 == '' ] <- NA
s19$q20[s19$Form == 'C' & s19$Q10 == 'c'] <- 1
s19$q20[s19$Form == 'C' & s19$Q10 != 'c'] <- 0
s19$q20[s19$Form == 'C' & s19$Q10 == '' ] <- NA
s19$q21[s19$Form == 'A' & s19$Q11 == 'd'] <- 1
s19$q21[s19$Form == 'A' & s19$Q11 != 'd'] <- 0
s19$q21[s19$Form == 'A' & s19$Q11 == '' ] <- NA
s19$q21[s19$Form == 'D' & s19$Q11 == 'c'] <- 1
s19$q21[s19$Form == 'D' & s19$Q11 != 'c'] <- 0
s19$q21[s19$Form == 'D' & s19$Q11 == '' ] <- NA
s19$q22[s19$Form == 'B' & s19$Q11 == 'c'] <- 1
s19$q22[s19$Form == 'B' & s19$Q11 != 'c'] <- 0
s19$q22[s19$Form == 'B' & s19$Q11 == '' ] <- NA
s19$q22[s19$Form == 'C' & s19$Q11 == 'b'] <- 1
s19$q22[s19$Form == 'C' & s19$Q11 != 'b'] <- 0
s19$q22[s19$Form == 'C' & s19$Q11 == '' ] <- NA
s19$q23[s19$Form == 'A' & s19$Q12 == 'b'] <- 1
s19$q23[s19$Form == 'A' & s19$Q12 != 'b'] <- 0
s19$q23[s19$Form == 'A' & s19$Q12 == '' ] <- NA
s19$q23[s19$Form == 'D' & s19$Q12 == 'a'] <- 1
s19$q23[s19$Form == 'D' & s19$Q12 != 'a'] <- 0
s19$q23[s19$Form == 'D' & s19$Q12 == '' ] <- NA
s19$q24[s19$Form == 'B' & s19$Q12 == 'c'] <- 1
s19$q24[s19$Form == 'B' & s19$Q12 != 'c'] <- 0
s19$q24[s19$Form == 'B' & s19$Q12 == '' ] <- NA
s19$q24[s19$Form == 'C' & s19$Q12 == 'd'] <- 1
s19$q24[s19$Form == 'C' & s19$Q12 != 'd'] <- 0
s19$q24[s19$Form == 'C' & s19$Q12 == '' ] <- NA
s19$q25 <- ifelse(s19$Q13 == 'e', 1, 0)
s19$q26 <- ifelse(s19$Q14 == 'c', 1, 0)
s19$q27 <- ifelse(s19$Q15 == 'a', 1, 0)
s19$q28 <- ifelse(s19$Q16 == 'b', 1, 0)
s19$q29 <- ifelse(s19$Q17 == 'b', 1, 0)
s19$q30 <- ifelse(s19$Q18 == 'c', 1, 0)
s19$q31 <- ifelse(s19$Q19 == 'e', 1, 0)
s19$q32 <- ifelse(s19$Q20 == 'e', 1, 0)
s19$q33 <- ifelse(s19$Q21 == 'd', 1, 0)
s19$q34 <- ifelse(s19$Q22 == 'b', 1, 0)
s19$q25[s19$Q13 == '' ] <- NA
s19$q26[s19$Q14 == '' ] <- NA
s19$q27[s19$Q15 == '' ] <- NA
s19$q28[s19$Q16 == '' ] <- NA
s19$q29[s19$Q17 == '' ] <- NA
s19$q30[s19$Q18 == '' ] <- NA
s19$q31[s19$Q19 == '' ] <- NA
s19$q32[s19$Q20 == '' ] <- NA
s19$q33[s19$Q21 == '' ] <- NA
s19$q34[s19$Q22 == '' ] <- NA
basic descriptives
itemDesc <- describe(s19[,27:59]) # get item descriptives
itemDesc
## vars n mean sd median trimmed mad min max range skew kurtosis se
## q1 1 360 0.91 0.29 1 1.00 0 0 1 1 -2.76 5.64 0.02
## q2 2 351 0.92 0.28 1 1.00 0 0 1 1 -3.02 7.14 0.01
## q3 3 360 0.90 0.30 1 1.00 0 0 1 1 -2.61 4.80 0.02
## q4 4 351 0.84 0.37 1 0.92 0 0 1 1 -1.82 1.33 0.02
## q5 5 363 0.82 0.38 1 0.90 0 0 1 1 -1.69 0.86 0.02
## q6 6 351 0.66 0.48 1 0.69 0 0 1 1 -0.65 -1.58 0.03
## q7 7 361 0.93 0.26 1 1.00 0 0 1 1 -3.22 8.39 0.01
## q8 8 350 0.91 0.29 1 1.00 0 0 1 1 -2.76 5.66 0.02
## q9 9 361 0.91 0.28 1 1.00 0 0 1 1 -2.94 6.69 0.01
## q10 10 350 0.87 0.34 1 0.96 0 0 1 1 -2.21 2.89 0.02
## q11 11 361 0.84 0.37 1 0.92 0 0 1 1 -1.81 1.29 0.02
## q12 12 336 0.58 0.49 1 0.60 0 0 1 1 -0.31 -1.91 0.03
## q13 13 353 0.83 0.37 1 0.92 0 0 1 1 -1.78 1.16 0.02
## q14 14 358 0.90 0.30 1 0.99 0 0 1 1 -2.60 4.75 0.02
## q15 15 352 0.60 0.49 1 0.62 0 0 1 1 -0.40 -1.84 0.03
## q16 16 356 0.81 0.40 1 0.88 0 0 1 1 -1.54 0.38 0.02
## q17 17 351 0.74 0.44 1 0.80 0 0 1 1 -1.09 -0.81 0.02
## q18 18 356 0.86 0.35 1 0.95 0 0 1 1 -2.06 2.25 0.02
## q19 19 353 0.81 0.39 1 0.88 0 0 1 1 -1.55 0.41 0.02
## q20 20 356 0.89 0.31 1 0.99 0 0 1 1 -2.54 4.45 0.02
## q21 21 351 0.84 0.37 1 0.93 0 0 1 1 -1.85 1.43 0.02
## q22 22 353 0.51 0.50 1 0.51 0 0 1 1 -0.04 -2.00 0.03
## q23 23 351 0.82 0.38 1 0.90 0 0 1 1 -1.66 0.77 0.02
## q24 24 352 0.68 0.47 1 0.72 0 0 1 1 -0.75 -1.44 0.02
## q25 25 696 0.67 0.47 1 0.72 0 0 1 1 -0.74 -1.45 0.02
## q26 26 701 0.69 0.46 1 0.74 0 0 1 1 -0.82 -1.33 0.02
## q27 27 696 0.50 0.50 1 0.50 0 0 1 1 -0.01 -2.00 0.02
## q28 28 704 0.85 0.35 1 0.94 0 0 1 1 -2.00 1.99 0.01
## q29 29 689 0.61 0.49 1 0.64 0 0 1 1 -0.45 -1.80 0.02
## q30 30 700 0.75 0.44 1 0.81 0 0 1 1 -1.13 -0.73 0.02
## q31 31 696 0.47 0.50 0 0.46 0 0 1 1 0.13 -1.99 0.02
## q32 32 695 0.74 0.44 1 0.80 0 0 1 1 -1.07 -0.85 0.02
## q33 33 695 0.81 0.39 1 0.89 0 0 1 1 -1.58 0.49 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-34' # make the 1 dimensional model
# fit the Rasch
results.1pl <- mirt(data=s19[,27:60], model=m_1dimension, itemtype="Rasch", SE=TRUE, verbose=FALSE)
# this ^ is the rasch, i've been fitting the 1pl; not sure if you can do that in MIRT
coef.1pl <- coef(results.1pl, IRTpars=TRUE, simplify=TRUE)
# fit the 2pl
results.2pl <- mirt(data=s19[,27:60], model=m_1dimension, itemtype="2PL", SE=TRUE, verbose=FALSE)
coef.2pl <- coef(results.2pl, IRTpars=TRUE, simplify=TRUE)
param.num.3pl <- mirt(data=s19[,27:60], model=m_1dimension, itemtype="3PL", SE=TRUE, verbose=FALSE,
pars='values') # get the parameter numbers
m <- 'F = 1-34
PRIOR = (1-34, g, norm, -1.1,3)'
model <- mirt.model(m)
results.3pl <- mirt(data=s19[,27:60], model=model, itemtype="3PL", SE=TRUE, verbose=FALSE) # fit the 3pl
coef.3pl <- coef(results.3pl, IRTpars=TRUE, simplify=TRUE)
coef.3pl
## $items
## a b g u
## q1 2.085 -1.645 0.050 1
## q2 1.364 -2.180 0.128 1
## q3 2.838 -1.414 0.042 1
## q4 2.279 -1.088 0.179 1
## q5 0.651 -2.394 0.071 1
## q6 2.219 -0.168 0.237 1
## q7 2.666 -1.702 0.045 1
## q8 2.279 -1.660 0.074 1
## q9 2.077 -1.717 0.077 1
## q10 1.256 -1.798 0.137 1
## q11 1.937 -1.244 0.022 1
## q12 1.033 -0.259 0.075 1
## q13 2.050 -1.244 0.064 1
## q14 1.669 -1.558 0.217 1
## q15 1.525 0.896 0.454 1
## q16 1.423 -1.219 0.061 1
## q17 2.309 -0.802 0.024 1
## q18 2.116 -1.219 0.119 1
## q19 2.330 -1.064 0.052 1
## q20 2.957 -1.361 0.046 1
## q21 2.770 -1.099 0.107 1
## q22 2.024 0.572 0.251 1
## q23 2.127 -0.927 0.251 1
## q24 2.454 -0.193 0.210 1
## q25 2.171 -0.373 0.130 1
## q26 2.280 -0.012 0.364 1
## q27 1.523 0.363 0.161 1
## q28 1.550 -1.380 0.160 1
## q29 2.507 0.136 0.276 1
## q30 2.126 -0.275 0.371 1
## q31 2.328 0.337 0.113 1
## q32 1.634 -0.503 0.258 1
## q33 2.020 -0.694 0.337 1
## q34 1.929 0.353 0.292 1
##
## $means
## F
## 0
##
## $cov
## F
## F 1
# lr tests
anova(results.1pl, results.2pl)
##
## Model 1: mirt(data = s19[, 27:60], model = m_1dimension, itemtype = "Rasch",
## SE = TRUE, verbose = FALSE)
## Model 2: mirt(data = s19[, 27:60], model = m_1dimension, itemtype = "2PL",
## SE = TRUE, verbose = FALSE)
## AIC SABIC HQ BIC logLik X2 df p
## 1 13976.05 14024.94 14037.85 14136.08 -6953.024 NaN NaN NaN
## 2 13819.56 13914.56 13939.63 14130.48 -6841.780 222.489 33 0
anova(results.2pl, results.3pl)
##
## Model 1: mirt(data = s19[, 27:60], model = m_1dimension, itemtype = "2PL",
## SE = TRUE, verbose = FALSE)
## Model 2: mirt(data = s19[, 27:60], model = model, itemtype = "3PL", SE = TRUE,
## verbose = FALSE)
## AIC SABIC HQ BIC logLik logPost df
## 1 13819.56 13914.56 13939.63 14130.48 -6841.780 -6841.780 NaN
## 2 13820.27 13962.76 14000.37 14286.64 -6808.133 -6879.671 34
firstFive <- c(1:5)
itemplot(results.3pl, 1)
plot(results.3pl, type='trace', auto.key=F) # all item trace lines
plot(results.3pl, type='infotrace',auto.key=T)
plot(results.3pl, type='info', auto.key=T) # all item trace lines
theta <- fscores(results.3pl)
2 factor model
#parnums.multi2.3pl <- mirt(data=s19[,27:60], model=2, itemtype="3PL",
# pars = 'values', SE=TRUE, verbose=FALSE) # get param numbers
#results.multi2.3pl.s19 <- mirt(data=s19[,27:60], model=2, itemtype="3PL",
# parprior = list(c(seq(4,350,5), 'norm', -1.1,3),
# c(seq(1,350,5), 'norm', 0.0,3),
# c(seq(2,350,5), 'norm', 0.0,3),
# c(seq(3,350,5), 'norm', 0.0,3)),
# SE=TRUE, verbose=FALSE) # fit the 3pl
#save(results.multi2.3pl.s19, file = "results.multi2.3pl.s19")
load('C:/Users/Sydne/Documents/results.multi2.3pl.s19')
coef.multi2.3pl.s19 <- coef(results.multi2.3pl.s19, simplify = T, rotate = 'bifactorQ')
##
## Rotation: bifactorQ
coef.multi2.3pl.s19
## $items
## a1 a2 d g u
## q1 1.088 2.082 3.587 0.060 1
## q2 1.028 0.888 2.924 0.146 1
## q3 1.597 2.790 4.284 0.040 1
## q4 1.461 2.132 2.737 0.165 1
## q5 0.190 0.911 1.648 0.071 1
## q6 1.715 2.595 0.573 0.215 1
## q7 1.336 2.428 4.537 0.050 1
## q8 1.340 2.030 3.947 0.074 1
## q9 1.243 1.705 3.523 0.087 1
## q10 1.050 0.629 2.226 0.134 1
## q11 1.205 2.040 2.647 0.022 1
## q12 0.624 1.384 0.180 0.120 1
## q13 1.549 1.179 2.444 0.081 1
## q14 1.212 1.141 2.513 0.249 1
## q15 0.686 1.599 -0.983 0.385 1
## q16 1.057 1.035 1.727 0.077 1
## q17 1.912 1.068 1.784 0.029 1
## q18 1.505 1.600 2.539 0.160 1
## q19 1.729 1.434 2.427 0.048 1
## q20 1.819 2.326 4.040 0.039 1
## q21 2.067 2.376 3.177 0.141 1
## q22 1.684 2.376 -1.407 0.246 1
## q23 1.712 0.793 2.130 0.152 1
## q24 2.095 2.351 0.482 0.228 1
## q25 1.783 0.660 1.012 0.035 1
## q26 2.026 0.342 0.421 0.281 1
## q27 1.673 0.412 -0.699 0.183 1
## q28 1.262 0.849 2.200 0.116 1
## q29 2.042 0.940 -0.197 0.249 1
## q30 1.585 0.581 0.950 0.249 1
## q31 1.886 0.579 -0.503 0.063 1
## q32 1.526 0.234 1.334 0.041 1
## q33 2.158 0.212 1.968 0.189 1
## q34 2.387 0.000 -0.572 0.257 1
##
## $means
## F1 F2
## 0 0
##
## $cov
## F1 F2
## F1 1 0
## F2 0 1
3 factor model
#parnums.multi3.3pl.s19 <- mirt(data=s19[,27:60], model=3, itemtype="3PL",
# pars = 'values', SE=TRUE, verbose=FALSE) # get param numbers
#parnums.multi3.3pl.s19
#results.multi3.3pl.s19 <- mirt(data=s19[,27:60], model=3, itemtype="3PL",
# parprior = list(c(seq(5,420,6), 'norm', -1.1,3),
# c(seq(1,420,6), 'norm', 0.0,3),
# c(seq(2,420,6), 'norm', 0.0,3),
# c(seq(3,420,6), 'norm', 0.0,3),
# c(seq(4,420,6), 'norm', 0.0,3)),
# SE=TRUE, verbose=FALSE) # fit the 3pl
#save(results.multi3.3pl.s19, file = "results.multi3.3pl.s19")
load('C:/Users/Sydne/Documents/results.multi3.3pl.s19')
coef.multi3.3pl.s19 <- coef(results.multi3.3pl.s19, simplify = T, rotate = 'bifactorQ')
##
## Rotation: bifactorQ
coef.multi3.3pl.s19
## $items
## a1 a2 a3 d g u
## q1 2.535 -0.078 -0.733 3.874 0.040 1
## q2 1.289 0.544 0.557 2.877 0.235 1
## q3 3.186 -0.713 -0.548 4.334 0.037 1
## q4 2.735 1.734 0.384 3.189 0.171 1
## q5 0.746 -0.481 -0.280 1.617 0.078 1
## q6 3.008 0.786 -0.200 0.562 0.215 1
## q7 2.857 -1.830 -0.201 5.245 0.038 1
## q8 2.361 0.652 -0.141 3.965 0.074 1
## q9 1.933 -0.926 0.262 3.551 0.080 1
## q10 2.059 -1.558 -0.294 3.532 0.080 1
## q11 2.208 -0.910 -0.106 2.616 0.022 1
## q12 1.318 1.258 0.054 0.261 0.087 1
## q13 2.174 -0.711 0.190 2.759 0.047 1
## q14 1.680 -0.625 0.095 2.698 0.202 1
## q15 0.898 1.484 -0.334 0.399 0.078 1
## q16 1.512 0.028 0.078 1.738 0.069 1
## q17 2.124 0.142 0.655 1.817 0.027 1
## q18 2.133 0.231 0.194 2.536 0.135 1
## q19 2.262 -0.152 0.417 2.529 0.033 1
## q20 3.213 0.342 -0.211 4.286 0.037 1
## q21 2.661 0.359 0.229 3.148 0.057 1
## q22 3.099 0.646 -0.363 -1.441 0.234 1
## q23 1.624 0.411 0.925 2.305 0.093 1
## q24 3.782 -0.197 -0.183 0.497 0.228 1
## q25 1.669 -0.086 0.929 0.980 0.045 1
## q26 1.626 -0.170 1.287 0.345 0.296 1
## q27 1.526 0.013 1.211 -0.893 0.208 1
## q28 1.446 0.181 0.506 2.222 0.114 1
## q29 2.011 0.172 1.091 -0.214 0.250 1
## q30 1.712 -0.447 0.814 0.812 0.304 1
## q31 1.806 -0.045 0.998 -0.607 0.081 1
## q32 1.168 -0.273 0.951 1.287 0.055 1
## q33 1.566 0.122 1.923 2.237 0.158 1
## q34 1.409 -0.038 1.627 -0.377 0.225 1
##
## $means
## F1 F2 F3
## 0 0 0
##
## $cov
## F1 F2 F3
## F1 1 0.00 0.00
## F2 0 1.00 0.03
## F3 0 0.03 1.00
4 factor model
#parnums.multi4.3pl.s19 <- mirt(data=s19[,27:60], model=4, itemtype="3PL",
# pars = 'values', SE=TRUE, verbose=FALSE) # get param numbers
#parnums.multi4.3pl.s19
#results.multi4.3pl.s19 <- mirt(data=s19[,27:60], model=4, itemtype="3PL",
# parprior = list(c(seq(6,490,7), 'norm', -1.1,3),
# c(seq(1,490,7), 'norm', 0.0,3),
# c(seq(2,490,7), 'norm', 0.0,3),
# c(seq(3,490,7), 'norm', 0.0,3),
# c(seq(4,490,7), 'norm', 0.0,3),
# c(seq(5,490,7), 'norm', 0.0,3)),
# SE=TRUE, verbose=FALSE, method = 'QMCEM')
#save(results.multi4.3pl.s19, file = "results.multi4.3pl.s19")
load('C:/Users/Sydne/Documents/results.multi4.3pl.s19')
coef.multi4.3pl.s19 <- coef(results.multi4.3pl.s19, simplify = T, rotate = 'bifactorQ')
##
## Rotation: bifactorQ
coef.multi4.3pl.s19
## $items
## a1 a2 a3 a4 d g u
## q1 2.365 -0.984 -0.492 0.019 3.850 0.044 1
## q2 1.321 0.502 0.440 0.172 2.925 0.204 1
## q3 3.655 -2.140 -0.336 0.958 5.349 0.028 1
## q4 2.889 1.559 0.348 1.111 3.385 0.175 1
## q5 0.798 -0.116 -0.268 1.182 1.886 0.052 1
## q6 2.889 0.787 -0.233 0.168 0.594 0.203 1
## q7 2.552 -0.523 -0.519 0.745 4.440 0.048 1
## q8 2.510 0.026 0.043 1.491 4.590 0.066 1
## q9 2.437 0.698 -0.093 1.306 4.241 0.079 1
## q10 2.207 -1.690 -0.467 -0.581 3.783 0.077 1
## q11 2.663 0.288 -0.577 0.773 2.927 0.021 1
## q12 1.249 1.226 0.018 0.058 0.388 0.038 1
## q13 2.382 -0.803 0.074 -0.303 2.914 0.067 1
## q14 1.672 -0.451 -0.092 -0.233 2.829 0.120 1
## q15 1.507 1.980 -0.297 -0.398 -0.539 0.294 1
## q16 1.556 -0.258 0.038 0.081 1.730 0.095 1
## q17 2.098 0.026 0.682 0.189 1.794 0.029 1
## q18 2.743 -0.534 0.612 1.299 3.029 0.198 1
## q19 3.341 -0.500 0.481 1.583 3.270 0.109 1
## q20 3.138 -0.592 0.161 1.195 4.391 0.055 1
## q21 2.969 0.727 0.050 0.101 3.399 0.056 1
## q22 2.996 1.023 -0.486 -1.002 -1.296 0.212 1
## q23 1.686 0.553 0.815 -0.062 2.288 0.100 1
## q24 3.426 0.498 -0.567 -1.503 1.320 0.104 1
## q25 1.700 -0.023 0.775 -0.177 0.990 0.040 1
## q26 1.680 -0.143 1.228 -0.660 0.411 0.288 1
## q27 1.545 -0.092 1.096 -0.335 -0.862 0.205 1
## q28 1.501 0.091 0.592 0.433 2.215 0.159 1
## q29 2.071 0.241 1.000 0.003 -0.215 0.250 1
## q30 1.335 -0.218 0.578 -0.694 1.381 0.073 1
## q31 1.635 -0.066 0.875 -0.428 -0.439 0.049 1
## q32 1.285 -0.410 0.902 -0.413 1.376 0.043 1
## q33 1.813 0.077 2.087 0.215 2.246 0.211 1
## q34 1.576 0.111 1.903 0.243 -0.441 0.229 1
##
## $means
## F1 F2 F3 F4
## 0 0 0 0
##
## $cov
## F1 F2 F3 F4
## F1 1 0.000 0.000 0.000
## F2 0 1.000 0.007 -0.029
## F3 0 0.007 1.000 0.027
## F4 0 -0.029 0.027 1.000
compare fit
anova(results.3pl, results.multi2.3pl.s19, results.multi3.3pl.s19,
results.multi4.3pl.s19)
## AIC SABIC HQ BIC logLik logPost df
## 1 13820.27 13962.76 14000.37 14286.64 -6808.133 -6879.671 NaN
## 2 13816.77 14006.30 14055.42 14434.97 -6773.383 -7070.777 33
## 3 13817.10 14051.56 14112.33 14581.83 -6741.548 -7111.138 32
## 4 13813.30 14091.28 14163.33 14719.99 -6708.649 -7150.973 31
calculate IECV 2 factor
sum.multi2.s19 <- summary(results.multi2.3pl.s19, rotate = "bifactorT")
##
## Rotation: bifactorT
##
## Rotated factor loadings:
##
## F1 F2 h2
## q1 0.3750 0.7178 0.656
## q2 0.4720 0.4077 0.389
## q3 0.4391 0.7670 0.781
## q4 0.4721 0.6889 0.697
## q5 0.0978 0.4698 0.230
## q6 0.4836 0.7319 0.770
## q7 0.4107 0.7466 0.726
## q8 0.4513 0.6839 0.671
## q9 0.4584 0.6289 0.606
## q10 0.5009 0.3001 0.341
## q11 0.4131 0.6992 0.660
## q12 0.2736 0.6069 0.443
## q13 0.5991 0.4561 0.567
## q14 0.5093 0.4791 0.489
## q15 0.2817 0.6569 0.511
## q16 0.4686 0.4589 0.430
## q17 0.6893 0.3851 0.623
## q18 0.5414 0.5760 0.625
## q19 0.6136 0.5087 0.635
## q20 0.5337 0.6825 0.751
## q21 0.5774 0.6637 0.774
## q22 0.4992 0.7044 0.745
## q23 0.6738 0.3122 0.551
## q24 0.5853 0.6567 0.774
## q25 0.6988 0.2587 0.555
## q26 0.7594 0.1283 0.593
## q27 0.6908 0.1700 0.506
## q28 0.5530 0.3720 0.444
## q29 0.7242 0.3335 0.636
## q30 0.6611 0.2423 0.496
## q31 0.7238 0.2221 0.573
## q32 0.6641 0.1020 0.451
## q33 0.7828 0.0769 0.619
## q34 0.8142 0.0000 0.663
##
## Rotated SS loadings: 10.877 9.105
##
## Factor correlations:
##
## F1 F2
## F1 1 0
## F2 0 1
f2.iecv.s19 <- sum.multi2.s19$rotF[,1]^2/sum.multi2.s19$h2
f2.summary <- as.data.frame(cbind(sum.multi2.s19$rotF[,1], sum.multi2.s19$h2,
f2.iecv.s19))
names(f2.summary) <- c("Gen Factor", "Communality", "IECV")
round(f2.summary,2)
## Gen Factor Communality IECV
## q1 0.37 0.66 0.21
## q2 0.47 0.39 0.57
## q3 0.44 0.78 0.25
## q4 0.47 0.70 0.32
## q5 0.10 0.23 0.04
## q6 0.48 0.77 0.30
## q7 0.41 0.73 0.23
## q8 0.45 0.67 0.30
## q9 0.46 0.61 0.35
## q10 0.50 0.34 0.74
## q11 0.41 0.66 0.26
## q12 0.27 0.44 0.17
## q13 0.60 0.57 0.63
## q14 0.51 0.49 0.53
## q15 0.28 0.51 0.16
## q16 0.47 0.43 0.51
## q17 0.69 0.62 0.76
## q18 0.54 0.62 0.47
## q19 0.61 0.64 0.59
## q20 0.53 0.75 0.38
## q21 0.58 0.77 0.43
## q22 0.50 0.75 0.33
## q23 0.67 0.55 0.82
## q24 0.59 0.77 0.44
## q25 0.70 0.56 0.88
## q26 0.76 0.59 0.97
## q27 0.69 0.51 0.94
## q28 0.55 0.44 0.69
## q29 0.72 0.64 0.83
## q30 0.66 0.50 0.88
## q31 0.72 0.57 0.91
## q32 0.66 0.45 0.98
## q33 0.78 0.62 0.99
## q34 0.81 0.66 1.00
calculate IECV 3 factor
sum.multi3.s19 <- summary(results.multi3.3pl.s19, rotate = "bifactorT")
##
## Rotation: bifactorT
##
## Rotated factor loadings:
##
## F1 F2 F3 h2
## q1 0.807 -0.046678 -0.2312 0.707
## q2 0.570 0.234864 0.2467 0.441
## q3 0.852 -0.211697 -0.1455 0.791
## q4 0.751 0.459362 0.1071 0.786
## q5 0.380 -0.259128 -0.1437 0.232
## q6 0.852 0.203860 -0.0536 0.770
## q7 0.742 -0.496703 -0.0521 0.800
## q8 0.795 0.202072 -0.0449 0.675
## q9 0.697 -0.347904 0.0961 0.616
## q10 0.652 -0.515812 -0.0943 0.701
## q11 0.746 -0.325323 -0.0349 0.664
## q12 0.538 0.494660 0.0243 0.534
## q13 0.756 -0.261677 0.0677 0.645
## q14 0.674 -0.264659 0.0393 0.526
## q15 0.379 0.595803 -0.1340 0.516
## q16 0.664 0.000548 0.0360 0.442
## q17 0.758 0.042620 0.2352 0.632
## q18 0.778 0.071328 0.0728 0.616
## q19 0.788 -0.064101 0.1474 0.647
## q20 0.880 0.075132 -0.0553 0.783
## q21 0.836 0.098825 0.0741 0.715
## q22 0.862 0.159707 -0.0979 0.778
## q23 0.635 0.157953 0.3623 0.560
## q24 0.909 -0.065977 -0.0420 0.832
## q25 0.651 -0.036034 0.3645 0.558
## q26 0.603 -0.061491 0.4804 0.598
## q27 0.589 0.006878 0.4692 0.567
## q28 0.630 0.073048 0.2219 0.452
## q29 0.704 0.057322 0.3835 0.646
## q30 0.659 -0.177097 0.3163 0.566
## q31 0.674 -0.019257 0.3744 0.595
## q32 0.508 -0.117692 0.4169 0.446
## q33 0.519 0.048087 0.6395 0.681
## q34 0.512 -0.007371 0.5941 0.615
##
## Rotated SS loadings: 16.638 2.083 2.41
##
## Factor correlations:
##
## F1 F2 F3
## F1 1 0 0
## F2 0 1 0
## F3 0 0 1
f3.iecv.s19 <- sum.multi3.s19$rotF[,1]^2/sum.multi3.s19$h2
f3.summary <- as.data.frame(cbind(sum.multi3.s19$rotF[,1], sum.multi3.s19$h2,
f3.iecv.s19))
names(f3.summary) <- c("Gen Factor", "Communality", "IECV")
round(f3.summary,2)
## Gen Factor Communality IECV
## q1 0.81 0.71 0.92
## q2 0.57 0.44 0.74
## q3 0.85 0.79 0.92
## q4 0.75 0.79 0.72
## q5 0.38 0.23 0.62
## q6 0.85 0.77 0.94
## q7 0.74 0.80 0.69
## q8 0.79 0.67 0.94
## q9 0.70 0.62 0.79
## q10 0.65 0.70 0.61
## q11 0.75 0.66 0.84
## q12 0.54 0.53 0.54
## q13 0.76 0.64 0.89
## q14 0.67 0.53 0.86
## q15 0.38 0.52 0.28
## q16 0.66 0.44 1.00
## q17 0.76 0.63 0.91
## q18 0.78 0.62 0.98
## q19 0.79 0.65 0.96
## q20 0.88 0.78 0.99
## q21 0.84 0.71 0.98
## q22 0.86 0.78 0.95
## q23 0.64 0.56 0.72
## q24 0.91 0.83 0.99
## q25 0.65 0.56 0.76
## q26 0.60 0.60 0.61
## q27 0.59 0.57 0.61
## q28 0.63 0.45 0.88
## q29 0.70 0.65 0.77
## q30 0.66 0.57 0.77
## q31 0.67 0.59 0.76
## q32 0.51 0.45 0.58
## q33 0.52 0.68 0.40
## q34 0.51 0.62 0.43
calculate IECV 4 factor
sum.multi4.s19 <- summary(results.multi4.3pl.s19, rotate = "bifactorT")
##
## Rotation: bifactorT
##
## Rotated factor loadings:
##
## F1 F2 F3 F4 h2
## q1 0.760 -0.312423 -0.1630 0.00318 0.702
## q2 0.584 0.221436 0.1971 0.07470 0.434
## q3 0.782 -0.458178 -0.0745 0.20272 0.868
## q4 0.747 0.398485 0.0979 0.28355 0.806
## q5 0.358 -0.063389 -0.1115 0.52589 0.421
## q6 0.835 0.230241 -0.0661 0.04419 0.757
## q7 0.788 -0.163412 -0.1594 0.22604 0.724
## q8 0.744 -0.000286 0.0191 0.43839 0.746
## q9 0.736 0.203839 -0.0203 0.39044 0.736
## q10 0.662 -0.498603 -0.1499 -0.17551 0.740
## q11 0.804 0.084845 -0.1709 0.22854 0.736
## q12 0.510 0.503542 0.0122 0.01984 0.514
## q13 0.782 -0.257780 0.0179 -0.10070 0.688
## q14 0.686 -0.179319 -0.0432 -0.09755 0.514
## q15 0.489 0.652081 -0.0934 -0.13507 0.691
## q16 0.671 -0.109369 0.0141 0.03294 0.463
## q17 0.752 0.009911 0.2438 0.06695 0.629
## q18 0.768 -0.155571 0.1739 0.36160 0.775
## q19 0.809 -0.127487 0.1202 0.38102 0.831
## q20 0.823 -0.159682 0.0444 0.31078 0.802
## q21 0.848 0.210482 0.0151 0.02504 0.764
## q22 0.792 0.281548 -0.1325 -0.27041 0.797
## q23 0.650 0.215353 0.3148 -0.02431 0.569
## q24 0.816 0.131700 -0.1426 -0.36316 0.835
## q25 0.672 -0.005611 0.3032 -0.06932 0.548
## q26 0.609 -0.044906 0.4383 -0.23672 0.620
## q27 0.603 -0.031561 0.4231 -0.12891 0.560
## q28 0.629 0.035196 0.2500 0.18097 0.493
## q29 0.722 0.085576 0.3475 0.00120 0.649
## q30 0.568 -0.083878 0.2386 -0.29502 0.474
## q31 0.642 -0.020292 0.3382 -0.16712 0.554
## q32 0.541 -0.167119 0.3728 -0.17123 0.489
## q33 0.558 0.021981 0.6407 0.06938 0.727
## q34 0.524 0.034599 0.6315 0.08402 0.682
##
## Rotated SS loadings: 16.381 1.988 2.196 1.773
##
## 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.s19 <- sum.multi4.s19$rotF[,1]^2/sum.multi4.s19$h2
f4.summary <- as.data.frame(cbind(sum.multi4.s19$rotF[,1], sum.multi4.s19$h2,
f4.iecv.s19))
names(f4.summary) <- c("Gen Factor", "Communality", "IECV")
round(f4.summary,2)
## Gen Factor Communality IECV
## q1 0.76 0.70 0.82
## q2 0.58 0.43 0.78
## q3 0.78 0.87 0.70
## q4 0.75 0.81 0.69
## q5 0.36 0.42 0.30
## q6 0.84 0.76 0.92
## q7 0.79 0.72 0.86
## q8 0.74 0.75 0.74
## q9 0.74 0.74 0.74
## q10 0.66 0.74 0.59
## q11 0.80 0.74 0.88
## q12 0.51 0.51 0.51
## q13 0.78 0.69 0.89
## q14 0.69 0.51 0.92
## q15 0.49 0.69 0.35
## q16 0.67 0.46 0.97
## q17 0.75 0.63 0.90
## q18 0.77 0.77 0.76
## q19 0.81 0.83 0.79
## q20 0.82 0.80 0.85
## q21 0.85 0.76 0.94
## q22 0.79 0.80 0.79
## q23 0.65 0.57 0.74
## q24 0.82 0.83 0.80
## q25 0.67 0.55 0.82
## q26 0.61 0.62 0.60
## q27 0.60 0.56 0.65
## q28 0.63 0.49 0.80
## q29 0.72 0.65 0.80
## q30 0.57 0.47 0.68
## q31 0.64 0.55 0.74
## q32 0.54 0.49 0.60
## q33 0.56 0.73 0.43
## q34 0.52 0.68 0.40
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,34,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,34,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,34,1), las = 2, labels = row.names(f4.summary))