###install.packages("Gifi")
###install.packages("MPsychoR")
###install.packages("mirt")
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.4.1
## Warning: package 'ggplot2' was built under R version 4.4.1
## Warning: package 'tibble' was built under R version 4.4.1
## Warning: package 'tidyr' was built under R version 4.4.1
## Warning: package 'readr' was built under R version 4.4.1
## Warning: package 'purrr' was built under R version 4.4.1
## Warning: package 'dplyr' was built under R version 4.4.1
## Warning: package 'stringr' was built under R version 4.4.1
## Warning: package 'forcats' was built under R version 4.4.1
## Warning: package 'lubridate' was built under R version 4.4.1
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.1     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.1
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(eRm)
## Warning: package 'eRm' was built under R version 4.4.1
library(infer)
## Warning: package 'infer' was built under R version 4.4.1
library(ggplot2)
library(car)
## Warning: package 'car' was built under R version 4.4.1
## Loading required package: carData
## Warning: package 'carData' was built under R version 4.4.1
## 
## Attaching package: 'car'
## 
## The following object is masked from 'package:dplyr':
## 
##     recode
## 
## The following object is masked from 'package:purrr':
## 
##     some
library(Gifi)
## Warning: package 'Gifi' was built under R version 4.4.1
library(MPsychoR)
library(mirt)
## Warning: package 'mirt' was built under R version 4.4.1
## Loading required package: stats4
## Loading required package: lattice
## 
## Attaching package: 'mirt'
## 
## The following objects are masked from 'package:eRm':
## 
##     itemfit, personfit
retail_labels_clean <- read.csv("retail_labels_clean.csv")
retail_sub <- subset(retail_labels_clean, select = -c(ID, Position, Age, Gender, Marital))
summary(retail_sub)
##       q01            q02             q03             q04             q05       
##  Min.   :1.00   Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000  
##  1st Qu.:1.00   1st Qu.:1.000   1st Qu.:1.000   1st Qu.:1.000   1st Qu.:1.000  
##  Median :1.00   Median :2.000   Median :1.000   Median :1.000   Median :1.000  
##  Mean   :1.35   Mean   :1.669   Mean   :1.275   Mean   :1.163   Mean   :1.161  
##  3rd Qu.:2.00   3rd Qu.:2.000   3rd Qu.:2.000   3rd Qu.:1.000   3rd Qu.:1.000  
##  Max.   :2.00   Max.   :2.000   Max.   :2.000   Max.   :2.000   Max.   :2.000  
##       q06             q07             q08             q09       
##  Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000  
##  1st Qu.:1.000   1st Qu.:1.000   1st Qu.:1.000   1st Qu.:1.000  
##  Median :1.000   Median :2.000   Median :2.000   Median :1.000  
##  Mean   :1.432   Mean   :1.548   Mean   :1.575   Mean   :1.369  
##  3rd Qu.:2.000   3rd Qu.:2.000   3rd Qu.:2.000   3rd Qu.:2.000  
##  Max.   :2.000   Max.   :2.000   Max.   :2.000   Max.   :2.000  
##       q10             q11             q12             q13       
##  Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000  
##  1st Qu.:1.000   1st Qu.:2.000   1st Qu.:1.000   1st Qu.:1.000  
##  Median :2.000   Median :2.000   Median :1.000   Median :2.000  
##  Mean   :1.629   Mean   :1.846   Mean   :1.454   Mean   :1.547  
##  3rd Qu.:2.000   3rd Qu.:2.000   3rd Qu.:2.000   3rd Qu.:2.000  
##  Max.   :2.000   Max.   :2.000   Max.   :2.000   Max.   :2.000  
##       q14             q15             q16             q17       
##  Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000  
##  1st Qu.:1.000   1st Qu.:1.000   1st Qu.:1.000   1st Qu.:2.000  
##  Median :1.000   Median :1.000   Median :1.000   Median :2.000  
##  Mean   :1.401   Mean   :1.198   Mean   :1.425   Mean   :1.842  
##  3rd Qu.:2.000   3rd Qu.:1.000   3rd Qu.:2.000   3rd Qu.:2.000  
##  Max.   :2.000   Max.   :2.000   Max.   :2.000   Max.   :2.000  
##       q18             q19             q20             q21       
##  Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000  
##  1st Qu.:1.000   1st Qu.:1.000   1st Qu.:1.000   1st Qu.:2.000  
##  Median :1.000   Median :1.000   Median :2.000   Median :2.000  
##  Mean   :1.478   Mean   :1.253   Mean   :1.695   Mean   :1.856  
##  3rd Qu.:2.000   3rd Qu.:2.000   3rd Qu.:2.000   3rd Qu.:2.000  
##  Max.   :2.000   Max.   :2.000   Max.   :2.000   Max.   :2.000  
##       q22             q23             q24             q25             q26      
##  Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.00  
##  1st Qu.:1.000   1st Qu.:1.000   1st Qu.:1.000   1st Qu.:2.000   1st Qu.:1.00  
##  Median :2.000   Median :1.000   Median :2.000   Median :2.000   Median :1.00  
##  Mean   :1.525   Mean   :1.333   Mean   :1.523   Mean   :1.863   Mean   :1.48  
##  3rd Qu.:2.000   3rd Qu.:2.000   3rd Qu.:2.000   3rd Qu.:2.000   3rd Qu.:2.00  
##  Max.   :2.000   Max.   :2.000   Max.   :2.000   Max.   :2.000   Max.   :2.00  
##       q27             q28             q29             q30       
##  Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000  
##  1st Qu.:1.000   1st Qu.:1.000   1st Qu.:1.000   1st Qu.:1.000  
##  Median :1.000   Median :1.000   Median :1.000   Median :2.000  
##  Mean   :1.093   Mean   :1.377   Mean   :1.466   Mean   :1.742  
##  3rd Qu.:1.000   3rd Qu.:2.000   3rd Qu.:2.000   3rd Qu.:2.000  
##  Max.   :2.000   Max.   :2.000   Max.   :2.000   Max.   :2.000  
##       q31             q32             q33             q34       
##  Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000  
##  1st Qu.:1.000   1st Qu.:1.000   1st Qu.:1.000   1st Qu.:1.000  
##  Median :1.000   Median :1.000   Median :1.000   Median :2.000  
##  Mean   :1.055   Mean   :1.153   Mean   :1.126   Mean   :1.666  
##  3rd Qu.:1.000   3rd Qu.:1.000   3rd Qu.:1.000   3rd Qu.:2.000  
##  Max.   :2.000   Max.   :2.000   Max.   :2.000   Max.   :2.000  
##       q35             q36             q37             q38       
##  Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000  
##  1st Qu.:1.000   1st Qu.:1.000   1st Qu.:1.000   1st Qu.:2.000  
##  Median :1.000   Median :2.000   Median :1.000   Median :2.000  
##  Mean   :1.198   Mean   :1.694   Mean   :1.211   Mean   :1.815  
##  3rd Qu.:1.000   3rd Qu.:2.000   3rd Qu.:1.000   3rd Qu.:2.000  
##  Max.   :2.000   Max.   :2.000   Max.   :2.000   Max.   :2.000  
##       q39             q40             q41             q42       
##  Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000  
##  1st Qu.:1.000   1st Qu.:1.000   1st Qu.:1.000   1st Qu.:1.000  
##  Median :2.000   Median :1.000   Median :1.000   Median :1.000  
##  Mean   :1.742   Mean   :1.329   Mean   :1.366   Mean   :1.285  
##  3rd Qu.:2.000   3rd Qu.:2.000   3rd Qu.:2.000   3rd Qu.:2.000  
##  Max.   :2.000   Max.   :2.000   Max.   :2.000   Max.   :2.000  
##       q43             q44             q45             q46       
##  Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000  
##  1st Qu.:2.000   1st Qu.:1.000   1st Qu.:1.000   1st Qu.:1.000  
##  Median :2.000   Median :2.000   Median :1.000   Median :1.000  
##  Mean   :1.854   Mean   :1.694   Mean   :1.213   Mean   :1.296  
##  3rd Qu.:2.000   3rd Qu.:2.000   3rd Qu.:1.000   3rd Qu.:2.000  
##  Max.   :2.000   Max.   :2.000   Max.   :2.000   Max.   :2.000  
##       q47             q48             q49             q50       
##  Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000  
##  1st Qu.:1.000   1st Qu.:1.000   1st Qu.:1.000   1st Qu.:1.000  
##  Median :1.000   Median :1.000   Median :2.000   Median :1.000  
##  Mean   :1.489   Mean   :1.313   Mean   :1.623   Mean   :1.237  
##  3rd Qu.:2.000   3rd Qu.:2.000   3rd Qu.:2.000   3rd Qu.:1.000  
##  Max.   :2.000   Max.   :2.000   Max.   :2.000   Max.   :2.000  
##       q51             q52            q53             q54            q55       
##  Min.   :1.000   Min.   :1.00   Min.   :1.000   Min.   :1.00   Min.   :1.000  
##  1st Qu.:1.000   1st Qu.:1.00   1st Qu.:1.000   1st Qu.:1.00   1st Qu.:1.000  
##  Median :1.000   Median :1.00   Median :2.000   Median :1.00   Median :2.000  
##  Mean   :1.207   Mean   :1.27   Mean   :1.516   Mean   :1.29   Mean   :1.728  
##  3rd Qu.:1.000   3rd Qu.:2.00   3rd Qu.:2.000   3rd Qu.:2.00   3rd Qu.:2.000  
##  Max.   :2.000   Max.   :2.00   Max.   :2.000   Max.   :2.00   Max.   :2.000  
##       q56             q57             q58             q59       
##  Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000  
##  1st Qu.:1.000   1st Qu.:1.000   1st Qu.:1.000   1st Qu.:1.000  
##  Median :1.000   Median :1.000   Median :1.000   Median :2.000  
##  Mean   :1.246   Mean   :1.402   Mean   :1.347   Mean   :1.603  
##  3rd Qu.:1.000   3rd Qu.:2.000   3rd Qu.:2.000   3rd Qu.:2.000  
##  Max.   :2.000   Max.   :2.000   Max.   :2.000   Max.   :2.000  
##       q60       
##  Min.   :1.000  
##  1st Qu.:1.000  
##  Median :1.000  
##  Mean   :1.457  
##  3rd Qu.:2.000  
##  Max.   :2.000
prinzar <- princals(retail_sub)
plot(prinzar, main = "Retail Salesperson Loadings")

