For dichotomies see www.rasch.org/rmt/rmt102t.htm
Once item and step difficulties have been calibrated, we can administer some or all of the calibrated items to further examinees and measure them:
1) Collect responses by person n to the desired subset of L calibrated polytomous or dichotomous items.
Person n has a raw score of R. RMin is the minimum possible score on these items, RMax the maximum possible.
If R = RMin then set R = RMin + 0.3
If R = RMax, then set R = RMax - 0.3
2) Each item i has a calibration Di, and each step j a calibration Fj, in user-scaled units. If not already in logits, convert these to logits.
3) The average item difficulty of person n's L items is

4) The initial estimate of person n's ability M can be any finite value. Convenient ones are the mean item difficulty, a previous ability estimate, or

5) Compute expected score and variance for M. The categories for item i of difficulty D i are numbered b,..,t. Fb=0, and the other Fk are the Rasch-Andrich step thresholds. The denominator is the sum of the numerators for all categories, so that the sum of the probabilities across all categories is 1:

Expected Score = 

where e = 2.7183
For "Partial Credit", replace Fk by Fik, or replace j(M - Di) - ΣFk by jM - ΣDik, and replace h(M - Di) - ΣFk by hM - ΣDik, with the same subscript ranges as above.
Dichotomous items are exactly the same as Partial Credit items with only two categories. Dik=Di. Fik=0.
6) Obtain a better estimate M' of the measure M:
![]()
7) Stop the iterative process when the change per iteration is less than .01 logits, i.e., if |M'-M|<.01, and go to 8.
Set the measure estimate, M, to M', but do not change the estimate by more than one logit per iteration, i.e., M = max(min(M+1,M'),M-1)
Go back to (5).
8) Set M=M' and report this final ability estimate with standard
error = 1/sqrt(Variance). Convert measure and standard error to user-scaled units.
"Variance" is the Fisher statistical information in the observations = Test information function
John Michael Linacre
with typesetting assistance from Stacie Hudgens
Estimating measures with known polytomous item difficulties.Linacre J.M. Rasch Measurement Transactions, 1998, 12:2 p. 638.
Visual Basic Code to do the above and more ...
' for the person
Dim ability!, outfitmeansquare!, infitmeansquare!
ability = 2.34 ' logit estimate of ability
' for the items
Dim itemcount&
itemcount = 50 ' the number of items
ReDim itemdifficulty!(itemcount), expectation!(itemcount), variance!(itemcount)
itemdifficulty(1) = 1.23 ' in logits
' all the other items
itemdifficulty(itemcount) = 3.45
' for the ratings
Dim bottom&
bottom& = 1 ' the score for your lowest level
' responses by this person in observedrating&()
ReDim observedrating&(itemcount), standardizedresidual!(itemcount)
Dim stepdifficulty!(5) ' for 5 levels = categories from 0 to 4
stepdifficulty(1) = -3 ' from bottom category to 2nd categgor
stepdifficulty(2) = -1 ' your values go here
stepdifficulty(3) = 1
stepdifficulty(4) = 3 ' step difficulty into top level
Dim item&, logit!, cat&, normalizer!, currentlogit!
Dim value!, expect!, sumsqu!
For item = 1 To itemcount
logit! = ability - itemdifficulty(item)
' compute the category probabilities
' and rating expectation
normalizer = 1
expect = 0
sumsqu = 0
currentlogit = 0
For cat = 1 To 4
currentlogit = currentlogit + logit - stepdifficulty(cat)
value! = Exp(currentlogit)
normalizer = normalizer + value
expect = expect + cat * value
sumsqu = sumsqu + cat * cat * value
Next cat
' expected rating on the item
expect = expect / normalizer
expectation(item) = expect + bottom ' matches observed rating
' model variance on the item
variance(item) = sumsqu / normalizer - expect ^ 2
Next item
' we now have the expected ratings for the 5 items and their model variances
' the observed ratings are rating&(50)
Dim infitmeansquaredivisor!, residual!
outfitmeansquare = 0
infitmeansquare = 0
infitmeansquaredivisor = 0
For item = 1 To itemcount
residual = observedrating&(item) - expectation(item)
standardizedresidual!(item) = residual / Sqr(variance(item))
If standardizedresidual(item) > 2 Then
Stop
' unexpectedly high rating
ElseIf standardizedresidual(item) < 2 Then
' unexpectedly low rating
End If
outfitmeansquare = outfitmeansquare + standardizedresidual(item) ^ 2
infitmeansquare = infitmeansquare + residual ^ 2
infitmeansquaredivisor = infitmeansquaredivisor + variance(item)
Next item
' fit for the person
outfitmeansquare = outfitmeansquare / itemcount
infitmeansquare = infitmeansquare / infitmeansquaredivisor
' if outfitmeansquare or infitmeansquare are > 1.5 there is noticeable noisy misfit.
' and similarly for each item across the persons
The URL of this page is www.rasch.org/rmt/rmt122q.htm
Website: www.rasch.org/rmt/contents.htm