From 2984f18f9f86d18f9f8edf40f47569381f927d03 Mon Sep 17 00:00:00 2001 From: brmnjsh Date: Thu, 26 Oct 2023 15:09:58 +0000 Subject: [PATCH] linking white paper and lower case irt model selection --- app/lib/irt/item_information_function.py | 2 +- app/lib/irt/item_response_function.py | 2 +- app/lib/irt/models/rasch.py | 3 +++ app/services/form_generation_service.py | 2 +- 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/lib/irt/item_information_function.py b/app/lib/irt/item_information_function.py index 6d1f509..acd1b3e 100644 --- a/app/lib/irt/item_information_function.py +++ b/app/lib/irt/item_information_function.py @@ -21,7 +21,7 @@ class ItemInformationFunction(): return (self.model_data.a_param * q * (p - self.model_data.c_param)**2) / (p * ( (1 - self.model_data.c_param)**2)) - elif self.model_data.model == 'RASCH': + elif self.model_data.model == 'rasch': p = Rasch(self.model_data, kwargs).result() q = 1 - p return p * q diff --git a/app/lib/irt/item_response_function.py b/app/lib/irt/item_response_function.py index 9b5999d..81a20f1 100644 --- a/app/lib/irt/item_response_function.py +++ b/app/lib/irt/item_response_function.py @@ -11,7 +11,7 @@ class ItemResponseFunction(): def calculate(self, **kwargs): if self.model_data.model == '3PL': return ThreeParameterLogistic(self.model_data, kwargs).result() - elif self.model_data.model == 'RASCH': + elif self.model_data.model == 'rasch': return Rasch(self.model_data, kwargs).result() else: raise ItemGenerationError("irt model not supported or provided") diff --git a/app/lib/irt/models/rasch.py b/app/lib/irt/models/rasch.py index 33690e5..96090b5 100644 --- a/app/lib/irt/models/rasch.py +++ b/app/lib/irt/models/rasch.py @@ -5,6 +5,9 @@ from lib.irt.models.base import * class Rasch(Base): def result(self): + # contains the primary Rasch function, determining the probably of an inidividual + # that an individual at a certain theta would get a particular question correct + # https://edres.org/irt/baker/chapter6.pdf return (1 / (1 + self.e(-1 * (self.theta - self.b_param)))) @classmethod diff --git a/app/services/form_generation_service.py b/app/services/form_generation_service.py index b7207b5..bfb191e 100644 --- a/app/services/form_generation_service.py +++ b/app/services/form_generation_service.py @@ -1,6 +1,6 @@ import json, random, io, logging -from pulp import LpProblem, LpVariable, LpMinimize, LpMaximize, LpAffineExpression, LpConstraint, LpStatus, lpSum +from pulp import LpProblem, LpVariable, LpMinimize, LpStatus, lpSum from lib.application_configs import ApplicationConfigs from helpers import aws_helper, tar_helper, csv_helper, service_helper, solver_helper