### An item factor analysis test to determine if a 2-factor model is superior to a one-factor model. In this case, it is not. 
fitifa1 <- mirt(retail_sub, 1, verbose = FALSE)
fitifa2 <- mirt(retail_sub, 2, verbose = FALSE, TOL = 0.001)
anova (fitifa1, fitifa2, verbose = FALSE)
##              AIC    SABIC       HQ      BIC    logLik       X2 df p
## fitifa1 341869.1 342269.8 342143.2 342651.1 -170814.5              
## fitifa2 334032.8 334630.5 334441.6 335199.3 -166837.4 7954.327 59 0
### Note that when you run the Rasch Model in eRm you do not get the item difficulty parameter for the first item. 
fitrasch1 <- RM(retail_sub)
## Warning: 
## The following items have no 0-responses:
## q01 q02 q03 q04 q05 q06 q07 q08 q09 q10 q11 q12 q13 q14 q15 q16 q17 q18 q19 q20 q21 q22 q23 q24 q25 q26 q27 q28 q29 q30 q31 q32 q33 q34 q35 q36 q37 q38 q39 q40 q41 q42 q43 q44 q45 q46 q47 q48 q49 q50 q51 q52 q53 q54 q55 q56 q57 q58 q59 q60
## Responses are shifted such that lowest category is 0.
fitrasch1
## 
## Results of RM estimation: 
## 
## Call:  RM(X = retail_sub) 
## 
## Conditional log-likelihood: -159238.8 
## Number of iterations: 21 
## Number of parameters: 59 
## 
## Item (Category) Difficulty Parameters (eta):
##                  q02        q03        q04        q05        q06         q07
## Estimate -0.95859562 0.74562586 1.42121919 1.43612710 0.03760367 -0.43990586
## Std.Err   0.03015636 0.03167038 0.03812364 0.03831056 0.02864922  0.02854284
##                  q08        q09         q10         q11         q12         q13
## Estimate -0.55177162 0.30585511 -0.77850285 -1.97692039 -0.05236516 -0.43332127
## Std.Err   0.02873696 0.02937977  0.02938829  0.03909749  0.02851330  0.02853399
##                 q14        q15        q16         q17         q18        q19
## Estimate 0.16831095 1.17846060 0.06420157 -1.94451902 -0.15061755 0.85625377
## Std.Err  0.02894393 0.03536187 0.02869992  0.03867949  0.02842647 0.03247198
##                 q20         q21        q22       q23         q24       q25
## Estimate -1.0818503 -2.05705140 -0.3431384 0.4638737 -0.33496595 -2.115905
## Std.Err   0.0308134  0.04017345  0.0284421 0.0300427  0.02843642  0.041003
##                  q26        q27        q28         q29         q30        q31
## Estimate -0.15959773 2.06277327 0.26933208 -0.10320536 -1.32136361 2.63089029
## Std.Err   0.02842172 0.04820033 0.02925135  0.02846025  0.03240657 0.06119803
##                 q32       q33         q34        q35         q36        q37
## Estimate 1.49572963 1.7179645 -0.94572855 1.17591458 -1.07512271 1.09637490
## Std.Err  0.03907918 0.0422497  0.03009399 0.03533562  0.03077474 0.03454467
##                  q38         q39        q40        q41        q42         q43
## Estimate -1.75244994 -1.32136362 0.48313280 0.31810373 0.69129810 -2.04393128
## Std.Err   0.03639665  0.03240665 0.03013553 0.02942489 0.03131089  0.03999314
##                  q44        q45        q46         q47        q48         q49
## Estimate -1.07800382 1.08789141 0.63817411 -0.19630850 0.55861749 -0.75584661
## Std.Err   0.03079134 0.03446327 0.03098067  0.02840788 0.03052526  0.02930754
##                 q50        q51        q52         q53        q54        q55
## Estimate 0.94827938 1.12207348 0.77018940 -0.30801797 0.67050207 -1.2459344
## Std.Err  0.03321149 0.03479432 0.03184029  0.02842092 0.03117918  0.0318588
##                q56        q57        q58         q59         q60
## Estimate 0.8940875 0.16322975 0.40320156 -0.66895362 -0.06796626
## Std.Err  0.0327679 0.02893028 0.02976737  0.02903009  0.02849516
### Beta is the easiness parameter; eta is the difficulty parameter. By running this command you get the easiness parameter for the 1st item. 
round (fitrasch1$betapar, 2)
## beta q01 beta q02 beta q03 beta q04 beta q05 beta q06 beta q07 beta q08 
##    -0.39     0.96    -0.75    -1.42    -1.44    -0.04     0.44     0.55 
## beta q09 beta q10 beta q11 beta q12 beta q13 beta q14 beta q15 beta q16 
##    -0.31     0.78     1.98     0.05     0.43    -0.17    -1.18    -0.06 
## beta q17 beta q18 beta q19 beta q20 beta q21 beta q22 beta q23 beta q24 
##     1.94     0.15    -0.86     1.08     2.06     0.34    -0.46     0.33 
## beta q25 beta q26 beta q27 beta q28 beta q29 beta q30 beta q31 beta q32 
##     2.12     0.16    -2.06    -0.27     0.10     1.32    -2.63    -1.50 
## beta q33 beta q34 beta q35 beta q36 beta q37 beta q38 beta q39 beta q40 
##    -1.72     0.95    -1.18     1.08    -1.10     1.75     1.32    -0.48 
## beta q41 beta q42 beta q43 beta q44 beta q45 beta q46 beta q47 beta q48 
##    -0.32    -0.69     2.04     1.08    -1.09    -0.64     0.20    -0.56 
## beta q49 beta q50 beta q51 beta q52 beta q53 beta q54 beta q55 beta q56 
##     0.76    -0.95    -1.12    -0.77     0.31    -0.67     1.25    -0.89 
## beta q57 beta q58 beta q59 beta q60 
##    -0.16    -0.40     0.67     0.07
### By negating beta, you get eta, the difficulty parameter.Q31 was the easiest; now it is the most difficult. 
round (sort (-fitrasch1$betapar), 2)
## beta q25 beta q21 beta q43 beta q11 beta q17 beta q38 beta q39 beta q30 
##    -2.12    -2.06    -2.04    -1.98    -1.94    -1.75    -1.32    -1.32 
## beta q55 beta q20 beta q44 beta q36 beta q02 beta q34 beta q10 beta q49 
##    -1.25    -1.08    -1.08    -1.08    -0.96    -0.95    -0.78    -0.76 
## beta q59 beta q08 beta q07 beta q13 beta q22 beta q24 beta q53 beta q47 
##    -0.67    -0.55    -0.44    -0.43    -0.34    -0.33    -0.31    -0.20 
## beta q26 beta q18 beta q29 beta q60 beta q12 beta q06 beta q16 beta q57 
##    -0.16    -0.15    -0.10    -0.07    -0.05     0.04     0.06     0.16 
## beta q14 beta q28 beta q09 beta q41 beta q01 beta q58 beta q23 beta q40 
##     0.17     0.27     0.31     0.32     0.39     0.40     0.46     0.48 
## beta q48 beta q46 beta q54 beta q42 beta q03 beta q52 beta q19 beta q56 
##     0.56     0.64     0.67     0.69     0.75     0.77     0.86     0.89 
## beta q50 beta q45 beta q37 beta q51 beta q35 beta q15 beta q04 beta q05 
##     0.95     1.09     1.10     1.12     1.18     1.18     1.42     1.44 
## beta q32 beta q33 beta q27 beta q31 
##     1.50     1.72     2.06     2.63
### By negating beta, you get eta, the difficulty parameter. This confirms that; q31 is again the easiest.
round (sort (fitrasch1$betapar), 2)
## beta q31 beta q27 beta q33 beta q32 beta q05 beta q04 beta q15 beta q35 
##    -2.63    -2.06    -1.72    -1.50    -1.44    -1.42    -1.18    -1.18 
## beta q51 beta q37 beta q45 beta q50 beta q56 beta q19 beta q52 beta q03 
##    -1.12    -1.10    -1.09    -0.95    -0.89    -0.86    -0.77    -0.75 
## beta q42 beta q54 beta q46 beta q48 beta q40 beta q23 beta q58 beta q01 
##    -0.69    -0.67    -0.64    -0.56    -0.48    -0.46    -0.40    -0.39 
## beta q41 beta q09 beta q28 beta q14 beta q57 beta q16 beta q06 beta q12 
##    -0.32    -0.31    -0.27    -0.17    -0.16    -0.06    -0.04     0.05 
## beta q60 beta q29 beta q18 beta q26 beta q47 beta q53 beta q24 beta q22 
##     0.07     0.10     0.15     0.16     0.20     0.31     0.33     0.34 
## beta q13 beta q07 beta q08 beta q59 beta q49 beta q10 beta q34 beta q02 
##     0.43     0.44     0.55     0.67     0.76     0.78     0.95     0.96 
## beta q36 beta q44 beta q20 beta q55 beta q30 beta q39 beta q38 beta q17 
##     1.08     1.08     1.08     1.25     1.32     1.32     1.75     1.94 
## beta q11 beta q43 beta q21 beta q25 
##     1.98     2.04     2.06     2.12
table <-table(retail_labels_clean$Position)
print(table)
## 
##    1    2    3 
##  126 2419 2455
### Test to see if theta is in the original .csv file. A visual check shows it is not. 
write.csv(retail_labels_clean, file = "retail_labels_clean_theta1.csv")
### This is an eRm test to determine if the model is invariant across subgroups of the data. Apparently this test cannot be run with dichotomous data. It did not work for Marital or Gender. 
age <- factor(retail_labels_clean$Age <=median(retail_labels_clean$Age),
                  labels = c("old", "young"))
