Calculating the ability and Next item by simply inputting the item parameter matrix

93 views
Skip to first unread message

Irshad Mujawar

unread,
May 18, 2015, 8:57:42 AM5/18/15
to mirt-p...@googlegroups.com
Hello Phil,


For ability and next item estimation "fscores" and  "mirtCAT" use mirt object as one of the  inputs where as "thetaEst" and "nextItem" function from the catR package use mainly the item parameter matrix, model and method for calculating the ability and estimation of next item.


Here is the example:

In the CatR package ability estimation function uses following inputs to calculate the ability

thetaEst(it, x, model = NULL, D = 1, method = "BM", priorDist = "norm",
  priorPar
= c(0, 1), range = c(-4, 4), parInt = c(-4, 4, 33))


inputs' description:

it  - item parameter matrix
x - response vector
model - IRT model
D- model constant 
methos- ability estimation method
priorDist - prior distribution of ability theta
priorPar - prior parameter of the ability distribution
range- the range in which you want the ability values as outpus.
parInt - parameters of integration for "EAP" method.




While experimenting I realized that you don't need all the slots for calculating the ability using "fscores" function.

for e.g.

 mod <- mirt(Science,1)
Iteration: 48, Log-Lik: -1608.870, Max-Change: 0.00009
> fscores(mod, response.pattern = c(1,1,1,2))
     
Comfort Work Future Benefit        F1     SE_F1
[1,]       1    1      1       2 -2.402056 0.5986545


I set almost all the instances of mod@Data slot to NULL except @Data$mins, I got the same results.


mod@Data$data <-NULL
mod@Data$grsm
.block <-NULL
mod@Data$rsm
.block<- NULL
mod@Data$group
<-NULL
mod@Data$groupNames
<-NULL
mod@Data$ngroups
<-NULL
mod@Data$N
<-NULL
#mod@Data$mins <-NULL
mod@Data$nitems
<-NULL
mod@Data$tabdata
<-NULL
mod@Data$model
<-NULL
mod@Data$tabdatalong
<-NULL
mod@Data$fulldata
<-NULL


mod@Data$Freq
<-NULL
mod@Data$K
<-NULL




fscores
(mod, response.pattern = c(1,1,1,2))
                    F1     SE_F1
[1,] 1 1 1 2 -2.402056 0.5986545


As one can see I got the same results.



This and  the newly introduced "generate.mirt_object" function in mirtCAT package which only accepts only item parameter matrix and item type, and generates the whole mirt object made me think, is there any possibility to use instead of using  in mirt_object as the inputs to "fscores" function same as the "thetaEst" function's inputs(item parameter matrix)?

Also In the formula of the ability estimation method only the item parameters are required.

Or can we delete the slots from mirt_object before passing to the "fscores" function? If yes, how?

My thinking is right? Or am I missing something?


Thanking you,
Irshad

Phil Chalmers

unread,
May 18, 2015, 1:04:36 PM5/18/15
to Irshad Mujawar, mirt-package
This seems a bit hacky, all you really need is fscores() given a response.pattern input for the mirtCAT objects to work. That being said, you really shouldn't be using that either because in the Person ReferenceClass object an 'Update.thetas()' method exists. Version 0.5 contains an example of this in the findNextItem() help file (reference class objects are mutable, so running Update.thetas() will actually modify the person object directly..... so it doesn't work exactly the same as typical R code). 

Phil

--
You received this message because you are subscribed to the Google Groups "mirt-package" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mirt-package...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Irshad Mujawar

unread,
May 19, 2015, 7:32:01 AM5/19/15
to mirt-p...@googlegroups.com, irshadmuj...@gmail.com
Phil, thank you so much for your reply.


On Monday, May 18, 2015 at 10:34:36 PM UTC+5:30, Phil Chalmers wrote:
This seems a bit hacky, all you really need is fscores() given a response.pattern input for the mirtCAT objects to work.

Sorry to ask you again, but I did not understand  part below. will you please rephrase it?

Phil Chalmers

unread,
May 19, 2015, 7:38:34 AM5/19/15
to Irshad Mujawar, mirt-package
Check the example in ?findNextItem, and use str() to inspect how the objects in the design change (in particular, the 'person' object).

Phil
Reply all
Reply to author
Forward
0 new messages