Import surveys, combine into single data frame, delete identifying information, assign IDs, and separate out by scale for item examination.
# https://hansjoerg.me/2018/04/23/rasch-in-r-tutorial/
knitr::knit_hooks$set(
error = function(x, options) {
paste('\n\n<div class="alert alert-danger">',
gsub('##', '\n', gsub('^##\ Error', '**Error**', x)),
'</div>', sep = '\n')
},
warning = function(x, options) {
paste('\n\n<div class="alert alert-warning">',
gsub('##', '\n', gsub('^##\ Warning:', '**Warning**', x)),
'</div>', sep = '\n')
},
message = function(x, options) {
paste('\n\n<div class="alert alert-info">',
gsub('##', '\n', x),
'</div>', sep = '\n')
}
)
# load libraries ----------------------------------------------------------
library(stringi)
library(psych)
library(DT)
library(naniar)
library(UpSetR)
library(nFactors)
library(lavaan)
library(corrplot)
library(tidyr)
library(ggplot2)
library(dplyr)
library("eRm")
library("ltm")
library("difR")
library("psych")
library(readr) # For import the data
library(TAM) # For running the Rating Scale Rasch Model
# library(plyr) # For plot the Item characteristic curves
library(WrightMap)# For plot the variable map
# library(eRm) # For another example
# load data ---------------------------------------------------------------
# alt <- read.csv(file="UBelong Post-Survey Pitt OChem Spring 2022 Alternative Scales_April 28, 2022_12.34.csv", header=T)
# alt <- alt[-c(1,2),]
# alt$scale <- "alt"
#
# orig <- read.csv(file="UBelong Post-Survey Pitt OChem Spring 2022 Original Scales_April 28, 2022_12.35.csv", header=T)
# orig <- orig[-c(1,2),]
# orig$scale <- "orig"
#
# df <- rbind.data.frame(alt, orig)
# df <- subset(df, select = -c(1:19))
# names(df)
# myFun <- function(n) {
# a <- do.call(paste0, replicate(5, sample(LETTERS, n, TRUE), FALSE))
# paste0(a, sprintf("%04d", sample(9999, n, TRUE)), sample(LETTERS, n, TRUE))
# }
# df$id <- myFun(nrow(df))
# write.csv(df, file="imported_anonymized.csv", row.names = F)
df <- read.csv(file="imported_anonymized.csv", header=T)
# extract items -----------------------------------------------------------
# new items
EEochem <- subset(df, select=c(scale,grep("EEochem", colnames(df)))) # entry expectations
CCdisc <- subset(df, select=grep("CCdisc", colnames(df))) # classroom climate
IDochem <- cbind.data.frame(subset(df, select=c(scale,grep("IDochem", colnames(df)))), subset(df, select=grep("FASochem", colnames(df)))) # identity
CSochem <- subset(df, select=grep("CSochem", colnames(df))) # career satisfaction
# established scales
MSchem <- subset(df, select=c(scale,grep("MSchem", colnames(df)))) # discipline growth mindset (chemistry)
IPchem <- subset(df, select=grep("IPchem", colnames(df))) # instructor growth mindset (chemistry)
SEchem <- subset(df, select=grep("SEchem", colnames(df))) # disciplinary self-efficacy (chemistry)
MSochem <- subset(df, select=c(scale, grep("MSochem", colnames(df)))) # disciplinary growth mindset (organic chemistry)
IPochem <- subset(df, select=grep("IPochem", colnames(df))) # instructor growth mindset (organic chemistry)
SEochem <- subset(df, select=grep("SEochem", colnames(df))) # disciplinary self-efficacy (organic chemistry)
CNEBochem_class <- cbind.data.frame(subset(subset(df, select=grep("CNEBochem", colnames(df))), select=c(1:3))) # entity norms and beliefs
CNEBochem_self <- cbind.data.frame(subset(subset(df, select=grep("CNEBochem", colnames(df))), select=c(4:6))) # entity norms and beliefs
CNHSochem_others <- cbind.data.frame(subset(subset(df, select=grep("CNHSochem", colnames(df))), select=c(1:3))) # help seeking
CNHSochem_self <- cbind.data.frame(subset(subset(df, select=grep("CNHSochem", colnames(df))), select=c(4:6))) # help seeking
CNSWochem <- subset(df, select=grep("CNSWochem", colnames(df))) # help seeking
FCochem <- subset(df, select=grep("FCochem", colnames(df))) # faculty caring
IDochem$FASochem03_rc[IDochem$FASochem03 == 1] <- 4
IDochem$FASochem03_rc[IDochem$FASochem03 == 2] <- 3
IDochem$FASochem03_rc[IDochem$FASochem03 == 3] <- 2
IDochem$FASochem03_rc[IDochem$FASochem03 == 4] <- 1
IDochem$FASochem03 <- IDochem$FASochem03_rc
IDochem <- subset(IDochem, select=-c(FASochem03_rc))
IDochem07 removed because it has no responses in the lowest category.
summary(rs_model)
##
## Results of RSM estimation:
##
## Call: RSM(X = d)
##
## Conditional log-likelihood: -643.3507
## Number of iterations: 23
## Number of parameters: 12
##
## Item (Category) Difficulty Parameters (eta): with 0.95 CI:
## Estimate Std. Error lower CI upper CI
## IDochem03 0.756 0.175 0.413 1.100
## IDochem04 0.049 0.171 -0.287 0.384
## IDochem05 0.245 0.173 -0.093 0.583
## IDochem06 -0.016 0.171 -0.352 0.320
## IDochem10 -1.113 0.185 -1.476 -0.749
## IDochem08 0.145 0.171 -0.191 0.481
## IDochem09 0.306 0.172 -0.031 0.642
## FASochem02 0.627 0.174 0.287 0.968
## FASochem03 -0.771 0.179 -1.121 -0.421
## FASochem05 -0.439 0.174 -0.780 -0.098
## Cat 2 2.373 0.212 1.957 2.790
## Cat 3 7.188 0.448 6.309 8.066
##
## Item Easiness Parameters (beta) with 0.95 CI:
## Estimate Std. Error lower CI upper CI
## beta IDochem02.c1 -0.210 0.171 -0.545 0.126
## beta IDochem02.c2 -2.793 0.408 -3.592 -1.993
## beta IDochem02.c3 -7.816 0.697 -9.183 -6.449
## beta IDochem03.c1 -0.756 0.175 -1.100 -0.413
## beta IDochem03.c2 -3.886 0.436 -4.740 -3.033
## beta IDochem03.c3 -9.457 0.755 -10.936 -7.978
## beta IDochem04.c1 -0.049 0.171 -0.384 0.287
## beta IDochem04.c2 -2.471 0.402 -3.259 -1.683
## beta IDochem04.c3 -7.334 0.683 -8.673 -5.995
## beta IDochem05.c1 -0.245 0.173 -0.583 0.093
## beta IDochem05.c2 -2.864 0.411 -3.669 -2.059
## beta IDochem05.c3 -7.923 0.703 -9.301 -6.546
## beta IDochem06.c1 0.016 0.171 -0.320 0.352
## beta IDochem06.c2 -2.342 0.400 -3.126 -1.557
## beta IDochem06.c3 -7.140 0.678 -8.469 -5.811
## beta IDochem10.c1 1.113 0.185 0.749 1.476
## beta IDochem10.c2 -0.148 0.401 -0.934 0.638
## beta IDochem10.c3 -3.849 0.627 -5.078 -2.621
## beta IDochem08.c1 -0.145 0.171 -0.481 0.191
## beta IDochem08.c2 -2.664 0.405 -3.458 -1.870
## beta IDochem08.c3 -7.623 0.692 -8.979 -6.268
## beta IDochem09.c1 -0.306 0.172 -0.642 0.031
## beta IDochem09.c2 -2.985 0.412 -3.792 -2.179
## beta IDochem09.c3 -8.106 0.707 -9.490 -6.721
## beta FASochem02.c1 -0.627 0.174 -0.968 -0.287
## beta FASochem02.c2 -3.628 0.428 -4.467 -2.790
## beta FASochem02.c3 -9.070 0.740 -10.521 -7.619
## beta FASochem03.c1 0.771 0.179 0.421 1.121
## beta FASochem03.c2 -0.831 0.394 -1.604 -0.059
## beta FASochem03.c3 -4.875 0.634 -6.118 -3.632
## beta FASochem05.c1 0.439 0.174 0.098 0.780
## beta FASochem05.c2 -1.496 0.393 -2.266 -0.726
## beta FASochem05.c3 -5.871 0.649 -7.143 -4.599
item.estimates <- thresholds(rs_model)
item.estimates
##
## Design Matrix Block 1:
## Location Threshold 1 Threshold 2 Threshold 3
## IDochem02 2.60544 0.20953 2.58302 5.02375
## IDochem03 3.15236 0.75645 3.12994 5.57067
## IDochem04 2.44452 0.04862 2.42211 4.86284
## IDochem05 2.64112 0.24522 2.61871 5.05944
## IDochem06 2.38001 -0.01589 2.35760 4.79833
## IDochem10 1.28316 -1.11274 1.26075 3.70148
## IDochem08 2.54112 0.14521 2.51870 4.95943
## IDochem09 2.70184 0.30594 2.67943 5.12016
## FASochem02 3.02333 0.62743 3.00092 5.44165
## FASochem03 1.62491 -0.77100 1.60249 4.04322
## FASochem05 1.95712 -0.43878 1.93471 4.37544
item.se <- item.estimates$se.thresh
item.se
## thresh beta IDochem02.c1 thresh beta IDochem02.c2 thresh beta IDochem02.c3
## 0.1714081 0.2762281 0.3307774
## thresh beta IDochem03.c1 thresh beta IDochem03.c2 thresh beta IDochem03.c3
## 0.1753790 0.2944201 0.3541249
## thresh beta IDochem04.c1 thresh beta IDochem04.c2 thresh beta IDochem04.c3
## 0.1713306 0.2721112 0.3242546
## thresh beta IDochem05.c1 thresh beta IDochem05.c2 thresh beta IDochem05.c3
## 0.1725679 0.2777410 0.3327575
## thresh beta IDochem06.c1 thresh beta IDochem06.c2 thresh beta IDochem06.c3
## 0.1714377 0.2706390 0.3216949
## thresh beta IDochem10.c1 thresh beta IDochem10.c2 thresh beta IDochem10.c3
## 0.1853578 0.2620538 0.2845023
## thresh beta IDochem08.c1 thresh beta IDochem08.c2 thresh beta IDochem08.c3
## 0.1713178 0.2745059 0.3281449
## thresh beta IDochem09.c1 thresh beta IDochem09.c2 thresh beta IDochem09.c3
## 0.1716909 0.2789812 0.3347644
## thresh beta FASochem02.c1 thresh beta FASochem02.c2 thresh beta FASochem02.c3
## 0.1739234 0.2896058 0.3484763
## thresh beta FASochem03.c1 thresh beta FASochem03.c2 thresh beta FASochem03.c3
## 0.1785877 0.2614252 0.2945649
## thresh beta FASochem05.c1 thresh beta FASochem05.c2 thresh beta FASochem05.c3
## 0.1741034 0.2636376 0.3057908
person.locations.estimate <- person.parameter(rs_model)
summary(person.locations.estimate)
##
## Estimation of Ability Parameters
##
## Subject NA Group: 1
## NA pattern: x x x x x x x x x x x
## Collapsed log-likelihood: -224.0719
## Number of iterations: 14
## Number of parameters: 26
##
## ML estimated ability parameters (without spline interpolated values):
## Estimate Std. Err. 2.5 % 97.5 %
## theta 1 3.3989214 0.4808791 2.45641559 4.3414272
## theta 2 3.1695676 0.4770909 2.23448655 4.1046486
## theta 3 2.2757308 0.4706630 1.35324817 3.1982133
## theta 4 2.2757308 0.4706630 1.35324817 3.1982133
## theta 5 4.3686070 0.5078114 3.37331493 5.3638991
## theta 6 1.1514268 0.4810861 0.20851527 2.0943383
## theta 7 4.6325074 0.5202827 3.61277193 5.6522428
## theta 8 0.9176413 0.4861897 -0.03527296 1.8705556
## theta 9 2.4973298 0.4709653 1.57425479 3.4204048
## theta 10 3.8708358 0.4913394 2.90782833 4.8338433
## theta 11 1.8314743 0.4724544 0.90548067 2.7574679
## theta 12 2.4973298 0.4709653 1.57425479 3.4204048
## theta 13 2.0540267 0.4711767 1.13053740 2.9775160
## theta 14 2.4973298 0.4709653 1.57425479 3.4204048
## theta 15 0.4303490 0.5027306 -0.55498491 1.4156828
## theta 16 -1.6545200 0.7793789 -3.18207453 -0.1269655
## theta 17 2.4973298 0.4709653 1.57425479 3.4204048
## theta 18 1.1514268 0.4810861 0.20851527 2.0943383
## theta 19 3.1695676 0.4770909 2.23448655 4.1046486
## theta 20 3.6323488 0.4855763 2.68063669 4.5840609
## theta 21 2.9434139 0.4741719 2.01405397 3.8727738
## theta 22 3.6323488 0.4855763 2.68063669 4.5840609
## theta 23 2.2757308 0.4706630 1.35324817 3.1982133
## theta 24 3.6323488 0.4855763 2.68063669 4.5840609
## theta 25 5.9470382 0.6627253 4.64812038 7.2459560
## theta 26 3.1695676 0.4770909 2.23448655 4.1046486
## theta 27 2.2757308 0.4706630 1.35324817 3.1982133
## theta 28 3.6323488 0.4855763 2.68063669 4.5840609
## theta 29 1.3809637 0.4772942 0.44548415 2.3164432
## theta 30 2.7196151 0.4721279 1.79426136 3.6449689
## theta 31 2.0540267 0.4711767 1.13053740 2.9775160
## theta 32 2.0540267 0.4711767 1.13053740 2.9775160
## theta 33 1.8314743 0.4724544 0.90548067 2.7574679
## theta 34 4.1156485 0.4985297 3.13854824 5.0927489
## theta 35 2.4973298 0.4709653 1.57425479 3.4204048
## theta 36 2.2757308 0.4706630 1.35324817 3.1982133
## theta 37 -0.4043471 0.5619645 -1.50577735 0.6970832
## theta 38 3.6323488 0.4855763 2.68063669 4.5840609
## theta 39 2.4973298 0.4709653 1.57425479 3.4204048
## theta 40 2.4973298 0.4709653 1.57425479 3.4204048
## theta 41 5.5508975 0.6010854 4.37279170 6.7290033
## theta 42 2.7196151 0.4721279 1.79426136 3.6449689
## theta 43 4.6325074 0.5202827 3.61277193 5.6522428
## theta 45 2.7196151 0.4721279 1.79426136 3.6449689
## theta 46 3.3989214 0.4808791 2.45641559 4.3414272
## theta 47 2.7196151 0.4721279 1.79426136 3.6449689
## theta 48 3.3989214 0.4808791 2.45641559 4.3414272
## theta 49 2.0540267 0.4711767 1.13053740 2.9775160
## theta 50 4.3686070 0.5078114 3.37331493 5.3638991
## theta 51 3.6323488 0.4855763 2.68063669 4.5840609
## theta 52 2.0540267 0.4711767 1.13053740 2.9775160
## theta 53 5.2137431 0.5629228 4.11043466 6.3170516
## theta 54 1.3809637 0.4772942 0.44548415 2.3164432
## theta 55 2.9434139 0.4741719 2.01405397 3.8727738
## theta 56 4.3686070 0.5078114 3.37331493 5.3638991
## theta 57 1.6073633 0.4744757 0.67740805 2.5373186
## theta 58 3.6323488 0.4855763 2.68063669 4.5840609
## theta 59 3.3989214 0.4808791 2.45641559 4.3414272
## theta 60 0.9176413 0.4861897 -0.03527296 1.8705556
## theta 61 2.0540267 0.4711767 1.13053740 2.9775160
## theta 62 3.3989214 0.4808791 2.45641559 4.3414272
## theta 63 1.8314743 0.4724544 0.90548067 2.7574679
## theta 64 2.7196151 0.4721279 1.79426136 3.6449689
## theta 65 5.5508975 0.6010854 4.37279170 6.7290033
## theta 66 3.3989214 0.4808791 2.45641559 4.3414272
## theta 68 2.2757308 0.4706630 1.35324817 3.1982133
## theta 69 4.1156485 0.4985297 3.13854824 5.0927489
## theta 70 0.6780409 0.4931418 -0.28849937 1.6445811
## theta 71 1.8314743 0.4724544 0.90548067 2.7574679
## theta 72 -0.1044083 0.5349216 -1.15283536 0.9440189
## theta 73 2.9434139 0.4741719 2.01405397 3.8727738
## theta 74 2.0540267 0.4711767 1.13053740 2.9775160
## theta 75 1.3809637 0.4772942 0.44548415 2.3164432
## theta 76 2.2757308 0.4706630 1.35324817 3.1982133
## theta 77 7.2466833 1.0469745 5.19465103 9.2987156
## theta 78 1.8314743 0.4724544 0.90548067 2.7574679
## theta 79 2.0540267 0.4711767 1.13053740 2.9775160
## theta 80 2.2757308 0.4706630 1.35324817 3.1982133
## theta 81 0.9176413 0.4861897 -0.03527296 1.8705556
##
##
## Subject NA Group: 2
## NA pattern: x x x NA x x x x x x x
## Collapsed log-likelihood: -17.67919
## Number of iterations: 4
## Number of parameters: 1
##
## ML estimated ability parameters (without spline interpolated values):
## Estimate Std. Err. 2.5 % 97.5 %
## theta 44 1.125922 0.5047919 0.1365476 2.115295
item.fit <- itemfit(person.locations.estimate)
item.fit
##
## Itemfit Statistics:
## Chisq df p-value Outfit MSQ Infit MSQ Outfit t Infit t Discrim
## IDochem02 72.992 79 0.669 0.912 0.936 -0.531 -0.375 0.646
## IDochem03 60.920 79 0.935 0.762 0.774 -1.627 -1.562 0.650
## IDochem04 53.978 79 0.986 0.675 0.686 -2.321 -2.269 0.751
## IDochem05 48.213 78 0.997 0.610 0.615 -2.869 -2.872 0.797
## IDochem06 86.559 79 0.262 1.082 1.099 0.565 0.683 0.585
## IDochem10 83.503 79 0.343 1.044 1.089 0.309 0.611 0.476
## IDochem08 119.849 79 0.002 1.498 1.368 2.842 2.217 0.313
## IDochem09 82.381 79 0.375 1.030 0.906 0.242 -0.589 0.477
## FASochem02 70.187 79 0.750 0.877 0.893 -0.775 -0.680 0.734
## FASochem03 83.528 79 0.342 1.044 1.107 0.320 0.727 0.663
## FASochem05 49.768 79 0.996 0.622 0.644 -2.710 -2.626 0.789
pfit <- personfit(person.locations.estimate)
pfit
##
## Personfit Statistics:
## Chisq df p-value Outfit MSQ Infit MSQ Outfit t Infit t
## 1 6.660 10 0.757 0.605 0.615 -0.99 -0.95
## 2 2.506 10 0.991 0.228 0.233 -2.71 -2.68
## 3 6.445 10 0.777 0.586 0.582 -1.06 -1.08
## 4 8.797 10 0.551 0.800 0.798 -0.39 -0.40
## 5 6.424 10 0.778 0.584 0.556 -1.15 -1.23
## 6 1.285 10 0.999 0.117 0.118 -3.68 -3.65
## 7 11.519 10 0.319 1.047 1.067 0.25 0.30
## 8 6.077 10 0.809 0.552 0.560 -1.24 -1.20
## 9 5.185 10 0.878 0.471 0.475 -1.50 -1.48
## 10 8.267 10 0.603 0.752 0.762 -0.54 -0.50
## 11 4.180 10 0.939 0.380 0.383 -1.88 -1.86
## 12 12.225 10 0.270 1.111 1.109 0.40 0.39
## 13 6.577 10 0.765 0.598 0.597 -1.02 -1.02
## 14 8.062 10 0.623 0.733 0.729 -0.59 -0.60
## 15 20.539 10 0.025 1.867 1.914 1.98 2.04
## 16 14.512 10 0.151 1.319 1.162 0.65 0.46
## 17 4.992 10 0.892 0.454 0.458 -1.57 -1.55
## 18 32.253 10 0.000 2.932 2.924 3.35 3.34
## 19 10.789 10 0.374 0.981 0.978 0.09 0.08
## 20 8.288 10 0.601 0.753 0.756 -0.53 -0.51
## 21 16.404 10 0.089 1.491 1.501 1.18 1.20
## 22 1.268 10 0.999 0.115 0.110 -3.64 -3.67
## 23 4.971 10 0.893 0.452 0.454 -1.57 -1.57
## 24 1.268 10 0.999 0.115 0.110 -3.64 -3.67
## 25 17.206 10 0.070 1.564 1.710 1.10 1.44
## 26 3.158 10 0.977 0.287 0.293 -2.36 -2.32
## 27 3.861 10 0.953 0.351 0.354 -2.03 -2.02
## 28 5.727 10 0.838 0.521 0.522 -1.30 -1.29
## 29 2.639 10 0.989 0.240 0.247 -2.65 -2.61
## 30 4.002 10 0.947 0.364 0.369 -1.97 -1.95
## 31 7.071 10 0.719 0.643 0.639 -0.87 -0.88
## 32 12.442 10 0.257 1.131 1.136 0.44 0.46
## 33 24.327 10 0.007 2.212 2.216 2.35 2.36
## 34 3.540 10 0.966 0.322 0.289 -2.26 -2.41
## 35 3.829 10 0.955 0.348 0.352 -2.05 -2.03
## 36 7.804 10 0.648 0.709 0.711 -0.66 -0.66
## 37 10.786 10 0.374 0.981 1.071 0.08 0.31
## 38 1.268 10 0.999 0.115 0.110 -3.64 -3.67
## 39 8.250 10 0.604 0.750 0.749 -0.54 -0.54
## 40 4.144 10 0.941 0.377 0.381 -1.91 -1.89
## 41 15.262 10 0.123 1.387 1.509 0.94 1.24
## 42 7.696 10 0.658 0.700 0.688 -0.69 -0.73
## 43 4.824 10 0.903 0.439 0.431 -1.78 -1.80
## 44 27.524 9 0.001 2.752 2.745 3.00 2.99
## 45 9.247 10 0.509 0.841 0.826 -0.28 -0.32
## 46 15.282 10 0.122 1.389 1.397 0.98 1.00
## 47 5.091 10 0.885 0.463 0.469 -1.53 -1.51
## 48 5.295 10 0.871 0.481 0.461 -1.45 -1.52
## 49 3.468 10 0.968 0.315 0.317 -2.20 -2.20
## 50 11.769 10 0.301 1.070 1.055 0.31 0.27
## 51 13.894 10 0.178 1.263 1.275 0.73 0.75
## 52 5.367 10 0.865 0.488 0.488 -1.42 -1.42
## 53 11.556 10 0.316 1.051 0.936 0.26 -0.05
## 54 20.568 10 0.024 1.870 1.905 1.84 1.90
## 55 14.025 10 0.172 1.275 1.285 0.76 0.78
## 56 13.236 10 0.211 1.203 1.196 0.62 0.60
## 57 32.393 10 0.000 2.945 2.968 3.31 3.33
## 58 16.539 10 0.085 1.504 1.515 1.21 1.22
## 59 22.500 10 0.013 2.045 2.075 2.11 2.15
## 60 14.325 10 0.159 1.302 1.360 0.83 0.95
## 61 9.988 10 0.442 0.908 0.904 -0.10 -0.11
## 62 7.636 10 0.664 0.694 0.701 -0.70 -0.68
## 63 15.818 10 0.105 1.438 1.431 1.08 1.06
## 64 17.360 10 0.067 1.578 1.588 1.35 1.36
## 65 7.398 10 0.687 0.673 0.736 -0.70 -0.60
## 66 19.190 10 0.038 1.745 1.753 1.63 1.64
## 68 8.034 10 0.625 0.730 0.732 -0.60 -0.59
## 69 29.354 10 0.001 2.669 2.768 3.07 3.16
## 70 7.834 10 0.645 0.712 0.737 -0.71 -0.62
## 71 4.312 10 0.932 0.392 0.395 -1.82 -1.81
## 72 7.482 10 0.679 0.680 0.637 -0.85 -0.99
## 73 4.976 10 0.893 0.452 0.459 -1.57 -1.54
## 74 5.915 10 0.822 0.538 0.535 -1.23 -1.24
## 75 1.283 10 0.999 0.117 0.120 -3.63 -3.60
## 76 7.933 10 0.635 0.721 0.718 -0.62 -0.63
## 77 8.998 10 0.532 0.818 0.975 0.17 0.27
## 78 4.835 10 0.902 0.440 0.437 -1.62 -1.63
## 79 30.070 10 0.001 2.734 2.737 3.06 3.06
## 80 4.648 10 0.913 0.423 0.424 -1.70 -1.69
## 81 9.411 10 0.494 0.856 0.848 -0.25 -0.27
plotPImap(rs_model, sorted = TRUE)
stresid <- item.fit$st.res
stresid2 <- na.omit(unlist(as.list(item.fit$st.res)))
# before constructing the plots, find the max & min residuals:
max.resid <- ceiling(max(stresid2))
min.resid <- ceiling(min(stresid2))
for(item.number in 1:ncol(stresid)){
plot(stresid[, item.number], ylim = c(min.resid, max.resid),
main = paste("Standardized Residuals for Item ", item.number, sep = ""),
ylab = "Standardized Residual", xlab = "Person Index")
abline(h = 0, col = "blue")
abline(h=2, lty = 2, col = "red")
abline(h=-2, lty = 2, col = "red")
legend("topright", c("Std. Residual", "Observed = Expected", "+/- 2 SD"), pch = c(1, NA, NA),
lty = c(NA, 1, 2),
col = c("black", "blue", "red"), cex = .8)
}
for(item.number in 1:ncol(stresid)){
plotICC(rs_model, item.subset = item.number, empICC = list("raw"), empCI = list())
}
Warning in plotICC.Rm(rs_model, item.subset = item.number, empICC = list(“raw”), : Empirical ICCs can only be plotted for a dichotomous Rasch model!
Warning in plotICC.Rm(rs_model, item.subset = item.number, empICC = list(“raw”), : Empirical ICCs can only be plotted for a dichotomous Rasch model!
Warning in plotICC.Rm(rs_model, item.subset = item.number, empICC = list(“raw”), : Empirical ICCs can only be plotted for a dichotomous Rasch model!
Warning in plotICC.Rm(rs_model, item.subset = item.number, empICC = list(“raw”), : Empirical ICCs can only be plotted for a dichotomous Rasch model!
Warning in plotICC.Rm(rs_model, item.subset = item.number, empICC = list(“raw”), : Empirical ICCs can only be plotted for a dichotomous Rasch model!
Warning in plotICC.Rm(rs_model, item.subset = item.number, empICC = list(“raw”), : Empirical ICCs can only be plotted for a dichotomous Rasch model!
Warning in plotICC.Rm(rs_model, item.subset = item.number, empICC = list(“raw”), : Empirical ICCs can only be plotted for a dichotomous Rasch model!
Warning in plotICC.Rm(rs_model, item.subset = item.number, empICC = list(“raw”), : Empirical ICCs can only be plotted for a dichotomous Rasch model!
Warning in plotICC.Rm(rs_model, item.subset = item.number, empICC = list(“raw”), : Empirical ICCs can only be plotted for a dichotomous Rasch model!
Warning in plotICC.Rm(rs_model, item.subset = item.number, empICC = list(“raw”), : Empirical ICCs can only be plotted for a dichotomous Rasch model!
Warning in plotICC.Rm(rs_model, item.subset = item.number, empICC = list(“raw”), : Empirical ICCs can only be plotted for a dichotomous Rasch model!
plotINFO(rs_model, type="test")
summary(rs_model)
##
## Results of RSM estimation:
##
## Call: RSM(X = d1)
##
## Conditional log-likelihood: -112.9418
## Number of iterations: 20
## Number of parameters: 5
##
## Item (Category) Difficulty Parameters (eta): with 0.95 CI:
## Estimate Std. Error lower CI upper CI
## IDochem04 -0.116 0.200 -0.507 0.275
## IDochem05 0.188 0.202 -0.207 0.583
## IDochem06 -0.221 0.200 -0.614 0.172
## Cat 2 3.408 0.463 2.502 4.315
## Cat 3 10.609 1.071 8.510 12.709
##
## Item Easiness Parameters (beta) with 0.95 CI:
## Estimate Std. Error lower CI upper CI
## beta IDochem02.c1 -0.148 0.200 -0.540 0.243
## beta IDochem02.c2 -3.705 0.628 -4.936 -2.474
## beta IDochem02.c3 -11.055 1.265 -13.534 -8.576
## beta IDochem04.c1 0.116 0.200 -0.275 0.507
## beta IDochem04.c2 -3.177 0.597 -4.348 -2.007
## beta IDochem04.c3 -10.263 1.196 -12.607 -7.919
## beta IDochem05.c1 -0.188 0.202 -0.583 0.207
## beta IDochem05.c2 -3.785 0.635 -5.030 -2.540
## beta IDochem05.c3 -11.174 1.278 -13.679 -8.669
## beta IDochem06.c1 0.221 0.200 -0.172 0.614
## beta IDochem06.c2 -2.966 0.586 -4.116 -1.817
## beta IDochem06.c3 -9.946 1.170 -12.239 -7.653
item.estimates <- thresholds(rs_model)
item.estimates
##
## Design Matrix Block 1:
## Location Threshold 1 Threshold 2 Threshold 3
## IDochem02 3.68491 0.14841 3.55687 7.34944
## IDochem04 3.42094 -0.11556 3.29291 7.08548
## IDochem05 3.72469 0.18819 3.59666 7.38923
## IDochem06 3.31546 -0.22104 3.18742 6.97999
item.se <- item.estimates$se.thresh
item.se
## thresh beta IDochem02.c1 thresh beta IDochem02.c2 thresh beta IDochem02.c3
## 0.1996550 0.5141671 0.7553254
## thresh beta IDochem04.c1 thresh beta IDochem04.c2 thresh beta IDochem04.c3
## 0.1995009 0.4954498 0.7301263
## thresh beta IDochem05.c1 thresh beta IDochem05.c2 thresh beta IDochem05.c3
## 0.2015686 0.5178788 0.7598342
## thresh beta IDochem06.c1 thresh beta IDochem06.c2 thresh beta IDochem06.c3
## 0.2003780 0.4886816 0.7202286
person.locations.estimate <- person.parameter(rs_model)
summary(person.locations.estimate)
##
## Estimation of Ability Parameters
##
## Subject NA Group: 1
## NA pattern: x x x x
## Collapsed log-likelihood: -23.08594
## Number of iterations: 7
## Number of parameters: 9
##
## ML estimated ability parameters (without spline interpolated values):
## Estimate Std. Err. 2.5 % 97.5 %
## theta 1 5.3098532 1.0331872 3.2848434 7.334863
## theta 2 5.3098532 1.0331872 3.2848434 7.334863
## theta 3 4.2993667 0.9634045 2.4111285 6.187605
## theta 4 2.6001993 0.9278847 0.7815788 4.418820
## theta 5 5.3098532 1.0331872 3.2848434 7.334863
## theta 6 1.6999612 0.9628576 -0.1872051 3.587127
## theta 7 4.2993667 0.9634045 2.4111285 6.187605
## theta 8 1.6999612 0.9628576 -0.1872051 3.587127
## theta 9 3.4344373 0.9089658 1.6528971 5.215977
## theta 10 4.2993667 0.9634045 2.4111285 6.187605
## theta 11 2.6001993 0.9278847 0.7815788 4.418820
## theta 12 3.4344373 0.9089658 1.6528971 5.215977
## theta 13 3.4344373 0.9089658 1.6528971 5.215977
## theta 14 2.6001993 0.9278847 0.7815788 4.418820
## theta 15 0.7887428 0.9402190 -1.0540525 2.631538
## theta 17 3.4344373 0.9089658 1.6528971 5.215977
## theta 19 6.3373058 0.9809735 4.4146330 8.259979
## theta 20 4.2993667 0.9634045 2.4111285 6.187605
## theta 21 1.6999612 0.9628576 -0.1872051 3.587127
## theta 22 5.3098532 1.0331872 3.2848434 7.334863
## theta 23 2.6001993 0.9278847 0.7815788 4.418820
## theta 24 5.3098532 1.0331872 3.2848434 7.334863
## theta 26 5.3098532 1.0331872 3.2848434 7.334863
## theta 27 2.6001993 0.9278847 0.7815788 4.418820
## theta 28 6.3373058 0.9809735 4.4146330 8.259979
## theta 29 1.6999612 0.9628576 -0.1872051 3.587127
## theta 30 4.2993667 0.9634045 2.4111285 6.187605
## theta 31 1.6999612 0.9628576 -0.1872051 3.587127
## theta 32 3.4344373 0.9089658 1.6528971 5.215977
## theta 33 5.3098532 1.0331872 3.2848434 7.334863
## theta 34 5.3098532 1.0331872 3.2848434 7.334863
## theta 35 4.2993667 0.9634045 2.4111285 6.187605
## theta 36 3.4344373 0.9089658 1.6528971 5.215977
## theta 38 5.3098532 1.0331872 3.2848434 7.334863
## theta 39 5.3098532 1.0331872 3.2848434 7.334863
## theta 40 2.6001993 0.9278847 0.7815788 4.418820
## theta 42 5.3098532 1.0331872 3.2848434 7.334863
## theta 43 5.3098532 1.0331872 3.2848434 7.334863
## theta 45 3.4344373 0.9089658 1.6528971 5.215977
## theta 46 2.6001993 0.9278847 0.7815788 4.418820
## theta 47 3.4344373 0.9089658 1.6528971 5.215977
## theta 48 5.3098532 1.0331872 3.2848434 7.334863
## theta 49 1.6999612 0.9628576 -0.1872051 3.587127
## theta 50 8.3247191 1.1468070 6.0770186 10.572419
## theta 51 3.4344373 0.9089658 1.6528971 5.215977
## theta 52 2.6001993 0.9278847 0.7815788 4.418820
## theta 53 8.3247191 1.1468070 6.0770186 10.572419
## theta 54 4.2993667 0.9634045 2.4111285 6.187605
## theta 55 7.2644731 0.9645306 5.3740278 9.154918
## theta 57 0.7887428 0.9402190 -1.0540525 2.631538
## theta 58 2.6001993 0.9278847 0.7815788 4.418820
## theta 59 7.2644731 0.9645306 5.3740278 9.154918
## theta 60 0.7887428 0.9402190 -1.0540525 2.631538
## theta 61 3.4344373 0.9089658 1.6528971 5.215977
## theta 62 6.3373058 0.9809735 4.4146330 8.259979
## theta 63 1.6999612 0.9628576 -0.1872051 3.587127
## theta 64 1.6999612 0.9628576 -0.1872051 3.587127
## theta 65 8.3247191 1.1468070 6.0770186 10.572419
## theta 66 1.6999612 0.9628576 -0.1872051 3.587127
## theta 68 3.4344373 0.9089658 1.6528971 5.215977
## theta 69 6.3373058 0.9809735 4.4146330 8.259979
## theta 70 1.6999612 0.9628576 -0.1872051 3.587127
## theta 71 2.6001993 0.9278847 0.7815788 4.418820
## theta 73 3.4344373 0.9089658 1.6528971 5.215977
## theta 74 1.6999612 0.9628576 -0.1872051 3.587127
## theta 75 1.6999612 0.9628576 -0.1872051 3.587127
## theta 76 1.6999612 0.9628576 -0.1872051 3.587127
## theta 78 1.6999612 0.9628576 -0.1872051 3.587127
## theta 79 6.3373058 0.9809735 4.4146330 8.259979
## theta 80 2.6001993 0.9278847 0.7815788 4.418820
## theta 81 0.7887428 0.9402190 -1.0540525 2.631538
##
##
## Subject NA Group: 2
## NA pattern: x x NA x
## Collapsed log-likelihood: -5.034096
## Number of iterations: 4
## Number of parameters: 1
##
## ML estimated ability parameters (without spline interpolated values):
## Estimate Std. Err. 2.5 % 97.5 %
## theta 44 2.820481 1.056338 0.7500967 4.890865
item.fit <- itemfit(person.locations.estimate)
item.fit
##
## Itemfit Statistics:
## Chisq df p-value Outfit MSQ Infit MSQ Outfit t Infit t Discrim
## IDochem02 66.303 71 0.636 0.921 0.927 -0.413 -0.386 0.524
## IDochem04 34.618 71 1.000 0.481 0.507 -3.707 -3.537 0.801
## IDochem05 29.411 70 1.000 0.414 0.427 -4.330 -4.274 0.858
## IDochem06 74.937 71 0.352 1.041 1.066 0.291 0.438 0.471
pfit <- personfit(person.locations.estimate)
pfit
##
## Personfit Statistics:
## Chisq df p-value Outfit MSQ Infit MSQ Outfit t Infit t
## 1 0.028 3 0.999 0.007 0.007 -2.35 -2.35
## 2 0.028 3 0.999 0.007 0.007 -2.35 -2.35
## 3 3.090 3 0.378 0.773 0.763 -0.11 -0.13
## 4 2.136 3 0.545 0.534 0.543 -0.60 -0.58
## 5 0.028 3 0.999 0.007 0.007 -2.35 -2.35
## 6 0.032 3 0.998 0.008 0.008 -2.61 -2.61
## 7 3.350 3 0.341 0.838 0.814 -0.01 -0.05
## 8 0.032 3 0.998 0.008 0.008 -2.61 -2.61
## 9 3.195 3 0.363 0.799 0.799 -0.22 -0.22
## 10 3.350 3 0.341 0.838 0.814 -0.01 -0.05
## 11 2.136 3 0.545 0.534 0.543 -0.60 -0.58
## 12 4.017 3 0.260 1.004 1.004 0.19 0.19
## 13 2.666 3 0.446 0.667 0.667 -0.52 -0.52
## 14 2.362 3 0.501 0.590 0.597 -0.48 -0.47
## 15 9.249 3 0.026 2.312 2.293 1.70 1.69
## 17 3.274 3 0.351 0.819 0.819 -0.18 -0.18
## 19 3.257 3 0.354 0.814 0.804 -0.08 -0.10
## 20 2.374 3 0.498 0.594 0.610 -0.44 -0.41
## 21 0.032 3 0.998 0.008 0.008 -2.61 -2.61
## 22 0.028 3 0.999 0.007 0.007 -2.35 -2.35
## 23 2.944 3 0.400 0.736 0.729 -0.20 -0.21
## 24 0.028 3 0.999 0.007 0.007 -2.35 -2.35
## 26 0.028 3 0.999 0.007 0.007 -2.35 -2.35
## 27 2.136 3 0.545 0.534 0.543 -0.60 -0.58
## 28 2.420 3 0.490 0.605 0.618 -0.49 -0.46
## 29 0.032 3 0.998 0.008 0.008 -2.61 -2.61
## 30 2.465 3 0.482 0.616 0.630 -0.39 -0.37
## 31 0.032 3 0.998 0.008 0.008 -2.61 -2.61
## 32 9.138 3 0.028 2.285 2.267 1.94 1.92
## 33 0.028 3 0.999 0.007 0.007 -2.35 -2.35
## 34 0.028 3 0.999 0.007 0.007 -2.35 -2.35
## 35 2.465 3 0.482 0.616 0.630 -0.39 -0.37
## 36 3.409 3 0.333 0.852 0.851 -0.11 -0.11
## 38 0.028 3 0.999 0.007 0.007 -2.35 -2.35
## 39 0.028 3 0.999 0.007 0.007 -2.35 -2.35
## 40 2.136 3 0.545 0.534 0.543 -0.60 -0.58
## 42 0.028 3 0.999 0.007 0.007 -2.35 -2.35
## 43 0.028 3 0.999 0.007 0.007 -2.35 -2.35
## 44 8.188 2 0.017 2.729 2.702 1.92 1.91
## 45 3.195 3 0.363 0.799 0.799 -0.22 -0.22
## 46 3.034 3 0.386 0.758 0.748 -0.16 -0.18
## 47 3.195 3 0.363 0.799 0.799 -0.22 -0.22
## 48 0.028 3 0.999 0.007 0.007 -2.35 -2.35
## 49 0.032 3 0.998 0.008 0.008 -2.61 -2.61
## 50 3.481 3 0.323 0.870 0.918 0.02 0.09
## 51 4.017 3 0.260 1.004 1.004 0.19 0.19
## 52 2.136 3 0.545 0.534 0.543 -0.60 -0.58
## 53 4.788 3 0.188 1.197 1.100 0.50 0.37
## 54 2.465 3 0.482 0.616 0.630 -0.39 -0.37
## 55 3.607 3 0.307 0.902 0.902 -0.14 -0.14
## 57 10.071 3 0.018 2.518 2.530 1.88 1.89
## 58 2.136 3 0.545 0.534 0.543 -0.60 -0.58
## 59 12.313 3 0.006 3.078 3.019 3.69 3.61
## 60 3.160 3 0.368 0.790 0.782 -0.13 -0.15
## 61 3.488 3 0.322 0.872 0.872 -0.07 -0.07
## 62 2.420 3 0.490 0.605 0.618 -0.49 -0.46
## 63 7.642 3 0.054 1.911 1.915 1.15 1.15
## 64 6.705 3 0.082 1.676 1.678 0.96 0.96
## 65 3.361 3 0.339 0.840 0.897 -0.03 0.05
## 66 0.032 3 0.998 0.008 0.008 -2.61 -2.61
## 68 3.409 3 0.333 0.852 0.851 -0.11 -0.11
## 69 25.515 3 0.000 6.379 6.280 4.12 4.10
## 70 0.032 3 0.998 0.008 0.008 -2.61 -2.61
## 71 2.362 3 0.501 0.590 0.597 -0.48 -0.47
## 73 3.488 3 0.322 0.872 0.872 -0.07 -0.07
## 74 0.032 3 0.998 0.008 0.008 -2.61 -2.61
## 75 0.032 3 0.998 0.008 0.008 -2.61 -2.61
## 76 0.032 3 0.998 0.008 0.008 -2.61 -2.61
## 78 0.032 3 0.998 0.008 0.008 -2.61 -2.61
## 79 3.257 3 0.354 0.814 0.804 -0.08 -0.10
## 80 2.362 3 0.501 0.590 0.597 -0.48 -0.47
## 81 3.160 3 0.368 0.790 0.782 -0.13 -0.15
plotPImap(rs_model, sorted = TRUE)
stresid <- item.fit$st.res
stresid2 <- na.omit(unlist(as.list(item.fit$st.res)))
# before constructing the plots, find the max & min residuals:
max.resid <- ceiling(max(stresid2))
min.resid <- ceiling(min(stresid2))
for(item.number in 1:ncol(stresid)){
plot(stresid[, item.number], ylim = c(min.resid, max.resid),
main = paste("Standardized Residuals for Item ", item.number, sep = ""),
ylab = "Standardized Residual", xlab = "Person Index")
abline(h = 0, col = "blue")
abline(h=2, lty = 2, col = "red")
abline(h=-2, lty = 2, col = "red")
legend("topright", c("Std. Residual", "Observed = Expected", "+/- 2 SD"), pch = c(1, NA, NA),
lty = c(NA, 1, 2),
col = c("black", "blue", "red"), cex = .8)
}
for(item.number in 1:ncol(stresid)){
plotICC(rs_model, item.subset = item.number, empICC = list("raw"), empCI = list())
}
Warning in plotICC.Rm(rs_model, item.subset = item.number, empICC = list(“raw”), : Empirical ICCs can only be plotted for a dichotomous Rasch model!
Warning in plotICC.Rm(rs_model, item.subset = item.number, empICC = list(“raw”), : Empirical ICCs can only be plotted for a dichotomous Rasch model!
Warning in plotICC.Rm(rs_model, item.subset = item.number, empICC = list(“raw”), : Empirical ICCs can only be plotted for a dichotomous Rasch model!
Warning in plotICC.Rm(rs_model, item.subset = item.number, empICC = list(“raw”), : Empirical ICCs can only be plotted for a dichotomous Rasch model!
plotINFO(rs_model, type="test")
summary(rs_model)
##
## Results of RSM estimation:
##
## Call: RSM(X = d2)
##
## Conditional log-likelihood: -223.1433
## Number of iterations: 17
## Number of parameters: 6
##
## Item (Category) Difficulty Parameters (eta): with 0.95 CI:
## Estimate Std. Error lower CI upper CI
## IDochem09 0.353 0.167 0.026 0.679
## FASochem02 0.689 0.172 0.351 1.026
## FASochem03 -0.793 0.180 -1.146 -0.439
## FASochem05 -0.433 0.170 -0.768 -0.099
## Cat 2 2.446 0.344 1.771 3.121
## Cat 3 7.609 0.747 6.144 9.073
##
## Item Easiness Parameters (beta) with 0.95 CI:
## Estimate Std. Error lower CI upper CI
## beta IDochem08.c1 -0.185 0.165 -0.509 0.139
## beta IDochem08.c2 -2.815 0.487 -3.769 -1.862
## beta IDochem08.c3 -8.163 0.925 -9.977 -6.349
## beta IDochem09.c1 -0.353 0.167 -0.679 -0.026
## beta IDochem09.c2 -3.152 0.501 -4.133 -2.170
## beta IDochem09.c3 -8.667 0.955 -10.539 -6.796
## beta FASochem02.c1 -0.689 0.172 -1.026 -0.351
## beta FASochem02.c2 -3.823 0.535 -4.872 -2.774
## beta FASochem02.c3 -9.674 1.019 -11.673 -7.676
## beta FASochem03.c1 0.793 0.180 0.439 1.146
## beta FASochem03.c2 -0.860 0.447 -1.736 0.016
## beta FASochem03.c3 -5.230 0.783 -6.766 -3.695
## beta FASochem05.c1 0.433 0.170 0.099 0.768
## beta FASochem05.c2 -1.579 0.453 -2.466 -0.692
## beta FASochem05.c3 -6.308 0.830 -7.934 -4.682
item.estimates <- thresholds(rs_model)
item.estimates
##
## Design Matrix Block 1:
## Location Threshold 1 Threshold 2 Threshold 3
## IDochem08 2.72103 0.18481 2.63067 5.34761
## IDochem09 2.88912 0.35290 2.79876 5.51571
## FASochem02 3.22483 0.68861 3.13447 5.85141
## FASochem03 1.74335 -0.79287 1.65299 4.36993
## FASochem05 2.10277 -0.43345 2.01241 4.72936
item.se <- item.estimates$se.thresh
item.se
## thresh beta IDochem08.c1 thresh beta IDochem08.c2 thresh beta IDochem08.c3
## 0.1653956 0.3877015 0.5045545
## thresh beta IDochem09.c1 thresh beta IDochem09.c2 thresh beta IDochem09.c3
## 0.1665957 0.3961023 0.5158799
## thresh beta FASochem02.c1 thresh beta FASochem02.c2 thresh beta FASochem02.c3
## 0.1723706 0.4155173 0.5392815
## thresh beta FASochem03.c1 thresh beta FASochem03.c2 thresh beta FASochem03.c3
## 0.1804080 0.3557056 0.4384874
## thresh beta FASochem05.c1 thresh beta FASochem05.c2 thresh beta FASochem05.c3
## 0.1704904 0.3641090 0.4632141
person.locations.estimate <- person.parameter(rs_model)
summary(person.locations.estimate)
##
## Estimation of Ability Parameters
##
## Collapsed log-likelihood: -52.1224
## Number of iterations: 11
## Number of parameters: 13
##
## ML estimated ability parameters (without spline interpolated values):
## Estimate Std. Err. 2.5 % 97.5 %
## theta 1 3.83472238 0.7510578 2.3626762 5.306769
## theta 2 3.28217230 0.7359669 1.8397037 4.724641
## theta 3 2.23087087 0.7177606 0.8240859 3.637656
## theta 4 2.23087087 0.7177606 0.8240859 3.637656
## theta 5 5.72593457 0.8810222 3.9991628 7.452706
## theta 6 1.19633326 0.7254552 -0.2255328 2.618199
## theta 7 6.67830517 1.1151203 4.4927095 8.863901
## theta 8 0.08003016 0.7824820 -1.4536063 1.613667
## theta 9 2.23087087 0.7177606 0.8240859 3.637656
## theta 10 3.83472238 0.7510578 2.3626762 5.306769
## theta 11 2.23087087 0.7177606 0.8240859 3.637656
## theta 12 3.28217230 0.7359669 1.8397037 4.724641
## theta 13 1.71628920 0.7180347 0.3089671 3.123611
## theta 14 3.28217230 0.7359669 1.8397037 4.724641
## theta 15 0.08003016 0.7824820 -1.4536063 1.613667
## theta 16 -0.59283450 0.8695141 -2.2970509 1.111382
## theta 17 2.74980949 0.7240563 1.3306853 4.168934
## theta 18 1.71628920 0.7180347 0.3089671 3.123611
## theta 19 2.23087087 0.7177606 0.8240859 3.637656
## theta 20 5.02697348 0.8026856 3.4537386 6.600208
## theta 21 4.41208452 0.7696720 2.9035551 5.920614
## theta 22 3.83472238 0.7510578 2.3626762 5.306769
## theta 23 2.74980949 0.7240563 1.3306853 4.168934
## theta 24 3.83472238 0.7510578 2.3626762 5.306769
## theta 25 5.72593457 0.8810222 3.9991628 7.452706
## theta 26 3.28217230 0.7359669 1.8397037 4.724641
## theta 27 2.74980949 0.7240563 1.3306853 4.168934
## theta 28 3.28217230 0.7359669 1.8397037 4.724641
## theta 29 1.71628920 0.7180347 0.3089671 3.123611
## theta 30 2.74980949 0.7240563 1.3306853 4.168934
## theta 31 2.23087087 0.7177606 0.8240859 3.637656
## theta 32 1.71628920 0.7180347 0.3089671 3.123611
## theta 33 0.65856382 0.7435009 -0.7986712 2.115799
## theta 34 5.02697348 0.8026856 3.4537386 6.600208
## theta 35 2.23087087 0.7177606 0.8240859 3.637656
## theta 36 2.23087087 0.7177606 0.8240859 3.637656
## theta 37 0.08003016 0.7824820 -1.4536063 1.613667
## theta 38 3.83472238 0.7510578 2.3626762 5.306769
## theta 39 1.19633326 0.7254552 -0.2255328 2.618199
## theta 40 3.28217230 0.7359669 1.8397037 4.724641
## theta 41 4.41208452 0.7696720 2.9035551 5.920614
## theta 42 2.23087087 0.7177606 0.8240859 3.637656
## theta 43 5.72593457 0.8810222 3.9991628 7.452706
## theta 44 1.19633326 0.7254552 -0.2255328 2.618199
## theta 45 2.74980949 0.7240563 1.3306853 4.168934
## theta 46 4.41208452 0.7696720 2.9035551 5.920614
## theta 47 3.28217230 0.7359669 1.8397037 4.724641
## theta 48 3.28217230 0.7359669 1.8397037 4.724641
## theta 49 2.74980949 0.7240563 1.3306853 4.168934
## theta 50 3.83472238 0.7510578 2.3626762 5.306769
## theta 51 3.83472238 0.7510578 2.3626762 5.306769
## theta 52 2.74980949 0.7240563 1.3306853 4.168934
## theta 53 5.02697348 0.8026856 3.4537386 6.600208
## theta 54 0.65856382 0.7435009 -0.7986712 2.115799
## theta 55 1.71628920 0.7180347 0.3089671 3.123611
## theta 56 3.28217230 0.7359669 1.8397037 4.724641
## theta 57 3.28217230 0.7359669 1.8397037 4.724641
## theta 58 5.72593457 0.8810222 3.9991628 7.452706
## theta 59 2.74980949 0.7240563 1.3306853 4.168934
## theta 60 0.08003016 0.7824820 -1.4536063 1.613667
## theta 61 2.23087087 0.7177606 0.8240859 3.637656
## theta 62 2.74980949 0.7240563 1.3306853 4.168934
## theta 63 1.19633326 0.7254552 -0.2255328 2.618199
## theta 64 4.41208452 0.7696720 2.9035551 5.920614
## theta 65 5.72593457 0.8810222 3.9991628 7.452706
## theta 66 5.72593457 0.8810222 3.9991628 7.452706
## theta 68 2.23087087 0.7177606 0.8240859 3.637656
## theta 69 5.02697348 0.8026856 3.4537386 6.600208
## theta 70 0.08003016 0.7824820 -1.4536063 1.613667
## theta 71 2.23087087 0.7177606 0.8240859 3.637656
## theta 72 1.19633326 0.7254552 -0.2255328 2.618199
## theta 73 3.28217230 0.7359669 1.8397037 4.724641
## theta 74 2.23087087 0.7177606 0.8240859 3.637656
## theta 75 1.19633326 0.7254552 -0.2255328 2.618199
## theta 76 3.28217230 0.7359669 1.8397037 4.724641
## theta 77 6.67830517 1.1151203 4.4927095 8.863901
## theta 78 2.23087087 0.7177606 0.8240859 3.637656
## theta 79 -0.59283450 0.8695141 -2.2970509 1.111382
## theta 80 2.74980949 0.7240563 1.3306853 4.168934
## theta 81 1.19633326 0.7254552 -0.2255328 2.618199
item.fit <- itemfit(person.locations.estimate)
item.fit
##
## Itemfit Statistics:
## Chisq df p-value Outfit MSQ Infit MSQ Outfit t Infit t Discrim
## IDochem08 89.217 79 0.202 1.115 1.090 0.796 0.632 0.408
## IDochem09 72.838 79 0.674 0.910 0.867 -0.573 -0.878 0.500
## FASochem02 63.063 79 0.905 0.788 0.804 -1.490 -1.348 0.728
## FASochem03 68.901 79 0.784 0.861 0.893 -0.852 -0.656 0.724
## FASochem05 36.925 79 1.000 0.462 0.459 -4.351 -4.407 0.874
pfit <- personfit(person.locations.estimate)
pfit
##
## Personfit Statistics:
## Chisq df p-value Outfit MSQ Infit MSQ Outfit t Infit t
## 1 5.748 4 0.219 1.150 1.161 0.44 0.45
## 2 1.254 4 0.869 0.251 0.261 -1.56 -1.52
## 3 1.194 4 0.879 0.239 0.238 -1.68 -1.69
## 4 5.433 4 0.246 1.087 1.083 0.34 0.34
## 5 3.727 4 0.444 0.745 0.818 -0.29 -0.17
## 6 0.558 4 0.968 0.112 0.112 -2.43 -2.42
## 7 3.836 4 0.429 0.767 0.920 0.03 0.16
## 8 3.685 4 0.450 0.737 0.739 -0.35 -0.34
## 9 1.194 4 0.879 0.239 0.238 -1.68 -1.69
## 10 0.511 4 0.972 0.102 0.101 -2.34 -2.33
## 11 1.194 4 0.879 0.239 0.238 -1.68 -1.69
## 12 5.571 4 0.234 1.114 1.103 0.38 0.37
## 13 3.968 4 0.410 0.794 0.787 -0.17 -0.18
## 14 5.571 4 0.234 1.114 1.103 0.38 0.37
## 15 11.721 4 0.020 2.344 2.387 1.99 2.01
## 16 6.216 4 0.184 1.243 1.246 0.58 0.59
## 17 2.579 4 0.631 0.516 0.528 -0.77 -0.74
## 18 12.336 4 0.015 2.467 2.465 1.95 1.95
## 19 3.508 4 0.477 0.702 0.698 -0.35 -0.36
## 20 3.160 4 0.531 0.632 0.622 -0.61 -0.62
## 21 8.245 4 0.083 1.649 1.688 1.12 1.15
## 22 0.511 4 0.972 0.102 0.101 -2.34 -2.33
## 23 2.579 4 0.631 0.516 0.528 -0.77 -0.74
## 24 0.511 4 0.972 0.102 0.101 -2.34 -2.33
## 25 11.160 4 0.025 2.232 2.446 1.79 2.09
## 26 1.940 4 0.747 0.388 0.401 -1.08 -1.05
## 27 1.909 4 0.752 0.382 0.390 -1.14 -1.12
## 28 1.940 4 0.747 0.388 0.401 -1.08 -1.05
## 29 1.739 4 0.784 0.348 0.352 -1.28 -1.26
## 30 1.909 4 0.752 0.382 0.390 -1.14 -1.12
## 31 2.768 4 0.597 0.554 0.557 -0.69 -0.68
## 32 5.224 4 0.265 1.045 1.038 0.27 0.26
## 33 14.164 4 0.007 2.833 2.968 2.39 2.48
## 34 1.954 4 0.744 0.391 0.373 -1.32 -1.35
## 35 1.194 4 0.879 0.239 0.238 -1.68 -1.69
## 36 5.433 4 0.246 1.087 1.083 0.34 0.34
## 37 3.685 4 0.450 0.737 0.739 -0.35 -0.34
## 38 0.511 4 0.972 0.102 0.101 -2.34 -2.33
## 39 0.558 4 0.968 0.112 0.112 -2.43 -2.42
## 40 1.254 4 0.869 0.251 0.261 -1.56 -1.52
## 41 5.996 4 0.199 1.199 1.195 0.51 0.51
## 42 1.194 4 0.879 0.239 0.238 -1.68 -1.69
## 43 3.071 4 0.546 0.614 0.657 -0.59 -0.54
## 44 19.046 4 0.001 3.809 3.802 3.04 3.03
## 45 4.632 4 0.327 0.926 0.913 0.08 0.06
## 46 7.736 4 0.102 1.547 1.583 0.99 1.03
## 47 2.292 4 0.682 0.458 0.469 -0.89 -0.86
## 48 4.407 4 0.354 0.881 0.850 0.01 -0.04
## 49 1.909 4 0.752 0.382 0.390 -1.14 -1.12
## 50 4.288 4 0.368 0.858 0.847 -0.03 -0.05
## 51 3.922 4 0.417 0.784 0.779 -0.16 -0.17
## 52 1.573 4 0.814 0.315 0.321 -1.36 -1.35
## 53 1.954 4 0.744 0.391 0.373 -1.32 -1.35
## 54 7.403 4 0.116 1.481 1.536 0.93 1.00
## 55 1.022 4 0.906 0.204 0.206 -1.84 -1.84
## 56 1.940 4 0.747 0.388 0.401 -1.08 -1.05
## 57 13.983 4 0.007 2.797 2.853 2.16 2.21
## 58 4.650 4 0.325 0.930 0.897 0.07 -0.01
## 59 8.049 4 0.090 1.610 1.646 1.05 1.09
## 60 4.347 4 0.361 0.869 0.901 -0.07 0.00
## 61 5.642 4 0.228 1.128 1.133 0.41 0.41
## 62 2.579 4 0.631 0.516 0.528 -0.77 -0.74
## 63 2.866 4 0.580 0.573 0.568 -0.66 -0.67
## 64 6.800 4 0.147 1.360 1.374 0.74 0.76
## 65 3.727 4 0.444 0.745 0.818 -0.29 -0.17
## 66 5.943 4 0.203 1.189 1.005 0.50 0.19
## 68 5.642 4 0.228 1.128 1.133 0.41 0.41
## 69 1.954 4 0.744 0.391 0.373 -1.32 -1.35
## 70 6.579 4 0.160 1.316 1.345 0.71 0.75
## 71 1.194 4 0.879 0.239 0.238 -1.68 -1.69
## 72 0.558 4 0.968 0.112 0.112 -2.43 -2.42
## 73 1.254 4 0.869 0.251 0.261 -1.56 -1.52
## 74 2.768 4 0.597 0.554 0.557 -0.69 -0.68
## 75 0.558 4 0.968 0.112 0.112 -2.43 -2.42
## 76 5.571 4 0.234 1.114 1.103 0.38 0.37
## 77 3.836 4 0.429 0.767 0.920 0.03 0.16
## 78 4.196 4 0.380 0.839 0.834 -0.08 -0.09
## 79 6.216 4 0.184 1.243 1.246 0.58 0.59
## 80 2.579 4 0.631 0.516 0.528 -0.77 -0.74
## 81 4.908 4 0.297 0.982 0.968 0.17 0.14
plotPImap(rs_model, sorted = TRUE)
stresid <- item.fit$st.res
stresid2 <- na.omit(unlist(as.list(item.fit$st.res)))
# before constructing the plots, find the max & min residuals:
max.resid <- ceiling(max(stresid2))
min.resid <- ceiling(min(stresid2))
for(item.number in 1:ncol(stresid)){
plot(stresid[, item.number], ylim = c(min.resid, max.resid),
main = paste("Standardized Residuals for Item ", item.number, sep = ""),
ylab = "Standardized Residual", xlab = "Person Index")
abline(h = 0, col = "blue")
abline(h=2, lty = 2, col = "red")
abline(h=-2, lty = 2, col = "red")
legend("topright", c("Std. Residual", "Observed = Expected", "+/- 2 SD"), pch = c(1, NA, NA),
lty = c(NA, 1, 2),
col = c("black", "blue", "red"), cex = .8)
}
for(item.number in 1:ncol(stresid)){
plotICC(rs_model, item.subset = item.number, empICC = list("raw"), empCI = list())
}
Warning in plotICC.Rm(rs_model, item.subset = item.number, empICC = list(“raw”), : Empirical ICCs can only be plotted for a dichotomous Rasch model!
Warning in plotICC.Rm(rs_model, item.subset = item.number, empICC = list(“raw”), : Empirical ICCs can only be plotted for a dichotomous Rasch model!
Warning in plotICC.Rm(rs_model, item.subset = item.number, empICC = list(“raw”), : Empirical ICCs can only be plotted for a dichotomous Rasch model!
Warning in plotICC.Rm(rs_model, item.subset = item.number, empICC = list(“raw”), : Empirical ICCs can only be plotted for a dichotomous Rasch model!
Warning in plotICC.Rm(rs_model, item.subset = item.number, empICC = list(“raw”), : Empirical ICCs can only be plotted for a dichotomous Rasch model!
plotINFO(rs_model, type="test")
summary(rs_model)
## ------------------------------------------------------------
## TAM 4.0-16 (2022-05-13 13:23:23)
## R version 4.1.2 (2021-11-01) x86_64, mingw32 | nodename=DESKTOP-UE2VMI8 | login=hthrp
##
## Date of Analysis: 2022-08-09 15:36:50
## Time difference of 0.9064829 secs
## Computation time: 0.9064829
##
## Multidimensional Item Response Model in TAM
##
## IRT Model: RSM
## Call:
## TAM::tam.mml(resp = d, irtmodel = "RSM")
##
## ------------------------------------------------------------
## Number of iterations = 1000
## Numeric integration with 21 integration points
##
## Deviance = 1960.34
## Log likelihood = -980.17
## Number of persons = 81
## Number of persons used = 80
## Number of items = 12
## Number of estimated parameters = 16
## Item threshold parameters = 15
## Item slope parameters = 0
## Regression parameters = 0
## Variance/covariance parameters = 1
##
## AIC = 1992 | penalty=32 | AIC=-2*LL + 2*p
## AIC3 = 2008 | penalty=48 | AIC3=-2*LL + 3*p
## BIC = 2030 | penalty=70.11 | BIC=-2*LL + log(n)*p
## aBIC = 1979 | penalty=18.86 | aBIC=-2*LL + log((n-2)/24)*p (adjusted BIC)
## CAIC = 2046 | penalty=86.11 | CAIC=-2*LL + [log(n)+1]*p (consistent AIC)
## AICc = 2001 | penalty=40.63 | AICc=-2*LL + 2*p + 2*p*(p+1)/(n-p-1) (bias corrected AIC)
## GHP = 1.03876 | GHP=( -LL + p ) / (#Persons * #Items) (Gilula-Haberman log penalty)
##
## ------------------------------------------------------------
## EAP Reliability
## [1] 0.852
## ------------------------------------------------------------
## Covariances and Variances
## [,1]
## [1,] 1.34
## ------------------------------------------------------------
## Correlations and Standard Deviations (in the diagonal)
## [,1]
## [1,] 1.158
## ------------------------------------------------------------
## Regression Coefficients
## [,1]
## [1,] 0
## ------------------------------------------------------------
## Item Parameters -A*Xsi
## item N M xsi.item AXsi_.Cat1 AXsi_.Cat2 AXsi_.Cat3 AXsi_.Cat4
## 1 IDochem02 80 2.525 -2.392 -9.194 -11.820 -11.760 -9.569
## 2 IDochem03 80 2.312 -1.849 -8.651 -10.734 -10.131 -7.396
## 3 IDochem04 80 2.587 -2.549 -9.351 -12.134 -12.231 -10.197
## 4 IDochem05 79 2.519 -2.364 -9.165 -11.763 -11.674 -9.454
## 5 IDochem06 80 2.612 -2.612 -9.414 -12.260 -12.419 -10.448
## 6 IDochem10 80 3.025 -3.657 -10.459 -14.350 -15.555 -14.629
## 7 IDochem07 80 2.275 -1.751 -8.553 -10.538 -9.837 -7.005
## 8 IDochem08 80 2.550 -2.455 -9.257 -11.946 -11.948 -9.820
## 9 IDochem09 80 2.487 -2.297 -9.099 -11.631 -11.476 -9.190
## 10 FASochem02 80 2.362 -1.978 -8.780 -10.992 -10.519 -7.913
## 11 FASochem03 80 2.900 -3.335 -10.137 -13.706 -14.589 -13.340
## 12 FASochem05 80 2.775 -3.019 -9.821 -13.074 -13.641 -12.077
## B.Cat1.Dim1 B.Cat2.Dim1 B.Cat3.Dim1 B.Cat4.Dim1
## 1 1 2 3 4
## 2 1 2 3 4
## 3 1 2 3 4
## 4 1 2 3 4
## 5 1 2 3 4
## 6 1 2 3 4
## 7 1 2 3 4
## 8 1 2 3 4
## 9 1 2 3 4
## 10 1 2 3 4
## 11 1 2 3 4
## 12 1 2 3 4
##
## Item Parameters Xsi
## xsi se.xsi
## IDochem02 -2.392 0.178
## IDochem03 -1.849 0.180
## IDochem04 -2.549 0.177
## IDochem05 -2.364 0.179
## IDochem06 -2.612 0.177
## IDochem10 -3.657 0.181
## IDochem07 -1.751 0.181
## IDochem08 -2.455 0.177
## IDochem09 -2.297 0.178
## FASochem02 -1.978 0.179
## FASochem03 -3.335 0.178
## FASochem05 -3.019 0.177
## Cat1 -6.802 0.111
## Cat2 -0.234 0.087
## Cat3 2.452 0.070
##
## Item Parameters in IRT parameterization
## item alpha beta tau.Cat1 tau.Cat2 tau.Cat3 tau.Cat4
## 1 IDochem02 1 -2.392 -6.802 -0.234 2.452 4.584
## 2 IDochem03 1 -1.849 -6.802 -0.234 2.452 4.584
## 3 IDochem04 1 -2.549 -6.802 -0.234 2.452 4.584
## 4 IDochem05 1 -2.364 -6.802 -0.234 2.452 4.584
## 5 IDochem06 1 -2.612 -6.802 -0.234 2.452 4.584
## 6 IDochem10 1 -3.657 -6.802 -0.234 2.452 4.584
## 7 IDochem07 1 -1.751 -6.802 -0.234 2.452 4.584
## 8 IDochem08 1 -2.455 -6.802 -0.234 2.452 4.584
## 9 IDochem09 1 -2.297 -6.802 -0.234 2.452 4.584
## 10 FASochem02 1 -1.978 -6.802 -0.234 2.452 4.584
## 11 FASochem03 1 -3.335 -6.802 -0.234 2.452 4.584
## 12 FASochem05 1 -3.019 -6.802 -0.234 2.452 4.584
IRT.WrightMap(rs_model,show.thr.lab=TRUE)
plot(rs_model,ask=FALSE)
## Iteration in WLE/MLE estimation 1 | Maximal change 2.5731
## Iteration in WLE/MLE estimation 2 | Maximal change 0.4764
## Iteration in WLE/MLE estimation 3 | Maximal change 0.0313
## Iteration in WLE/MLE estimation 4 | Maximal change 0.001
## Iteration in WLE/MLE estimation 5 | Maximal change 0
## ----
## WLE Reliability= 0.862
## ....................................................
## Plots exported in png format into folder:
## G:/My Drive/remote R/Ubelong Alt Scale/Plots
plot(rs_model, type="items")
## Iteration in WLE/MLE estimation 1 | Maximal change 2.5731
## Iteration in WLE/MLE estimation 2 | Maximal change 0.4764
## Iteration in WLE/MLE estimation 3 | Maximal change 0.0313
## Iteration in WLE/MLE estimation 4 | Maximal change 0.001
## Iteration in WLE/MLE estimation 5 | Maximal change 0
## ----
## WLE Reliability= 0.862
## ....................................................
## Plots exported in png format into folder:
## G:/My Drive/remote R/Ubelong Alt Scale/Plots
rs_model$xsi # The first column is the item difficulty. In this case, is the rater's rating severity.
## xsi se.xsi
## IDochem02 -2.3922410 0.17759344
## IDochem03 -1.8489879 0.18023736
## IDochem04 -2.5492505 0.17719011
## IDochem05 -2.3635504 0.17873910
## IDochem06 -2.6119877 0.17708155
## IDochem10 -3.6571868 0.18078944
## IDochem07 -1.7511839 0.18088841
## IDochem08 -2.4549610 0.17741037
## IDochem09 -2.2974531 0.17792244
## FASochem02 -1.9783526 0.17945170
## FASochem03 -3.3350727 0.17839522
## FASochem05 -3.0193095 0.17719537
## Cat1 -6.8017286 0.11141753
## Cat2 -0.2340606 0.08736358
## Cat3 2.4522527 0.07005979
scores <- rs_model$xsi
tam.fit(rs_model)
## Item fit calculation based on 100 simulations
## |**********|
## |----------|
## $itemfit
## parameter Outfit Outfit_t Outfit_p Outfit_pholm Infit
## 1 IDochem02 1.0761913 0.5319213 5.947805e-01 1.000000e+00 1.0896795
## 2 IDochem03 0.8789267 -0.7801541 4.353002e-01 1.000000e+00 0.8907779
## 3 IDochem04 0.8047799 -1.3546647 1.755244e-01 1.000000e+00 0.8030855
## 4 IDochem05 0.7682763 -1.6213397 1.049448e-01 1.000000e+00 0.7684538
## 5 IDochem06 1.1611924 1.0664762 2.862084e-01 1.000000e+00 1.1555754
## 6 IDochem10 1.0466327 0.3534561 7.237465e-01 1.000000e+00 1.0677021
## 7 IDochem07 1.1187362 0.7758599 4.378317e-01 1.000000e+00 1.1107318
## 8 IDochem08 1.2885706 1.7983316 7.212447e-02 8.654937e-01 1.2574624
## 9 IDochem09 0.8561067 -0.9620199 3.360396e-01 1.000000e+00 0.8494902
## 10 FASochem02 1.1007503 0.6815558 4.955199e-01 1.000000e+00 1.0920630
## 11 FASochem03 1.1404850 0.9558106 3.391679e-01 1.000000e+00 1.1654197
## 12 FASochem05 0.7639038 -1.6998660 8.915614e-02 9.807176e-01 0.7603129
## 13 Cat1 2.1557330 12.6693264 8.746215e-37 1.137008e-35 1.7354436
## 14 Cat2 2.3313311 18.6867789 6.342881e-78 8.880034e-77 2.2713533
## 15 Cat3 1.6814069 27.1622494 1.814695e-162 2.722043e-161 1.7376240
## Infit_t Infit_p Infit_pholm
## 1 0.6186106 5.361729e-01 1.000000e+00
## 2 -0.6955229 4.867277e-01 1.000000e+00
## 3 -1.3677375 1.713943e-01 1.000000e+00
## 4 -1.6202440 1.051799e-01 1.000000e+00
## 5 1.0331082 3.015533e-01 1.000000e+00
## 6 0.4919219 6.227745e-01 1.000000e+00
## 7 0.7316727 4.643684e-01 1.000000e+00
## 8 1.6246835 1.042300e-01 1.000000e+00
## 9 -1.0090485 3.129514e-01 1.000000e+00
## 10 0.6280161 5.299934e-01 1.000000e+00
## 11 1.1096208 2.671625e-01 1.000000e+00
## 12 -1.7297349 8.367764e-02 1.000000e+00
## 13 8.8729799 7.121419e-19 9.257844e-18
## 14 18.0221040 1.306778e-72 1.829489e-71
## 15 29.0521340 1.446189e-185 2.169283e-184
##
## $time
## [1] "2022-08-09 15:36:53 EDT" "2022-08-09 15:36:53 EDT"
##
## $CALL
## tam.fit(tamobj = rs_model)
##
## attr(,"class")
## [1] "tam.fit"
Note The tam.threshold() function is actually calculating Thurstonian thresholds, whereas the tau estimates are Andrich thresholds. These are different parameters.
The Thurstonian thresholds are cumulative, meaning that they reflect the probability for responding in a category of interest or any higher category. The Andrich thresholds are adjacent-categories thresholds, which reflect the point on the logit scale at which there is an equal probability for a rating in a category of interest or the category just below it. You can check here (https://www.winsteps.com/winman/ratingscale.htm) for more information.
rs_threshold <- tam.threshold(rs_model)
rs_threshold
## Cat1 Cat2 Cat3 Cat4
## IDochem02 -9.195282 -2.687347 0.02041626 2.293854
## IDochem03 -8.652191 -2.144073 0.56369019 2.836945
## IDochem04 -9.352386 -2.844452 -0.13650513 2.136749
## IDochem05 -9.166718 -2.658783 0.04916382 2.322418
## IDochem06 -9.415192 -2.907074 -0.19931030 2.073944
## IDochem10 -10.460358 -3.952423 -1.24447632 1.028778
## IDochem07 -8.554230 -2.046295 0.66146851 2.934906
## IDochem08 -9.258087 -2.750153 -0.04220581 2.231049
## IDochem09 -9.100616 -2.592682 0.11526489 2.388519
## FASochem02 -8.781464 -2.273529 0.43441772 2.707672
## FASochem03 -10.138275 -3.630157 -0.92239380 1.350861
## FASochem05 -9.822418 -3.314484 -0.60653687 1.666718
person_ability <- tam.wle(rs_model)
## Iteration in WLE/MLE estimation 1 | Maximal change 2.5731
## Iteration in WLE/MLE estimation 2 | Maximal change 0.4764
## Iteration in WLE/MLE estimation 3 | Maximal change 0.0313
## Iteration in WLE/MLE estimation 4 | Maximal change 0.001
## Iteration in WLE/MLE estimation 5 | Maximal change 0
## ----
## WLE Reliability= 0.862
head(person_ability$theta)# Person's fit statistics
## [1] 0.6320271 0.4370026 -0.3594142 -0.3594142 1.4274335 -1.4453114
rs_personfit <- tam.personfit(rs_model)
head(rs_personfit)
## outfitPerson outfitPerson_t infitPerson infitPerson_t
## 103 0.5778460 -1.2220560 0.5843090 -1.194757
## 104 0.2427975 -2.8807575 0.2415393 -2.888025
## 105 0.5346672 -1.2821978 0.5464818 -1.242658
## 106 0.7410565 -0.5811908 0.7358241 -0.600131
## 107 0.6368814 -1.0317208 0.6268496 -1.059291
## 108 0.1095534 -3.6686770 0.1139217 -3.615395
imod1 <- TAM::IRT.informationCurves( rs_model, theta=seq(-5,5,len=100) )
plot(imod1)
summary(rs_model)
## ------------------------------------------------------------
## TAM 4.0-16 (2022-05-13 13:23:23)
## R version 4.1.2 (2021-11-01) x86_64, mingw32 | nodename=DESKTOP-UE2VMI8 | login=hthrp
##
## Date of Analysis: 2022-08-09 15:36:54
## Time difference of 0.6931551 secs
## Computation time: 0.6931551
##
## Multidimensional Item Response Model in TAM
##
## IRT Model: RSM
## Call:
## TAM::tam.mml(resp = d1, irtmodel = "RSM")
##
## ------------------------------------------------------------
## Number of iterations = 1000
## Numeric integration with 21 integration points
##
## Deviance = 607.23
## Log likelihood = -303.62
## Number of persons = 81
## Number of persons used = 80
## Number of items = 4
## Number of estimated parameters = 8
## Item threshold parameters = 7
## Item slope parameters = 0
## Regression parameters = 0
## Variance/covariance parameters = 1
##
## AIC = 623 | penalty=16 | AIC=-2*LL + 2*p
## AIC3 = 631 | penalty=24 | AIC3=-2*LL + 3*p
## BIC = 642 | penalty=35.06 | BIC=-2*LL + log(n)*p
## aBIC = 617 | penalty=9.43 | aBIC=-2*LL + log((n-2)/24)*p (adjusted BIC)
## CAIC = 650 | penalty=43.06 | CAIC=-2*LL + [log(n)+1]*p (consistent AIC)
## AICc = 625 | penalty=18.03 | AICc=-2*LL + 2*p + 2*p*(p+1)/(n-p-1) (bias corrected AIC)
## GHP = 0.97686 | GHP=( -LL + p ) / (#Persons * #Items) (Gilula-Haberman log penalty)
##
## ------------------------------------------------------------
## EAP Reliability
## [1] 0.845
## ------------------------------------------------------------
## Covariances and Variances
## [,1]
## [1,] 5.409
## ------------------------------------------------------------
## Correlations and Standard Deviations (in the diagonal)
## [,1]
## [1,] 2.326
## ------------------------------------------------------------
## Regression Coefficients
## [,1]
## [1,] 0
## ------------------------------------------------------------
## Item Parameters -A*Xsi
## item N M xsi.item AXsi_.Cat1 AXsi_.Cat2 AXsi_.Cat3 AXsi_.Cat4
## 1 IDochem02 80 2.525 -3.096 -12.105 -15.819 -15.865 -12.384
## 2 IDochem04 80 2.587 -3.334 -12.343 -16.294 -16.578 -13.336
## 3 IDochem05 79 2.519 -3.063 -12.072 -15.753 -15.767 -12.254
## 4 IDochem06 80 2.612 -3.429 -12.438 -16.485 -16.864 -13.717
## B.Cat1.Dim1 B.Cat2.Dim1 B.Cat3.Dim1 B.Cat4.Dim1
## 1 1 2 3 4
## 2 1 2 3 4
## 3 1 2 3 4
## 4 1 2 3 4
##
## Item Parameters Xsi
## xsi se.xsi
## IDochem02 -3.096 0.218
## IDochem04 -3.334 0.218
## IDochem05 -3.063 0.220
## IDochem06 -3.429 0.218
## Cat1 -9.009 0.232
## Cat2 -0.618 0.175
## Cat3 3.050 0.132
##
## Item Parameters in IRT parameterization
## item alpha beta tau.Cat1 tau.Cat2 tau.Cat3 tau.Cat4
## 1 IDochem02 1 -3.096 -9.009 -0.618 3.05 6.576
## 2 IDochem04 1 -3.334 -9.009 -0.618 3.05 6.576
## 3 IDochem05 1 -3.063 -9.009 -0.618 3.05 6.576
## 4 IDochem06 1 -3.429 -9.009 -0.618 3.05 6.576
IRT.WrightMap(rs_model,show.thr.lab=TRUE)
plot(rs_model,ask=FALSE)
## Iteration in WLE/MLE estimation 1 | Maximal change 2.4374
## Iteration in WLE/MLE estimation 2 | Maximal change 0.9836
## Iteration in WLE/MLE estimation 3 | Maximal change 2.6611
## Iteration in WLE/MLE estimation 4 | Maximal change 0.2743
## Iteration in WLE/MLE estimation 5 | Maximal change 0.014
## Iteration in WLE/MLE estimation 6 | Maximal change 0.0018
## Iteration in WLE/MLE estimation 7 | Maximal change 2e-04
## Iteration in WLE/MLE estimation 8 | Maximal change 0
## ----
## WLE Reliability= 0.83
## ....................................................
## Plots exported in png format into folder:
## G:/My Drive/remote R/Ubelong Alt Scale/Plots
plot(rs_model, type="items")
## Iteration in WLE/MLE estimation 1 | Maximal change 2.4374
## Iteration in WLE/MLE estimation 2 | Maximal change 0.9836
## Iteration in WLE/MLE estimation 3 | Maximal change 2.6611
## Iteration in WLE/MLE estimation 4 | Maximal change 0.2743
## Iteration in WLE/MLE estimation 5 | Maximal change 0.014
## Iteration in WLE/MLE estimation 6 | Maximal change 0.0018
## Iteration in WLE/MLE estimation 7 | Maximal change 2e-04
## Iteration in WLE/MLE estimation 8 | Maximal change 0
## ----
## WLE Reliability= 0.83
## ....................................................
## Plots exported in png format into folder:
## G:/My Drive/remote R/Ubelong Alt Scale/Plots
rs_model$xsi # The first column is the item difficulty. In this case, is the rater's rating severity.
## xsi se.xsi
## IDochem02 -3.0960995 0.2182412
## IDochem04 -3.3339357 0.2182367
## IDochem05 -3.0634176 0.2197044
## IDochem06 -3.4291983 0.2182685
## Cat1 -9.0087024 0.2316786
## Cat2 -0.6178376 0.1745352
## Cat3 3.0500609 0.1324678
scores <- rs_model$xsi
tam.fit(rs_model)
## Item fit calculation based on 100 simulations
## |**********|
## |-------|
## $itemfit
## parameter Outfit Outfit_t Outfit_p Outfit_pholm Infit Infit_t
## 1 IDochem02 1.0703474 0.4685543 6.393883e-01 1.000000e+00 1.0961307 0.6259458
## 2 IDochem04 0.7005139 -2.1136926 3.454153e-02 1.381661e-01 0.7236994 -1.9263387
## 3 IDochem05 0.6496398 -2.5010356 1.238307e-02 7.429844e-02 0.6687854 -2.3391246
## 4 IDochem06 1.2350628 1.4071556 1.593812e-01 4.781437e-01 1.2290077 1.3949992
## 5 Cat1 1.0192505 -0.6717438 5.017468e-01 1.000000e+00 1.4403177 2.7357891
## 6 Cat2 1.3152093 2.4775384 1.322922e-02 7.429844e-02 1.5490619 4.3567117
## 7 Cat3 1.4245521 6.6142963 3.733233e-11 2.613263e-10 1.3868320 6.2995238
## Infit_p Infit_pholm
## 1 5.313505e-01 5.313505e-01
## 2 5.406209e-02 1.621863e-01
## 3 1.932899e-02 7.731594e-02
## 4 1.630161e-01 3.260322e-01
## 5 6.223090e-03 3.111545e-02
## 6 1.320310e-05 7.921859e-05
## 7 2.985615e-10 2.089930e-09
##
## $time
## [1] "2022-08-09 15:36:55 EDT" "2022-08-09 15:36:55 EDT"
##
## $CALL
## tam.fit(tamobj = rs_model)
##
## attr(,"class")
## [1] "tam.fit"
Note The tam.threshold() function is actually calculating Thurstonian thresholds, whereas the tau estimates are Andrich thresholds. These are different parameters.
The Thurstonian thresholds are cumulative, meaning that they reflect the probability for responding in a category of interest or any higher category. The Andrich thresholds are adjacent-categories thresholds, which reflect the point on the logit scale at which there is an equal probability for a rating in a category of interest or the category just below it. You can check here (https://www.winsteps.com/winman/ratingscale.htm) for more information.
rs_threshold <- tam.threshold(rs_model)
rs_threshold
## Cat1 Cat2 Cat3 Cat4
## IDochem02 -11.99991 -3.738373 -0.04971313 3.508575
## IDochem04 -11.99991 -3.976227 -0.28738403 3.270721
## IDochem05 -11.99991 -3.705597 -0.01693726 3.541351
## IDochem06 -11.99991 -4.071442 -0.38278198 3.175507
person_ability <- tam.wle(rs_model)
## Iteration in WLE/MLE estimation 1 | Maximal change 2.4374
## Iteration in WLE/MLE estimation 2 | Maximal change 0.9836
## Iteration in WLE/MLE estimation 3 | Maximal change 2.6611
## Iteration in WLE/MLE estimation 4 | Maximal change 0.2743
## Iteration in WLE/MLE estimation 5 | Maximal change 0.014
## Iteration in WLE/MLE estimation 6 | Maximal change 0.0018
## Iteration in WLE/MLE estimation 7 | Maximal change 2e-04
## Iteration in WLE/MLE estimation 8 | Maximal change 0
## ----
## WLE Reliability= 0.83
head(person_ability$theta)# Person's fit statistics
## [1] 1.5798049 1.5798049 0.5946855 -0.9707533 1.5798049 -2.0110215
rs_personfit <- tam.personfit(rs_model)
head(rs_personfit)
## outfitPerson outfitPerson_t infitPerson infitPerson_t
## 103 0.006195322 -2.5708501 0.006198420 -2.5707277
## 104 0.006195322 -2.5708501 0.006198420 -2.5707277
## 105 0.720938010 -0.2343479 0.716007034 -0.2452719
## 106 0.567833695 -0.5331939 0.579833204 -0.5107295
## 107 0.006195322 -2.5708501 0.006198420 -2.5707277
## 108 0.005880944 -2.4702757 0.005888678 -2.4700055
imod1 <- TAM::IRT.informationCurves( rs_model, theta=seq(-5,5,len=100) )
plot(imod1)
summary(rs_model)
## ------------------------------------------------------------
## TAM 4.0-16 (2022-05-13 13:23:23)
## R version 4.1.2 (2021-11-01) x86_64, mingw32 | nodename=DESKTOP-UE2VMI8 | login=hthrp
##
## Date of Analysis: 2022-08-09 15:36:56
## Time difference of 1.30961 secs
## Computation time: 1.30961
##
## Multidimensional Item Response Model in TAM
##
## IRT Model: RSM
## Call:
## TAM::tam.mml(resp = d2, irtmodel = "RSM")
##
## ------------------------------------------------------------
## Number of iterations = 1000
## Numeric integration with 21 integration points
##
## Deviance = 843.69
## Log likelihood = -421.84
## Number of persons = 81
## Number of persons used = 80
## Number of items = 5
## Number of estimated parameters = 9
## Item threshold parameters = 8
## Item slope parameters = 0
## Regression parameters = 0
## Variance/covariance parameters = 1
##
## AIC = 862 | penalty=18 | AIC=-2*LL + 2*p
## AIC3 = 871 | penalty=27 | AIC3=-2*LL + 3*p
## BIC = 883 | penalty=39.44 | BIC=-2*LL + log(n)*p
## aBIC = 854 | penalty=10.61 | aBIC=-2*LL + log((n-2)/24)*p (adjusted BIC)
## CAIC = 892 | penalty=48.44 | CAIC=-2*LL + [log(n)+1]*p (consistent AIC)
## AICc = 864 | penalty=20.57 | AICc=-2*LL + 2*p + 2*p*(p+1)/(n-p-1) (bias corrected AIC)
## GHP = 1.07711 | GHP=( -LL + p ) / (#Persons * #Items) (Gilula-Haberman log penalty)
##
## ------------------------------------------------------------
## EAP Reliability
## [1] 0.777
## ------------------------------------------------------------
## Covariances and Variances
## [,1]
## [1,] 2.049
## ------------------------------------------------------------
## Correlations and Standard Deviations (in the diagonal)
## [,1]
## [1,] 1.431
## ------------------------------------------------------------
## Regression Coefficients
## [,1]
## [1,] 0
## ------------------------------------------------------------
## Item Parameters -A*Xsi
## item N M xsi.item AXsi_.Cat1 AXsi_.Cat2 AXsi_.Cat3 AXsi_.Cat4
## 1 IDochem08 80 2.550 -2.474 -9.528 -12.191 -12.364 -9.897
## 2 IDochem09 80 2.487 -2.305 -9.359 -11.852 -11.855 -9.218
## 3 FASochem02 80 2.362 -1.965 -9.019 -11.173 -10.836 -7.860
## 4 FASochem03 80 2.900 -3.445 -10.500 -14.133 -15.277 -13.781
## 5 FASochem05 80 2.775 -3.092 -10.147 -13.428 -14.219 -12.370
## B.Cat1.Dim1 B.Cat2.Dim1 B.Cat3.Dim1 B.Cat4.Dim1
## 1 1 2 3 4
## 2 1 2 3 4
## 3 1 2 3 4
## 4 1 2 3 4
## 5 1 2 3 4
##
## Item Parameters Xsi
## xsi se.xsi
## IDochem08 -2.474 0.184
## IDochem09 -2.305 0.184
## FASochem02 -1.965 0.184
## FASochem03 -3.445 0.189
## FASochem05 -3.092 0.187
## Cat1 -7.054 0.174
## Cat2 -0.188 0.134
## Cat3 2.301 0.110
##
## Item Parameters in IRT parameterization
## item alpha beta tau.Cat1 tau.Cat2 tau.Cat3 tau.Cat4
## 1 IDochem08 1 -2.474 -7.054 -0.188 2.301 4.941
## 2 IDochem09 1 -2.305 -7.054 -0.188 2.301 4.941
## 3 FASochem02 1 -1.965 -7.054 -0.188 2.301 4.941
## 4 FASochem03 1 -3.445 -7.054 -0.188 2.301 4.941
## 5 FASochem05 1 -3.092 -7.054 -0.188 2.301 4.941
IRT.WrightMap(rs_model,show.thr.lab=TRUE)
plot(rs_model,ask=FALSE)
## Iteration in WLE/MLE estimation 1 | Maximal change 2.5367
## Iteration in WLE/MLE estimation 2 | Maximal change 0.1446
## Iteration in WLE/MLE estimation 3 | Maximal change 0.0129
## Iteration in WLE/MLE estimation 4 | Maximal change 0.0019
## Iteration in WLE/MLE estimation 5 | Maximal change 3e-04
## Iteration in WLE/MLE estimation 6 | Maximal change 0
## ----
## WLE Reliability= 0.775
## ....................................................
## Plots exported in png format into folder:
## G:/My Drive/remote R/Ubelong Alt Scale/Plots
plot(rs_model, type="items")
## Iteration in WLE/MLE estimation 1 | Maximal change 2.5367
## Iteration in WLE/MLE estimation 2 | Maximal change 0.1446
## Iteration in WLE/MLE estimation 3 | Maximal change 0.0129
## Iteration in WLE/MLE estimation 4 | Maximal change 0.0019
## Iteration in WLE/MLE estimation 5 | Maximal change 3e-04
## Iteration in WLE/MLE estimation 6 | Maximal change 0
## ----
## WLE Reliability= 0.775
## ....................................................
## Plots exported in png format into folder:
## G:/My Drive/remote R/Ubelong Alt Scale/Plots
rs_model$xsi # The first column is the item difficulty. In this case, is the rater's rating severity.
## xsi se.xsi
## IDochem08 -2.4741528 0.1844231
## IDochem09 -2.3045698 0.1842312
## FASochem02 -1.9650549 0.1844146
## FASochem03 -3.4452518 0.1891040
## FASochem05 -3.0924898 0.1866949
## Cat1 -7.0542517 0.1735807
## Cat2 -0.1884432 0.1340774
## Cat3 2.3014427 0.1097370
scores <- rs_model$xsi
tam.fit(rs_model)
## Item fit calculation based on 100 simulations
## |**********|
## |--------|
## $itemfit
## parameter Outfit Outfit_t Outfit_p Outfit_pholm Infit
## 1 IDochem08 1.1714868 1.1044904 2.693805e-01 1.000000e+00 1.1477094
## 2 IDochem09 0.9365093 -0.4033966 6.866565e-01 1.000000e+00 0.9128972
## 3 FASochem02 1.0655457 0.4598657 6.456126e-01 1.000000e+00 1.0770197
## 4 FASochem03 1.1143705 0.7575895 4.486968e-01 1.000000e+00 1.1492278
## 5 FASochem05 0.7173416 -2.0293323 4.242445e-02 2.545467e-01 0.7235729
## 6 Cat1 2.1928751 8.2492437 1.594001e-16 1.275201e-15 1.1589892
## 7 Cat2 1.3374791 3.8923967 9.925876e-05 6.948113e-04 1.3121668
## 8 Cat3 1.0769486 2.0260034 4.276443e-02 2.545467e-01 1.0834064
## Infit_t Infit_p Infit_pholm
## 1 0.9668585 0.3336147553 1.000000000
## 2 -0.5644717 0.5724331757 1.000000000
## 3 0.5324816 0.5943924755 1.000000000
## 4 0.9683014 0.3328938541 1.000000000
## 5 -1.9789304 0.0478238420 0.286943052
## 6 1.3843546 0.1662499086 0.831249543
## 7 3.6444504 0.0002679638 0.002143711
## 8 2.2253501 0.0260577423 0.182404196
##
## $time
## [1] "2022-08-09 15:36:58 EDT" "2022-08-09 15:36:58 EDT"
##
## $CALL
## tam.fit(tamobj = rs_model)
##
## attr(,"class")
## [1] "tam.fit"
Note The tam.threshold() function is actually calculating Thurstonian thresholds, whereas the tau estimates are Andrich thresholds. These are different parameters.
The Thurstonian thresholds are cumulative, meaning that they reflect the probability for responding in a category of interest or any higher category. The Andrich thresholds are adjacent-categories thresholds, which reflect the point on the logit scale at which there is an equal probability for a rating in a category of interest or the category just below it. You can check here (https://www.winsteps.com/winman/ratingscale.htm) for more information.
rs_threshold <- tam.threshold(rs_model)
rs_threshold
## Cat1 Cat2 Cat3 Cat4
## IDochem08 -9.529449 -2.736053 -0.163238525 2.532257
## IDochem09 -9.359894 -2.566498 0.006317139 2.701813
## FASochem02 -9.020416 -2.227020 0.345794678 3.041290
## FASochem03 -10.500458 -3.707245 -1.134429932 1.561066
## FASochem05 -10.147797 -3.354401 -0.781585693 1.913910
person_ability <- tam.wle(rs_model)
## Iteration in WLE/MLE estimation 1 | Maximal change 2.5367
## Iteration in WLE/MLE estimation 2 | Maximal change 0.1446
## Iteration in WLE/MLE estimation 3 | Maximal change 0.0129
## Iteration in WLE/MLE estimation 4 | Maximal change 0.0019
## Iteration in WLE/MLE estimation 5 | Maximal change 3e-04
## Iteration in WLE/MLE estimation 6 | Maximal change 0
## ----
## WLE Reliability= 0.775
head(person_ability$theta)# Person's fit statistics
## [1] 0.9748846 0.4382049 -0.5883722 -0.5883722 2.7308978 -1.6110028
rs_personfit <- tam.personfit(rs_model)
head(rs_personfit)
## outfitPerson outfitPerson_t infitPerson infitPerson_t
## 103 1.1238577 0.3986836 1.1378898 0.4195579
## 104 0.2464984 -1.5985147 0.2544742 -1.5691550
## 105 0.2372618 -1.6819555 0.2378409 -1.6799824
## 106 1.0864254 0.3407494 1.0830306 0.3354306
## 107 0.7161310 -0.3710740 0.7779328 -0.2598945
## 108 0.1101059 -2.4034635 0.1107048 -2.3940575
imod1 <- TAM::IRT.informationCurves( rs_model, theta=seq(-5,5,len=100) )
plot(imod1)