fitLR <- LRtest(fitrasch1, age)
fitLR
## 
## Andersen LR-test: 
## LR-value: 893.364 
## Chi-square df: 59 
## p-value:  0
### A p-value <.o5 indicates a misfitting item. I pasted the table in Excel, sorted it, and found 41 of the 60 questions misfit the model. Unfortunately, this test does not indicate whether they overfit or underfit. 
Waldtest (fitrasch1, age)
## 
## Wald test on item level (z-values):
## 
##          z-statistic p-value
## beta q01      -1.658   0.097
## beta q02       4.294   0.000
## beta q03      -2.872   0.004
## beta q04      -2.455   0.014
## beta q05      -4.505   0.000
## beta q06      -3.604   0.000
## beta q07       3.767   0.000
## beta q08       4.234   0.000
## beta q09      -2.658   0.008
## beta q10      -1.183   0.237
## beta q11       0.903   0.367
## beta q12       1.424   0.154
## beta q13       0.828   0.408
## beta q14       0.605   0.545
## beta q15      -1.550   0.121
## beta q16      -1.360   0.174
## beta q17       3.327   0.001
## beta q18      -0.319   0.750
## beta q19       0.338   0.735
## beta q20       8.060   0.000
## beta q21       4.275   0.000
## beta q22      -1.961   0.050
## beta q23      -4.132   0.000
## beta q24       3.502   0.000
## beta q25       1.415   0.157
## beta q26       4.432   0.000
## beta q27      -6.080   0.000
## beta q28      12.843   0.000
## beta q29       2.651   0.008
## beta q30      -0.250   0.803
## beta q31      -1.317   0.188
## beta q32      -4.110   0.000
## beta q33      -2.068   0.039
## beta q34       1.363   0.173
## beta q35      -3.557   0.000
## beta q36      -4.389   0.000
## beta q37       1.046   0.296
## beta q38       3.399   0.001
## beta q39       2.921   0.003
## beta q40      -2.198   0.028
## beta q41      -3.561   0.000
## beta q42      -1.180   0.238
## beta q43       8.739   0.000
## beta q44       5.505   0.000
## beta q45      -2.488   0.013
## beta q46      -7.587   0.000
## beta q47       1.461   0.144
## beta q48       3.792   0.000
## beta q49       2.304   0.021
## beta q50       2.855   0.004
## beta q51      -3.257   0.001
## beta q52      -3.722   0.000
## beta q53      -2.977   0.003
## beta q54      -2.160   0.031
## beta q55      -3.551   0.000
## beta q56      -3.262   0.001
## beta q57       4.640   0.000
## beta q58       0.121   0.904
## beta q59       0.543   0.587
## beta q60      -4.907   0.000
### Because there are so many questions, the plot is illegible. If the cirdle falls outside the confidence interval, the question misfits the model. 
plotGOF(fitLR,ctrline  = list (col = "red"), conf = list())

