Item difficulties from score-to-measure table |
' This is Visual Basic Code
' This is Visual Basic Code
Option Explicit
Public Sub main()
' solving non-linear equations by targeted trial-and-error
' Example using Knox Cube Test data
' in this example, arrays start at 0
Dim maxi&, maxn&
maxi& = 14 ' 14 items
maxn& = 14 ' scores are in range 0 to 14
ReDim r#(maxn&) ' scores
ReDim b#(maxn&) ' measures for scores
ReDim d#(maxi&) ' target items
' list of scores
r(0) = 0.25 ' this was the extreme score adjustment
r(1) = 1
r(2) = 2
r(3) = 3
r(4) = 4
r(5) = 5
r(6) = 6
r(7) = 7
r(8) = 8
r(9) = 9
r(10) = 10
r(11) = 11
r(12) = 12
r(13) = 13
r(14) = 13.75
' list of measures
b(0) = -6.66
b(1) = -5.3
b(2) = -4.35
b(3) = -3.64
b(4) = -2.97
b(5) = -2.26
b(6) = -1.39
b(7) = -0.26
b(8) = 0.94
b(9) = 1.96
b(10) = 2.88
b(11) = 3.76
b(12) = 4.65
b(13) = 5.73
b(14) = 7.15
' size of estimation adjustment
Dim diff#
diff# = 0.1 ' too big or too small and this process fails
' tweaking this value may give slightly better, or hugely worse, results
ReDim scoren#(maxn) ' expected scores based on current set of item difficulties
Dim oldsqrdiff# ' sum of squared differences from previous iteration
Dim newsqrdiff# ' sum of squared differences for this iteration
Dim sumn#(2) ' 0,1,2 = 3 squared differences for tweaking current item
Dim dhold# ' holding current item
Dim i&, n&, k&, j& ' indexes into arrays
oldsqrdiff# = 9999 ' big starting value
newsqrdiff = 9998 ' big, but slightly smaller starting value
While newsqrdiff < oldsqrdiff ' continue iterating while squared difference reduces
oldsqrdiff = newsqrdiff ' save current difference
newsqrdiff = 0 ' reset new difference
For i = 1 To maxi& ' loop down the items
dhold = d(i) ' hold the current item
For k = 0 To 2 ' try 3 different item values
d(i) = dhold + (k - 1) * diff#
sumn(k) = 0 ' squared difference for this target item value
For n = 0 To maxn& ' loop through all the scores
scoren(n) = 0 ' expected score
For j = 1 To maxi ' loop through all the items
scoren(n) = scoren(n) + 1# / (1# + Exp(d(j) - b(n))) ' sum the expected scores
Next j
sumn(k) = sumn(k) + (scoren(n) - r(n)) ^ 2 ' accumulate squared differences between
' expected and observed scores
Next n ' next score
Next k ' next target item value
If sumn(0) < sumn(1) And sumn(0) < sumn(2) Then ' is target value k=0 the lowest?
d(i) = dhold - diff# ' yes: revise target item value
newsqrdiff = sumn(0) ' save differences in case this is the last score
ElseIf sumn(2) < sumn(1) And sumn(2) < sumn(0) Then ' is target value k=2 the lowest?
d(i) = dhold + diff#
newsqrdiff = sumn(2)
Else ' no change - k=1, the original d(i) is good
d(i) = dhold
newsqrdiff = sumn(1)
End If
Next i ' next target item
Debug.Print oldsqrdiff, newsqrdiff ' display squared differences for confirmation
Wend
For n = 0 To maxn
Debug.Print n, r(n), scoren(n), r(n) - scoren(n) ' list of scores and differences
Next n
For i = 1 To maxi
Debug.Print i, d(i) ' list of item difficulties
Next i
Stop
End Sub
Iteration report for KCT data:
Previous iteration | This iteration |
9998 83.3772167769053
83.3772167769053 82.8586294323071
.......
7.18316390024933E-03 7.08576670997411E-03
7.08576670997411E-03 7.08576670997411E-03
List of observed scores, expected scores, differences
0 | 0.25 0.29 -0.04 |
1 | 1 0.99 0.01 |
2 | 2 2.00 0.00 |
3 | 3 3.02 -0.02 |
4 | 4 4.03 -0.03 |
5 | 5 5.00 0.00 |
6 | 6 5.97 0.03 |
7 | 7 6.99 0.01 |
8 | 8 8.01 -0.01 |
9 | 9 8.99 0.01 |
10 | 10 9.98 0.02 |
11 | 11 10.99 0.01 |
12 | 12 11.98 0.02 |
13 | 13 12.99 0.01 |
14 | 13.75 13.69 0.06 |
List of item difficulties (item order does not matter)
Estimate Actual
10 5.0 4.80
12 4.9 4.80
14 4.5 4.80
8 3.0 3.37
6 2.9 2.24
4 1.7 1.95
2 0.6 .79
9 -1.1 -1.57
3 -2.9 -2.35
7 -3.1 -3.38
13 -3.5 -3.38
1 -3.8 -3.83
5 -4.1 -3.83
11 -4.1 -4.40
Help for Winsteps Rasch Measurement and Rasch Analysis Software: www.winsteps.com. Author: John Michael Linacre
Facets Rasch measurement software.
Buy for $149. & site licenses.
Freeware student/evaluation Minifac download Winsteps Rasch measurement software. Buy for $149. & site licenses. Freeware student/evaluation Ministep download |
---|
Forum: | Rasch Measurement Forum to discuss any Rasch-related topic |
---|
Questions, Suggestions? Want to update Winsteps or Facets? Please email Mike Linacre, author of Winsteps mike@winsteps.com |
---|
State-of-the-art : single-user and site licenses : free student/evaluation versions : download immediately : instructional PDFs : user forum : assistance by email : bugs fixed fast : free update eligibility : backwards compatible : money back if not satisfied Rasch, Winsteps, Facets online Tutorials |
---|
Coming Rasch-related Events | |
---|---|
May 17 - June 21, 2024, Fri.-Fri. | On-line workshop: Rasch Measurement - Core Topics (E. Smith, Winsteps), www.statistics.com |
June 12 - 14, 2024, Wed.-Fri. | 1st Scandinavian Applied Measurement Conference, Kristianstad University, Kristianstad, Sweden http://www.hkr.se/samc2024 |
June 21 - July 19, 2024, Fri.-Fri. | On-line workshop: Rasch Measurement - Further Topics (E. Smith, Winsteps), www.statistics.com |
Aug. 5 - Aug. 7, 2024, Mon.-Wed. | 2024 Inaugural Conference of the Society for the Study of Measurement (Berkeley, CA), Call for Proposals |
Aug. 9 - Sept. 6, 2024, Fri.-Fri. | On-line workshop: Many-Facet Rasch Measurement (E. Smith, Facets), www.statistics.com |
Oct. 4 - Nov. 8, 2024, Fri.-Fri. | On-line workshop: Rasch Measurement - Core Topics (E. Smith, Winsteps), www.statistics.com |
Jan. 17 - Feb. 21, 2025, Fri.-Fri. | On-line workshop: Rasch Measurement - Core Topics (E. Smith, Winsteps), www.statistics.com |
May 16 - June 20, 2025, Fri.-Fri. | On-line workshop: Rasch Measurement - Core Topics (E. Smith, Winsteps), www.statistics.com |
June 20 - July 18, 2025, Fri.-Fri. | On-line workshop: Rasch Measurement - Further Topics (E. Smith, Facets), www.statistics.com |
Oct. 3 - Nov. 7, 2025, Fri.-Fri. | On-line workshop: Rasch Measurement - Core Topics (E. Smith, Winsteps), www.statistics.com |
Our current URL is www.winsteps.com
Winsteps® is a registered trademark