from lib.irt.item_response_function import ItemResponseFunction # otherwise known as the Test Characteristic Curve (TCC) class TestResponseFunction(): def __init__(self, irt_model): self.irt_model = irt_model self.irf = ItemResponseFunction(irt_model) # determins the probably of an inidividual # at a certain theta (ability level) would get a sum of questions correct # detailed further on page 166, equation 3 here: # https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5978482/pdf/10.1177_0146621615613308.pdf def calculate(self, items, **kwargs): sum = 0 for item in items: result = self.irf.calculate(b_param=item.b_param, theta=kwargs['theta']) sum += result return sum