###fitrasch2 <- RM(retail_sub[, -8, -10, -60])
###LRtest (fitrasch2, timecat)
###fitLR2 <- LRtest (fitrasch2, timecat)
###plotGOF(fitLR2,ctrline  = list (col = "red"), conf = list())
###set.seed(123)
###T1 <-NPtest (as.matrix (zarsub[, -5]), n = 1000, method  = "T1")
###T1
###T11 <- NPtest (as.matrix(zarsub[, -5]), n = 1000, method = "T11")
###T11
###round (sort(-fitrasch2$betapar), 2)
plotjointICC(fitrasch1, xlab = "Salesperson Trait", 
             main = "ICCs Salesperson Items")

retailppar <- person.parameter (fitrasch1)
### Another test to see if theta is in the original .csv file. A visual check shows it is not. 
write.csv(retail_labels_clean, file = "retail_labels_clean_theta2.csv")
###theta by the categorical variable for the anova. How did this run when the lower case position is not defined anywhere?
###retail_labels_clean$theta <- retailppar$theta.table[,1]
###summary(aov(theta ~ (position), data = retail_labels_clean))
### Another test to see if theta is in the original .csv file. A visual check shows it is. Lines 172 - 173 are  the lines of code that put theta in the original .csv file. 
write.csv(retail_labels_clean, file = "retail_labels_clean_theta3.csv")
###theta by the categorical variable for the anova. This makes no sense b/c age is defined much differently than position. The numbers should not be the same. 
retail_labels_clean$theta <- retailppar$theta.table[,1]
summary(aov(theta ~ (age), data = retail_labels_clean))
##               Df Sum Sq Mean Sq F value Pr(>F)  
## age            1    1.2  1.1660    6.44 0.0112 *
## Residuals   4998  904.9  0.1811                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
###Did the above code (lines 185 - 6 put theta in a second time? NO!
write.csv(retail_labels_clean, file = "retail_labels_clean_theta4.csv")
### I must have inserted this from Stephanie's code. It is not in Mair's code. His code stops w/ the anova. 
table2 <-table(retail_labels_clean$theta)
print(table2)
## 
##   -3.44747588566253   -3.11980075143936   -2.85656621808688   -2.63416044131419 
##                   1                   3                   2                   1 
##   -2.43977845405754   -2.26591822665424   -2.10774013307202    -1.9619024407679 
##                   6                   4                   1                   4 
##   -1.82600276207099   -1.69826248678195   -1.57732826072416   -1.46214264792893 
##                   5                  11                   9                   8 
##   -1.35185986776204   -1.24579021020521   -1.14336200050765   -1.04409387705323 
##                  20                  24                  39                  54 
##  -0.947575160270132  -0.853450352632893  -0.761408109711786  -0.671172552486115 
##                  82                 121                 135                 226 
##  -0.582496252482705  -0.495154817073304  -0.408942000052153  -0.323665942126303 
##                 275                 353                 398                 433 
##  -0.239145877717765  -0.155209492355136 -0.0716909873100361  0.0115710816177732 
##                 431                 466                 424                 365 
##  0.0947361357359735   0.177963408268438   0.261414575538559   0.345256117173346 
##                 328                 227                 186                 138 
##   0.429661522288487   0.514813604794329    0.60090693528572   0.688150863261307 
##                  82                  52                  34                  24 
##   0.776773721751716   0.867027484607103   0.959193695014196    1.05359110720818 
##                  11                   6                   3                   2 
##    1.15058425226138    1.35411908026931    1.69230117719751    1.81719152747493 
##                   1                   1                   1                   1 
##     2.6122193783764    2.83268365690288 
##                   1                   1