douglasrizzo / catsim

Computerized Adaptive Testing Simulator
GNU Lesser General Public License v3.0
124 stars 35 forks source link

Unexpected behaviour from MaxInfoSelector #23

Closed frankier closed 3 years ago

frankier commented 3 years ago

I am a bit confused by the current behaviour of MaxInfoSelector. I would expect it to select the item with the maximum fisher information given the current ability estimate, however it seems to instead select based upon where individual item response functions reach their maximum, ignoring the differences in scale on the y-axis between them . See e.g.: Screenshot from 2021-05-24 22-38-31

(Figure taked from A Visual Guide to IRT https://www.metheval.uni-jena.de/irt/VisualIRT.pdf )

Imagine there is a small distance on the x-axis between the peaks of the blue and the black curve. If I have an ability estimate at the peak of the black curve I would expect the next item chosen by MaxInfoSelector to be the blue one since it still has higher information even a bit away from its peak.

Basically, the behaviour I want is equivalent to RandomesqueSelector(bin_size=1) (which is what I've now moved onto --- temporarily at least) but the behaviour I actually get for the 2PL model is the same as UrrySelector.

What is the specification for MaxInfoSelector? The citation given is Lion 1977, but in that article there are no equations. If the current behaviour is the intended behaviour, maybe the documentation could make it clear since it's a bit surprising based on the current name/doc to me.

douglasrizzo commented 3 years ago

Thanks for catching that. The behavior you want is what the selector should do, but is not doing. I believe the commit above as well as 9d26df24c934c29221b49874f41f128992a42591 should solve that.