working TCC (Test response funciton)
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
from models.three_parameter_logitistc import ThreeParameterLogistic
|
||||
from lib.irt.models.three_parameter_logistic import ThreeParameterLogistic
|
||||
|
||||
class ItemResponseFunction():
|
||||
def __init__(self, irt_model):
|
||||
@ -6,7 +6,7 @@ class ItemResponseFunction():
|
||||
|
||||
def calculate(self, **kwargs):
|
||||
if self.model_data.model == '3PL':
|
||||
return ThreeParameterLogistic.new(self.model_data, kwargs).result
|
||||
return ThreeParameterLogistic(self.model_data, kwargs).result()
|
||||
else:
|
||||
# potentially error out
|
||||
return None
|
||||
|
@ -7,7 +7,6 @@ class ThreeParameterLogistic:
|
||||
self.theta = kwargs['theta']
|
||||
|
||||
def result(self):
|
||||
a = self.model_params.a
|
||||
c = self.model_params.c
|
||||
|
||||
return c + (1 - c) * (1 / (1 + e**(-a * (self.theta - self.b_param))))
|
||||
a = self.model_params.a_param
|
||||
c = self.model_params.c_param
|
||||
return c + (1 - c) * (1 / (1 + self.e**(-a * (self.theta - self.b_param))))
|
||||
|
@ -1,12 +1,17 @@
|
||||
from lib.irt.item_response_function import ItemResponseFunction
|
||||
|
||||
# otherwise known as the Test Characteristic Curve (TCC)
|
||||
class TestResponseFunction():
|
||||
def __init__(self, irf):
|
||||
self.irf = irf
|
||||
def __init__(self, irt_model):
|
||||
self.irt_model = irt_model
|
||||
self.irf = ItemResponseFunction(irt_model)
|
||||
|
||||
def calculate(self, items, **kwargs):
|
||||
result = 0
|
||||
sum = 0
|
||||
|
||||
for item in items:
|
||||
result += irf.calculate(b_param=item.b_param, theta=kwargs['theta'])
|
||||
result = self.irf.calculate(b_param=item.b_param, theta=kwargs['theta'])
|
||||
item.irf = result
|
||||
sum += item.irf
|
||||
|
||||
return result
|
||||
return sum
|
||||
|
Reference in New Issue
Block a user