forked from rstudio/bookdown-demo
-
Notifications
You must be signed in to change notification settings - Fork 10
/
02-DichotomousRaschModel.tex
2220 lines (1923 loc) · 100 KB
/
02-DichotomousRaschModel.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
% Options for packages loaded elsewhere
\PassOptionsToPackage{unicode}{hyperref}
\PassOptionsToPackage{hyphens}{url}
%
\documentclass[
]{article}
\usepackage{amsmath,amssymb}
\usepackage{lmodern}
\usepackage{iftex}
\ifPDFTeX
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{textcomp} % provide euro and other symbols
\else % if luatex or xetex
\usepackage{unicode-math}
\defaultfontfeatures{Scale=MatchLowercase}
\defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1}
\fi
% Use upquote if available, for straight quotes in verbatim environments
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
\IfFileExists{microtype.sty}{% use microtype if available
\usepackage[]{microtype}
\UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
}{}
\makeatletter
\@ifundefined{KOMAClassName}{% if non-KOMA class
\IfFileExists{parskip.sty}{%
\usepackage{parskip}
}{% else
\setlength{\parindent}{0pt}
\setlength{\parskip}{6pt plus 2pt minus 1pt}}
}{% if KOMA class
\KOMAoptions{parskip=half}}
\makeatother
\usepackage{xcolor}
\IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available
\IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}}
\hypersetup{
pdftitle={Rasch Measurement Theory Analysis in R: Illustrations and Practical Guidance for Researchers and Practitioners},
hidelinks,
pdfcreator={LaTeX via pandoc}}
\urlstyle{same} % disable monospaced font for URLs
\usepackage[margin=1in]{geometry}
\usepackage{color}
\usepackage{fancyvrb}
\newcommand{\VerbBar}{|}
\newcommand{\VERB}{\Verb[commandchars=\\\{\}]}
\DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}}
% Add ',fontsize=\small' for more characters per line
\usepackage{framed}
\definecolor{shadecolor}{RGB}{248,248,248}
\newenvironment{Shaded}{\begin{snugshade}}{\end{snugshade}}
\newcommand{\AlertTok}[1]{\textcolor[rgb]{0.94,0.16,0.16}{#1}}
\newcommand{\AnnotationTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}}
\newcommand{\AttributeTok}[1]{\textcolor[rgb]{0.77,0.63,0.00}{#1}}
\newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.00,0.00,0.81}{#1}}
\newcommand{\BuiltInTok}[1]{#1}
\newcommand{\CharTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}}
\newcommand{\CommentTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textit{#1}}}
\newcommand{\CommentVarTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}}
\newcommand{\ConstantTok}[1]{\textcolor[rgb]{0.00,0.00,0.00}{#1}}
\newcommand{\ControlFlowTok}[1]{\textcolor[rgb]{0.13,0.29,0.53}{\textbf{#1}}}
\newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.13,0.29,0.53}{#1}}
\newcommand{\DecValTok}[1]{\textcolor[rgb]{0.00,0.00,0.81}{#1}}
\newcommand{\DocumentationTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}}
\newcommand{\ErrorTok}[1]{\textcolor[rgb]{0.64,0.00,0.00}{\textbf{#1}}}
\newcommand{\ExtensionTok}[1]{#1}
\newcommand{\FloatTok}[1]{\textcolor[rgb]{0.00,0.00,0.81}{#1}}
\newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.00,0.00,0.00}{#1}}
\newcommand{\ImportTok}[1]{#1}
\newcommand{\InformationTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}}
\newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.13,0.29,0.53}{\textbf{#1}}}
\newcommand{\NormalTok}[1]{#1}
\newcommand{\OperatorTok}[1]{\textcolor[rgb]{0.81,0.36,0.00}{\textbf{#1}}}
\newcommand{\OtherTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{#1}}
\newcommand{\PreprocessorTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textit{#1}}}
\newcommand{\RegionMarkerTok}[1]{#1}
\newcommand{\SpecialCharTok}[1]{\textcolor[rgb]{0.00,0.00,0.00}{#1}}
\newcommand{\SpecialStringTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}}
\newcommand{\StringTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}}
\newcommand{\VariableTok}[1]{\textcolor[rgb]{0.00,0.00,0.00}{#1}}
\newcommand{\VerbatimStringTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}}
\newcommand{\WarningTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}}
\usepackage{longtable,booktabs,array}
\usepackage{calc} % for calculating minipage widths
% Correct order of tables after \paragraph or \subparagraph
\usepackage{etoolbox}
\makeatletter
\patchcmd\longtable{\par}{\if@noskipsec\mbox{}\fi\par}{}{}
\makeatother
% Allow footnotes in longtable head/foot
\IfFileExists{footnotehyper.sty}{\usepackage{footnotehyper}}{\usepackage{footnote}}
\makesavenoteenv{longtable}
\usepackage{graphicx}
\makeatletter
\def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi}
\def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi}
\makeatother
% Scale images if necessary, so that they will not overflow the page
% margins by default, and it is still possible to overwrite the defaults
% using explicit options in \includegraphics[width, height, ...]{}
\setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio}
% Set default figure placement to htbp
\makeatletter
\def\fps@figure{htbp}
\makeatother
\setlength{\emergencystretch}{3em} % prevent overfull lines
\providecommand{\tightlist}{%
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
\setcounter{secnumdepth}{-\maxdimen} % remove section numbering
\ifLuaTeX
\usepackage{selnolig} % disable illegal ligatures
\fi
\title{Rasch Measurement Theory Analysis in R: Illustrations and
Practical Guidance for Researchers and Practitioners}
\author{}
\date{\vspace{-2.5em}}
\begin{document}
\maketitle
\hypertarget{Dich_Rasch_model}{%
\section{Dichotomous Rasch Model}\label{Dich_Rasch_model}}
This chapter provides a basic overview of the dichotomous Rasch model,
along with guidance for analyzing data with the dichotomous Rasch model
using R. We use data from a transitive reasoning assessment presented by
{[}@Intro\_nonparametric{]} to illustrate the analysis using Conditional
Maximum Likelihood Estimation (CMLE) with the Extended Rasch Modeling
``eRm'' package {[}@eRm{]}. Then, we illustrate the application of the
dichotomous Rasch model using Marginal Maximum Likelihood Estimation
(MMLE) and Joint Maximum Likelihood Estimation (JMLE) with the Test
Analysis Modules (``TAM'') package {[}@TAM{]}. After the analyses are
complete, we present an example description of the results. The chapter
concludes with a challenge exercise and resources for further study.
\textbf{\emph{Overview of the Dichotomous Rasch Model}}
The \emph{dichotomous Rasch model} {[}@Rasch\_ori{]} is the simplest
model in the Rasch family of models {[}@Overview\_RM{]}. It was designed
for use with ordinal data that are scored in two categories (usually 0
or 1). The dichotomous Rasch model uses sum scores from these ordinal
responses to calculate interval-level estimates that represent person
locations (i.e., person ability or person achievement) and item
locations (i.e., the difficulty to provide a correct or positive
response) on a linear scale that represents the latent variable (the
log-odds or ``logit'' scale). The difference between person and item
locations can be used to calculate the probability for a correct or
positive response (\(x = 1\)), rather than an incorrect or negative
response (\(x = 0\)).
The equation for the dichotomous Rasch model can be expressed in
log-odds form as follows:
\begin{equation}\tag{2.1}\ln_{}{}\left[\frac{\phi_{n i 1}}{\phi_{n i 0}}\right]=\theta_{n}-\delta_{i}\end{equation}
The Rasch model predicts the probability that person \(n\) on item \(i\)
provides a correct or positive (\(x = 1\)), rather than an incorrect or
negative (\(x = 0\)) response, given person locations (i.e., ability,
achievement, \(\theta_n\)) and item locations (i.e., difficulty,
\(\delta_i\)), as expressed on the logit scale.
\textbf{\emph{Rasch Model Requirements}}
Estimates that are calculated using the dichotomous Rasch model can only
be meaningfully interpreted if there is evidence that the data
approximate the requirements for the model. Key among dichotomous Rasch
model requirements are the following:
\begin{itemize}
\tightlist
\item
\emph{Unidimensionality}: A single latent variable is sufficient to
explain most of the variation in item responses
\item
\emph{Local independence}: After controlling for the latent variable,
there is no substantial association between the responses to
individual items
\item
\emph{Person-invariant item estimates}: Item locations do not depend
on (i.e., are independent from) the persons whose responses are used
to estimate them
\item
\emph{Item-invariant person estimates}: Person locations do not depend
on (i.e., are independent from) the items used to estimate them
\end{itemize}
Evidence that data approximate these requirements provides support for
the meaningful interpretation and use of item and person estimates on
the logit scale as indicators of item and person locations on the latent
variable. In practice, many analysts evaluate some or all of these
requirements using various indicators of model-data fit for the facets
in a Rasch model (in this case, items and persons). In the current
chapter, we provide some basic code for calculating some popular
residual-based fit indices for items and persons. We explore issues
related to model requirements and evaluating model-data fit in more
detail in \protect\hyperlink{MD_fit}{Chapter 3}.
\hypertarget{example-data-transitive-reasoning-test}{%
\subsection{Example Data: Transitive Reasoning
Test}\label{example-data-transitive-reasoning-test}}
In this chapter, we will be working with data from a transitive
reasoning test designed to measure students' ability to reason about the
relationships among physical objects. The data were collected from a
one-on-one interactive assessment in which an experimenter presented
students with a set of objects, such as sticks, balls, cubes, and discs.
The following description is given in @Intro\_nonparametric, pp.~31-32:
\begin{quote}
The items for transitive reasoning had the following structure. A
typical item used three sticks, here denoted A, B, and C, of different
length, denoted Y, such that YA \textless{} YB \textless{} YC. The
actual test taking had the form of a conversation between experimenter
and child in which the sticks were identified by their colors rather
than letters. First, sticks A and B were presented to a child, who was
allowed to pick them up and compare their lengths, for example, by
placing them next to each other on a table.
\end{quote}
\begin{quote}
Next, sticks B and C were presented and compared. Then all three sticks
were displayed in a random order at large mutual distances so that their
length differences were imperceptible, and the child was asked to infer
the relation between sticks A and C from his or her knowledge of the
relationship in the other two pairs.
\end{quote}
The transitive reasoning items varied in terms of the property students
were asked to reason about (length, weight, area). The tasks also varied
in terms of the number of physical objects that students were asked to
reason about, and whether the comparison tasks involved equalities,
inequalities, or a mixture of equalities and inequalities. The
characteristics of the transitive reasoning data are summarized in the
following table:
\begin{longtable}[]{@{}lllll@{}}
\toprule
Task & Property & Format & Objects & Measures \\
\midrule
\endhead
1 & Length & YA \textgreater{} YB \textgreater{} YC & Sticks & 12, 11.5,
11 (cm) \\
2 & Length & YA = YB = YC = YD & Tubes & 12 (cm) \\
3 & Weight & YA \textgreater{} YB \textgreater{} YC & Tubes & 45, 25, 18
(g) \\
4 & Weight & YA = YB = YC = YD & Cubes & 65 (g) \\
5 & Weight & YA \textless{} YB \textless{} YC & Balls & 40, 50, 70
(g) \\
6 & Area & YA \textgreater{} YB\textgreater{} YC & Discs & 2.5, 7, 6.5
(diameter; cm) \\
7 & Length & YA \textgreater{} YB = YC & Sticks & 28.5, 27.5, 27.5
(cm) \\
8 & Weight & YA \textgreater YB = YC & Balls & 65, 40, 40 (g) \\
9 & Length & YA = YB = YC = YD & Sticks & 12.5, 12.5, 13, 13 (cm) \\
10 & Weight & YA = YB \textless{} YC = YD & Balls & 60, 60, 100, 100
(g) \\
\bottomrule
\end{longtable}
\hypertarget{dichotomous-rasch-model-analysis-with-cmle-in-erm}{%
\subsection{Dichotomous Rasch Model Analysis with CMLE in
eRm}\label{dichotomous-rasch-model-analysis-with-cmle-in-erm}}
In the next section, we provide a step-by-step demonstration of a
dichotomous Rasch model analysis using the \emph{Extended Rasch
Modeling}, or \emph{eRm} package {[}@eRm{]}, which uses Conditional
Maximum Likelihood Estimation (CMLE). We encourage readers to use the
example data set that is provided in the online supplement to conduct
the analysis along with us.
\textbf{\emph{Prepare for the Analyses}}
We selected eRm for the first illustration in the current chapter
because it includes functions for applying the dichotomous Rasch model
that are relatively straightforward to use and interpret. Please note
that the ``eRm'' package uses the Conditional Maximum Likelihood
Estimation (CMLE) method to estimate Rasch model parameters. As a
result, estimates from the eRm package are not directly comparable to
estimates obtained using other estimation methods. Later in this
chapter, we have included illustrations of dichotomous Rasch model
analyses with the \emph{Test Analysis Modules} or TAM package {[}@TAM{]}
with Marginal Maximum Likelihood Estimation (MMLE). We also provide an
illustration with TAM using Joint Maximum Likelihood Estimation (JMLE),
which produces comparable estimates to some popular standalone Rasch
software programs, such as Winsteps {[}@Winsteps{]} and Facets
{[}@Facets{]}.
To get started with the eRm package, install and load it into your R
environment using the following code.
\begin{Shaded}
\begin{Highlighting}[]
\CommentTok{\#install.packages("eRm")}
\FunctionTok{library}\NormalTok{(}\StringTok{"eRm"}\NormalTok{)}
\end{Highlighting}
\end{Shaded}
Now that we have installed and loaded the package to our R session, we
are ready to import the data.
In this book, we use the function \texttt{read.csv()} to import data
that are stored using comma separated values. We encourage readers to
use their preferred method for importing data files into R or R Studio.
Please note that if you use \texttt{read.csv()} you will need to first
specify the file path to the location at which the data file is stored
on your computer or set your working directory to the folder in which
you have saved the data.
First, we will import the data using \texttt{read.csv()} and store it in
an object called \texttt{transreas}.
\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{transreas }\OtherTok{\textless{}{-}} \FunctionTok{read.csv}\NormalTok{(}\StringTok{"transreas.csv"}\NormalTok{)}
\end{Highlighting}
\end{Shaded}
Next, we will explore the data using descriptive statistics using the
\texttt{summary()} function.
\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{summary}\NormalTok{(transreas)}
\end{Highlighting}
\end{Shaded}
\begin{verbatim}
## Student Grade task_01 task_02 task_03
## Min. : 1 Min. :2.000 Min. :0.0000 Min. :0.0000 Min. :0.0000
## 1st Qu.:107 1st Qu.:3.000 1st Qu.:1.0000 1st Qu.:1.0000 1st Qu.:1.0000
## Median :213 Median :4.000 Median :1.0000 Median :1.0000 Median :1.0000
## Mean :213 Mean :4.005 Mean :0.9412 Mean :0.8094 Mean :0.8847
## 3rd Qu.:319 3rd Qu.:5.000 3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:1.0000
## Max. :425 Max. :6.000 Max. :1.0000 Max. :1.0000 Max. :1.0000
## task_04 task_05 task_06 task_07
## Min. :0.0000 Min. :0.0000 Min. :0.0000 Min. :0.0000
## 1st Qu.:1.0000 1st Qu.:1.0000 1st Qu.:1.0000 1st Qu.:1.0000
## Median :1.0000 Median :1.0000 Median :1.0000 Median :1.0000
## Mean :0.7835 Mean :0.8024 Mean :0.9741 Mean :0.8447
## 3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:1.0000
## Max. :1.0000 Max. :1.0000 Max. :1.0000 Max. :1.0000
## task_08 task_09 task_10
## Min. :0.0000 Min. :0.0000 Min. :0.00
## 1st Qu.:1.0000 1st Qu.:0.0000 1st Qu.:0.00
## Median :1.0000 Median :0.0000 Median :1.00
## Mean :0.9671 Mean :0.3012 Mean :0.52
## 3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:1.00
## Max. :1.0000 Max. :1.0000 Max. :1.00
\end{verbatim}
From the summary of \texttt{transreas}, we can see there are no missing
data. We can also get a general sense of the scales, range, and
distribution of each variable in the dataset.
Specifically, we can see that Student ID numbers range from 1 to 425,
student grade levels range from 2 to 6, and that all tasks have scores
in both of the dichotomous categories (0 and 1). We can also get a sense
for the range of item difficulty by examining the mean for each task,
which is the proportion-correct statistic (item difficulty estimate for
Classical Test Theory).
\textbf{\emph{Run the Dichotomous Rasch Model}}
To run the dichotomous Rasch Model using the eRm package, need to
isolate the item response matrix from the other variables in the data
(student IDs and grade level). To do this, we will create an object made
up of only the item responses by removing the first two variables from
the data. We will remove the descriptive variables using the
\texttt{subset()} function with the \texttt{select=} option. We will
save the response matrix in a new object called
\texttt{transreas.responses}.
\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{transreas.responses}\OtherTok{\textless{}{-}}\FunctionTok{subset}\NormalTok{(transreas,}\AttributeTok{select=}\SpecialCharTok{{-}}\FunctionTok{c}\NormalTok{(Student,Grade))}
\end{Highlighting}
\end{Shaded}
Next, we will use \texttt{summary()} to calculate descriptive statistics
for the \texttt{transreas.responses} object to check our work and ensure
that the responses are ready for analysis.
\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{summary}\NormalTok{(transreas.responses)}
\end{Highlighting}
\end{Shaded}
\begin{verbatim}
## task_01 task_02 task_03 task_04
## Min. :0.0000 Min. :0.0000 Min. :0.0000 Min. :0.0000
## 1st Qu.:1.0000 1st Qu.:1.0000 1st Qu.:1.0000 1st Qu.:1.0000
## Median :1.0000 Median :1.0000 Median :1.0000 Median :1.0000
## Mean :0.9412 Mean :0.8094 Mean :0.8847 Mean :0.7835
## 3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:1.0000
## Max. :1.0000 Max. :1.0000 Max. :1.0000 Max. :1.0000
## task_05 task_06 task_07 task_08
## Min. :0.0000 Min. :0.0000 Min. :0.0000 Min. :0.0000
## 1st Qu.:1.0000 1st Qu.:1.0000 1st Qu.:1.0000 1st Qu.:1.0000
## Median :1.0000 Median :1.0000 Median :1.0000 Median :1.0000
## Mean :0.8024 Mean :0.9741 Mean :0.8447 Mean :0.9671
## 3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:1.0000
## Max. :1.0000 Max. :1.0000 Max. :1.0000 Max. :1.0000
## task_09 task_10
## Min. :0.0000 Min. :0.00
## 1st Qu.:0.0000 1st Qu.:0.00
## Median :0.0000 Median :1.00
## Mean :0.3012 Mean :0.52
## 3rd Qu.:1.0000 3rd Qu.:1.00
## Max. :1.0000 Max. :1.00
\end{verbatim}
Now, we are ready to run the dichotomous Rasch model on the transitive
reasoning response data. We will use the \texttt{RM()} function to run
the model and store the results in an object called
\texttt{dichot.transreas}.
\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{dichot.transreas }\OtherTok{\textless{}{-}} \FunctionTok{RM}\NormalTok{(transreas.responses)}
\end{Highlighting}
\end{Shaded}
\textbf{\emph{Overall Model Summary}}
The next step is to request a summary of the model estimation results in
order to begin to understand the results from the analysis. We can do so
by applying the \texttt{summary()} function to the model object.
\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{summary}\NormalTok{(dichot.transreas)}
\end{Highlighting}
\end{Shaded}
\begin{verbatim}
##
## Results of RM estimation:
##
## Call: RM(X = transreas.responses)
##
## Conditional log-likelihood: -921.3465
## Number of iterations: 18
## Number of parameters: 9
##
## Item (Category) Difficulty Parameters (eta): with 0.95 CI:
## Estimate Std. Error lower CI upper CI
## task_02 0.258 0.133 -0.003 0.518
## task_03 -0.416 0.157 -0.723 -0.109
## task_04 0.441 0.128 0.190 0.692
## task_05 0.309 0.131 0.052 0.567
## task_06 -2.175 0.292 -2.747 -1.604
## task_07 -0.025 0.141 -0.302 0.252
## task_08 -1.909 0.262 -2.423 -1.395
## task_09 2.923 0.130 2.668 3.179
## task_10 1.836 0.115 1.610 2.062
##
## Item Easiness Parameters (beta) with 0.95 CI:
## Estimate Std. Error lower CI upper CI
## beta task_01 1.243 0.204 0.842 1.643
## beta task_02 -0.258 0.133 -0.518 0.003
## beta task_03 0.416 0.157 0.109 0.723
## beta task_04 -0.441 0.128 -0.692 -0.190
## beta task_05 -0.309 0.131 -0.567 -0.052
## beta task_06 2.175 0.292 1.604 2.747
## beta task_07 0.025 0.141 -0.252 0.302
## beta task_08 1.909 0.262 1.395 2.423
## beta task_09 -2.923 0.130 -3.179 -2.668
## beta task_10 -1.836 0.115 -2.062 -1.610
\end{verbatim}
The summary of the dichotomous Rasch model output includes the
Conditional Log-likelihood statistic, details about the number of
iterations and model parameters, and a table with item parameters, their
standard errors, and confidence intervals. It is important to note that
the item parameters included in this preliminary output are \emph{item
easiness} parameters-- \emph{not} item difficulty parameters. We will
examine item difficulty parameters in detail later in our analysis.
\textbf{\emph{Wright Map}}
A useful feature of Rasch models is that when there is acceptable fit
between the model and the data (discussed in detail in
\protect\hyperlink{MD_fit}{Chapter 3}), it is possible to visualize and
compare item and person locations on a single linear continuum.
Professor Bejamin D. Wright popularized an approach to displaying Rasch
model results on a linear continuum, and Rasch measurement researchers
across disciplines have adopted this technique. In his honor, many
researchers refer to these displays as \emph{Wright Maps.} Researchers
also refer to these displays as \emph{Variable Maps}. Please see Wilson
(2011) for a discussion of the term \emph{Wright Map}.
As the next step in our analysis, we will create a Wright Map from our
model results. We will create the plot using the function
\texttt{PlotPImap()} on the model object (\texttt{dichot.transreas}). We
will set the option for displaying threshold labels as \texttt{FALSE},
because we are working with dichotomous data. We also used the
\texttt{main.title=}option to customize the title of the plot.
\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{plotPImap}\NormalTok{(dichot.transreas, }\AttributeTok{main =} \StringTok{"Transitive Reasoning Assessment Wright Map"}\NormalTok{)}
\end{Highlighting}
\end{Shaded}
\includegraphics{02-DichotomousRaschModel_files/figure-latex/unnamed-chunk-7-1.pdf}
In this \emph{Wright Map} display, the results from the dichotomous
Rasch model analysis of the Transitive Reasoning data are summarized
graphically. The figure is organized as follows:
Starting at the bottom of the figure, the horizontal axis (labeled
\emph{Latent Dimension}) is the logit scale that represents the latent
variable. In the application of the Transitive Reasoning data, lower
numbers indicate less transitive reasoning ability, and higher numbers
indicate more transitive reasoning ability.
The central panel of the figure shows item difficulty locations on the
logit scale for the 10 transitive reasoning tasks that were included in
the analysis; the y-axis for this panel shows the item labels. By
default in eRm, the items are ordered according to their original order
in the response matrix. The items can be ordered by difficulty by adding
\texttt{sorted\ =\ TRUE} as an argument in the \texttt{plotPImap()}
call. For each item, a solid circle plotting symbol shows the location
estimate.
The upper panel of the figure shows a histogram of person (in this case,
student) location estimates on the logit scale. Small vertical lines on
the x-axis of this histogram show the points on the logit scale at which
information (variance) is maximized for the sample of persons and items
in the analysis. These lines can be omitted by adding
\texttt{irug\ =\ FALSE} as an argument in the \texttt{plotPImap()} call.
Even though it is not appropriate to fully interpret item and person
locations on the logit scale until there is evidence of acceptable
model-data fit, we recommend examining the Wright Map during the
preliminary stages of an item analysis to get a general sense of the
model results and to identify any potential scoring or data entry
errors.
A quick glance at the Wright Map suggests that, on average, the persons
(students) are located higher on the logit scale compared to the average
item (task) locations. In addition, there appears to be a relatively
wide spread of person and item locations on the logit scale, such that
the transitive reasoning test appears to be a useful tool for
identifying differences in person locations and item locations on the
latent variable. We will return to this display for more exploration
after we check for acceptable model-data fit, among other psychometric
properties.
\textbf{\emph{Item Parameters}}
As the next step in our analysis, we will examine the item parameters in
detail. The eRm package provides several options with which analysts can
find and examine item and item location parameters. For example, one way
to obtain the overall item location parameters (\(\delta\)) is to
extract the \emph{eta parameters} from the model object using the
\texttt{\$} operator. We extract these parameters, print them to the
console, and calculate summary statistics for them with the following
code.
\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{difficulty }\OtherTok{\textless{}{-}}\NormalTok{ dichot.transreas}\SpecialCharTok{$}\NormalTok{etapar}
\NormalTok{difficulty}
\end{Highlighting}
\end{Shaded}
\begin{verbatim}
## task_02 task_03 task_04 task_05 task_06 task_07
## 0.25775001 -0.41581384 0.44093780 0.30941151 -2.17531698 -0.02481129
## task_08 task_09 task_10
## -1.90884851 2.92343872 1.83581566
\end{verbatim}
Because of the nature of the estimation process used in eRm, the
item.locations object that we just created does not include the location
estimate for the first item. One can calculate the location for item 1
by subtracting the sum of the item locations from zero. In the following
code, we find the location for item 1, and then create a new object with
all 10 item locations.
\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{n.items }\OtherTok{\textless{}{-}} \FunctionTok{ncol}\NormalTok{(transreas.responses)}
\NormalTok{i1 }\OtherTok{\textless{}{-}} \DecValTok{0} \SpecialCharTok{{-}} \FunctionTok{sum}\NormalTok{(difficulty[}\DecValTok{1}\SpecialCharTok{:}\NormalTok{(n.items }\SpecialCharTok{{-}} \DecValTok{1}\NormalTok{)])}
\NormalTok{difficulty.all }\OtherTok{\textless{}{-}} \FunctionTok{c}\NormalTok{(i1, difficulty[}\FunctionTok{c}\NormalTok{(}\DecValTok{1}\SpecialCharTok{:}\NormalTok{(n.items }\SpecialCharTok{{-}} \DecValTok{1}\NormalTok{))])}
\NormalTok{difficulty.all}
\end{Highlighting}
\end{Shaded}
\begin{verbatim}
## task_02 task_03 task_04 task_05 task_06
## -1.24256308 0.25775001 -0.41581384 0.44093780 0.30941151 -2.17531698
## task_07 task_08 task_09 task_10
## -0.02481129 -1.90884851 2.92343872 1.83581566
\end{verbatim}
Alternatively, we could find the item difficulty parameters by
extracting the item \emph{easiness} parameters from the model object
(\emph{beta parameters}) and multiplying them by -1 to find item
difficulty.
\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{difficulty2 }\OtherTok{\textless{}{-}}\NormalTok{ dichot.transreas}\SpecialCharTok{$}\NormalTok{betapar }\SpecialCharTok{*} \SpecialCharTok{{-}}\DecValTok{1}
\NormalTok{difficulty2}
\end{Highlighting}
\end{Shaded}
\begin{verbatim}
## beta task_01 beta task_02 beta task_03 beta task_04 beta task_05 beta task_06
## -1.24256308 0.25775001 -0.41581384 0.44093780 0.30941151 -2.17531698
## beta task_07 beta task_08 beta task_09 beta task_10
## -0.02481129 -1.90884851 2.92343872 1.83581566
\end{verbatim}
The item difficulty parameters (\texttt{xsi}) are the item location
estimates on the logit scale that represents the latent variable.
Assuming that the responses are scored such that lower scores
(\(x = 0\)) indicate lower locations on the latent variable (e.g.,
incorrect, negative, or absent responses), \emph{lower} item estimates
on the logit scale indicate items that are \emph{more difficult} or
require persons to have relatively \emph{higher locations} on the
construct to provide a correct response. On the other hand,
\emph{higher} item estimates on the logit scale indicate items that are
\emph{easier} or require persons to have relatively \emph{lower
locations} on the construct to provide a correct response. In our
analysis, Task 9 is the most difficult item (\(\delta\) = 2.92), whereas
Task 6 is the easiest item (\(\delta\) = -2.18).
Next, we will examine item standard errors. The standard errors are
reported for all of the items as part of the beta (item easiness)
parameters.
\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{dichot.transreas}\SpecialCharTok{$}\NormalTok{se.beta}
\end{Highlighting}
\end{Shaded}
\begin{verbatim}
## [1] 0.2043488 0.1327967 0.1566695 0.1282289 0.1314316 0.2916385 0.1413876
## [8] 0.2622114 0.1302767 0.1152173
\end{verbatim}
The standard error for each item is an estimate of the precision of the
item difficulty estimates, where larger standard errors indicate
less-precise estimates. Standard errors are reported on the same logit
scale as item locations. In our analysis, the standard errors range from
0.11 for Task 9 and Task 10, which were the items with the most precise
estimates, to 0.31 for Task 6, which was the item with the least precise
estimate. These differences largely reflect differences in item
targeting to the person locations (see the Wright Map above).
Next, let's calculate descriptive statistics to better understand the
distribution of the item locations and standard errors. We will do so
using the \texttt{summary()} function and the \texttt{sd()} function.
\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{summary}\NormalTok{(difficulty.all)}
\end{Highlighting}
\end{Shaded}
\begin{verbatim}
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -2.1753 -1.0359 0.1165 0.0000 0.4081 2.9234
\end{verbatim}
\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{sd}\NormalTok{(difficulty.all)}
\end{Highlighting}
\end{Shaded}
\begin{verbatim}
## [1] 1.576441
\end{verbatim}
\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{summary}\NormalTok{(dichot.transreas}\SpecialCharTok{$}\NormalTok{se.beta)}
\end{Highlighting}
\end{Shaded}
\begin{verbatim}
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.1152 0.1306 0.1371 0.1694 0.1924 0.2916
\end{verbatim}
\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{sd}\NormalTok{(dichot.transreas}\SpecialCharTok{$}\NormalTok{se.beta)}
\end{Highlighting}
\end{Shaded}
\begin{verbatim}
## [1] 0.06206381
\end{verbatim}
We can also visualize the item difficulty estimates using a simple
histogram by using the \texttt{hist()} function. In our plot, we
specified a custom title using \texttt{main\ =} and a custom x-axis
label using \texttt{xlab\ =}:
\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{hist}\NormalTok{(difficulty.all, }\AttributeTok{main =} \StringTok{"Histogram of Item Difficulty Estimates for the }\SpecialCharTok{\textbackslash{}n}\StringTok{Transitive Reasoning Data"}\NormalTok{,}
\AttributeTok{xlab =} \StringTok{"Item Difficulty Estimates in Logits"}\NormalTok{)}
\end{Highlighting}
\end{Shaded}
\includegraphics{02-DichotomousRaschModel_files/figure-latex/unnamed-chunk-13-1.pdf}
\textbf{\emph{Item Response Functions}}
We will examine graphical displays of item difficulty using item
response functions (IRFs). With the dichotomous Rasch model, the eRm
package creates plots of the probability for a correct or positive
response (\(x = 1\)), conditional on person locations on the latent
variable. In the following code, we use \texttt{plotICC()} from eRm to
create IRF plots for the items in our analysis. We included
\texttt{ask\ =\ FALSE} in our function call to generate all of the plots
at once. For brevity, we have only included plots for the first three
items in this book. The specific items to be plotted can be controlled
by changing the items included in the \texttt{items.to.plot} object.
\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{items.to.plot }\OtherTok{\textless{}{-}} \FunctionTok{c}\NormalTok{(}\DecValTok{1}\SpecialCharTok{:}\DecValTok{3}\NormalTok{)}
\FunctionTok{plotICC}\NormalTok{(dichot.transreas, }\AttributeTok{ask =} \ConstantTok{FALSE}\NormalTok{, }\AttributeTok{item.subset =}\NormalTok{ items.to.plot)}
\end{Highlighting}
\end{Shaded}
\includegraphics{02-DichotomousRaschModel_files/figure-latex/unnamed-chunk-14-1.pdf}
This code generates IRFs for the first three items in our analysis. In
each item-specific plot, the x-axis is the logit scale that represents
the latent variable; this scale represents transitive reasoning ability
in our example. The y-axis is the probability for a correct or positive
response, conditional on person locations on the latent variable.
\textbf{\emph{Person Parameters and Item Fit}}
In the eRm package, it is necessary to calculate person parameters
\emph{before} item fit statistics can be calculated. Accordingly, we
will proceed with a brief examination of person parameters before we
conduct item fit analyses. In practice, we recommend examining item fit
before examining and interpreting item locations in detail.
\textbf{\emph{Person Parameters}}
In the following code, we use the \texttt{person.parameter()} function
to estimate student locations and save the results in an object called
\texttt{student.locations}. Then, we save the theta estimates (i.e.,
achievement estimates) in a data.frame object called
\texttt{achievement}, and add student identification numbers for
reference.
\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{student.locations }\OtherTok{\textless{}{-}} \FunctionTok{person.parameter}\NormalTok{(dichot.transreas)}
\NormalTok{achievement }\OtherTok{\textless{}{-}}\NormalTok{ student.locations}\SpecialCharTok{$}\NormalTok{theta.table}
\NormalTok{achievement}\SpecialCharTok{$}\NormalTok{id }\OtherTok{\textless{}{-}} \FunctionTok{rownames}\NormalTok{(achievement)}
\end{Highlighting}
\end{Shaded}
The estimation procedure in eRm does not directly produce parameter
estimates for persons with extreme scores. In our example, 51 students
earned extreme scores on the transitive reasoning assessment, so
achievement estimates are reported for the remaining 374 students with
non-extreme scores. The achievement estimates for the 51 students with
extreme scores are extrapolated, and standard errors are not calculated.
We can add standard errors for the student achievement estimates to our
\texttt{achievement} object as follows.
\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{se }\OtherTok{\textless{}{-}} \FunctionTok{as.data.frame}\NormalTok{(student.locations}\SpecialCharTok{$}\NormalTok{se.theta}\SpecialCharTok{$}\NormalTok{NAgroup1)}
\NormalTok{se}\SpecialCharTok{$}\NormalTok{id }\OtherTok{\textless{}{-}} \FunctionTok{rownames}\NormalTok{(se)}
\FunctionTok{names}\NormalTok{(se) }\OtherTok{\textless{}{-}} \FunctionTok{c}\NormalTok{(}\StringTok{"person\_se"}\NormalTok{, }\StringTok{"id"}\NormalTok{)}
\NormalTok{achievement.with.se }\OtherTok{\textless{}{-}} \FunctionTok{merge}\NormalTok{(achievement, se, }\AttributeTok{by =} \StringTok{"id"}\NormalTok{ )}
\end{Highlighting}
\end{Shaded}
As a final step in examining the person parameters, we will calculate
descriptive statistics and use a histogram to examine the distribution
of student locations on the logit scale.
\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{summary}\NormalTok{(achievement)}
\end{Highlighting}
\end{Shaded}
\begin{verbatim}
## Person Parameter NAgroup Interpolated id
## Min. :-2.916 Min. :1 Mode :logical Length:425
## 1st Qu.: 1.160 1st Qu.:1 FALSE:374 Class :character
## Median : 1.932 Median :1 TRUE :51 Mode :character
## Mean : 2.010 Mean :1
## 3rd Qu.: 3.028 3rd Qu.:1
## Max. : 4.201 Max. :1
\end{verbatim}
\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{hist}\NormalTok{(achievement}\SpecialCharTok{$}\StringTok{\textasciigrave{}}\AttributeTok{Person Parameter}\StringTok{\textasciigrave{}}\NormalTok{, }\AttributeTok{main =} \StringTok{"Histogram of Person Achievement Estimates }\SpecialCharTok{\textbackslash{}n}\StringTok{for the Transitive Reasoning Data"}\NormalTok{,}
\AttributeTok{xlab =} \StringTok{"Person Achievement Estimates in Logits"}\NormalTok{)}
\end{Highlighting}
\end{Shaded}
\includegraphics{02-DichotomousRaschModel_files/figure-latex/unnamed-chunk-17-1.pdf}
\textbf{\emph{Item Fit}}
Next, we will conduct a brief exploration of item fit statistics. We
explore item fit in more detail in \protect\hyperlink{MD_fit}{Chapter
3}.
To calculate numeric item fit statistics, we will use the function
\texttt{itemfit()} from eRm on the person parameter object
(\texttt{person.locations.estimate}). This function produces several
item fit statistics, including infit mean square error (\(MSE\)), outfit
\(MSE\), and standardized infit and outfit \(MSE\) statistics. We will
store the item fit results in a new object called \texttt{item.fit}, and
then format this object as a data.frame object for easy manipulation and
exporting.
\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{student.locations }\OtherTok{\textless{}{-}} \FunctionTok{person.parameter}\NormalTok{(dichot.transreas)}
\NormalTok{item.fit }\OtherTok{\textless{}{-}} \FunctionTok{itemfit}\NormalTok{(student.locations)}
\NormalTok{item.fit}
\end{Highlighting}
\end{Shaded}
\begin{verbatim}
##
## Itemfit Statistics:
## Chisq df p-value Outfit MSQ Infit MSQ Outfit t Infit t Discrim
## task_01 245.550 373 1.000 0.657 0.761 -1.327 -1.622 0.455
## task_02 421.904 373 0.041 1.128 1.087 1.071 1.187 0.054
## task_03 218.155 373 1.000 0.583 0.745 -2.742 -2.688 0.583
## task_04 478.894 373 0.000 1.280 1.158 2.442 2.268 -0.014
## task_05 346.015 373 0.839 0.925 0.991 -0.625 -0.109 0.184
## task_06 65.613 373 1.000 0.175 0.611 -2.789 -1.781 0.620
## task_07 244.494 373 1.000 0.654 0.804 -2.768 -2.475 0.493
## task_08 125.478 373 1.000 0.336 0.687 -2.205 -1.569 0.563
## task_09 394.207 373 0.216 1.054 0.904 0.462 -1.727 0.022
## task_10 326.534 373 0.960 0.873 0.898 -1.822 -2.408 0.226
\end{verbatim}
Next, we will request a summary of the numeric fit statistics using the
\texttt{summary()} function.
\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{summary}\NormalTok{(item.fit}\SpecialCharTok{$}\NormalTok{i.infitMSQ)}
\end{Highlighting}
\end{Shaded}
\begin{verbatim}
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.6114 0.7490 0.8506 0.8645 0.9689 1.1575
\end{verbatim}
\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{summary}\NormalTok{(item.fit}\SpecialCharTok{$}\NormalTok{i.infitZ)}
\end{Highlighting}
\end{Shaded}
\begin{verbatim}
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -2.6885 -2.2509 -1.6743 -1.0924 -0.4742 2.2680
\end{verbatim}
\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{summary}\NormalTok{(item.fit}\SpecialCharTok{$}\NormalTok{i.outfitMSQ)}
\end{Highlighting}
\end{Shaded}
\begin{verbatim}
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.1754 0.6009 0.7648 0.7665 1.0218 1.2805
\end{verbatim}
\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{summary}\NormalTok{(item.fit}\SpecialCharTok{$}\NormalTok{i.outfitZ)}
\end{Highlighting}
\end{Shaded}
\begin{verbatim}
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -2.7885 -2.6080 -1.5748 -1.0304 0.1904 2.4418
\end{verbatim}
The \texttt{item.fit} object includes mean square error (\(MSE\)) and
standardized (\(Z\)) versions of the outfit and infit statistics for
each item included in the analysis.These statistics are summaries of the
residuals associated with each item. When data fit Rasch model
expectations, the \(MSE\) versions of outfit and infit are expected to
be close to 1.00 and the standardized versions of outfit and infit are
expected to be around 0.00. Please refer to
\protect\hyperlink{MD_fit}{Chapter 3} for a more-detailed discussion of
item fit.
As a final step in examining item fit, we will calculate the
\emph{reliability of separation statistic for items} using the following
procedure.
\begin{Shaded}
\begin{Highlighting}[]
\CommentTok{\# Get Item scores}
\NormalTok{ItemScores }\OtherTok{\textless{}{-}} \FunctionTok{colSums}\NormalTok{(transreas.responses)}
\CommentTok{\# Get Item Standard Deviation (SD)}
\NormalTok{ItemSD }\OtherTok{\textless{}{-}} \FunctionTok{apply}\NormalTok{(transreas.responses,}\DecValTok{2}\NormalTok{,sd)}
\CommentTok{\# Calculate the Standard Error (SE) for the Item}
\NormalTok{ItemSE }\OtherTok{\textless{}{-}}\NormalTok{ ItemSD}\SpecialCharTok{/}\FunctionTok{sqrt}\NormalTok{(}\FunctionTok{length}\NormalTok{(ItemSD))}
\CommentTok{\# Calculate the Observed Variance (also known as Total Person Variability or Squared Standard Deviation)}
\NormalTok{SSD.ItemScores }\OtherTok{\textless{}{-}} \FunctionTok{var}\NormalTok{(ItemScores)}
\CommentTok{\# Calculate the Mean Square Measurement error (also known as Model Error variance)}
\NormalTok{Item.MSE }\OtherTok{\textless{}{-}} \FunctionTok{sum}\NormalTok{((ItemSE)}\SpecialCharTok{\^{}}\DecValTok{2}\NormalTok{) }\SpecialCharTok{/} \FunctionTok{length}\NormalTok{(ItemSE)}
\CommentTok{\# Calculate the Item Separation Reliability}
\NormalTok{item.separation.reliability }\OtherTok{\textless{}{-}}\NormalTok{ (SSD.ItemScores}\SpecialCharTok{{-}}\NormalTok{Item.MSE) }\SpecialCharTok{/}\NormalTok{ SSD.ItemScores}
\NormalTok{item.separation.reliability}
\end{Highlighting}
\end{Shaded}
\begin{verbatim}
## [1] 0.9999984
\end{verbatim}
Briefly, the \emph{item reliability of separation statistic} describes
the degree to which items have unique locations on the logit-scale.
Please refer to \protect\hyperlink{MD_fit}{Chapter 3} for more details
about item reliability analysis.
\textbf{\emph{Person Fit}}
Next, we will conduct a brief exploration of person fit. To calculate
numeric person fit statistics, we will use the function
\texttt{personfit()} from eRm on the person parameter object
(\texttt{person.locations.estimate}). This function produces several
person fit statistics, including infit mean square error (\(MSE\)),
outfit \(MSE\), and standardized infit and outfit \(MSE\) statistics. We
will store the person fit results in a new object called
\texttt{person.fit}, and then format this object as a data.frame for
easy manipulation and exporting. Then, we request summaries of the infit
\(MSE\) and outfit \(MSE\) statistics using \texttt{summary()}.
\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{person.fit }\OtherTok{\textless{}{-}} \FunctionTok{personfit}\NormalTok{(student.locations)}
\FunctionTok{summary}\NormalTok{(person.fit}\SpecialCharTok{$}\NormalTok{p.infitMSQ)}
\end{Highlighting}
\end{Shaded}
\begin{verbatim}
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.4060 0.4910 0.7487 0.9102 1.1740 2.2483
\end{verbatim}
\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{summary}\NormalTok{(person.fit}\SpecialCharTok{$}\NormalTok{p.outfitMSQ)}
\end{Highlighting}
\end{Shaded}
\begin{verbatim}
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.1723 0.2399 0.5468 0.7665 0.9592 7.3060
\end{verbatim}
We can calculate the \emph{reliability of person separation statistic}
using eRm. This value is interpreted similarly to Cronbach's alpha
{[}@Cronbach{]} when there is good fit between the data and the Rasch
model {[}@Person\_Sep{]}. However, it is important to note that these
coefficients are not equivalent because alpha is based on an assumption
of linearity and the Rasch reliabilty of separation statistic is based
on a linear, interval-level scale when there is evidence of good
model-data fit (discussed in \protect\hyperlink{MD_fit}{Chapter 3}) is
observed.
\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{person\_rel }\OtherTok{\textless{}{-}} \FunctionTok{SepRel}\NormalTok{(student.locations)}
\NormalTok{person\_rel}\SpecialCharTok{$}\NormalTok{sep.rel}