24 lines
695 B
Python
24 lines
695 B
Python
import numpy as np
|
|
|
|
from girth import ability_mle
|
|
|
|
class Rasch:
|
|
|
|
def __init__(self, model_params, kwargs):
|
|
self.model_params = model_params
|
|
self.b_param = kwargs['b_param']
|
|
self.e = 2.71828
|
|
self.theta = kwargs['theta']
|
|
|
|
def result(self):
|
|
return 0.0
|
|
|
|
@classmethod
|
|
def ability_estimate(self, items) -> float:
|
|
# we'll likely have to change this to something more robust
|
|
# when we get into more complex response types
|
|
responses = np.array([[int(item.response)] for item in items])
|
|
difficulty = np.array([item.b_param for item in items])
|
|
discrimination = np.linspace(1, 1, len(difficulty))
|
|
return ability_mle(responses, difficulty, discrimination)
|