public ThreeParamItemInformationFunction(ThreeParamModelParameters modelParameters) { _alpha = modelParameters.Alpha; _chi = modelParameters.Chi; _probabilityFunction = new ThreeParamProbabilityFunction(modelParameters); }
public FourParamItemInformationFunction(FourParamModelParameters modelParameters) { _alpha = modelParameters.Alpha; _chi = modelParameters.Chi; _epsilon = modelParameters.Epsilon; _probabilityFunction = new FourParamProbabilityFunction(modelParameters); }
/// <summary> /// Adds the given element to the collection /// </summary> /// <param name="item">The item to add</param> public override void Add(IModelElement item) { if ((this._parent.Function_ProbabilityFunctionLiteral == null)) { IProbabilityFunction function_ProbabilityFunctionLiteralCasted = item.As <IProbabilityFunction>(); if ((function_ProbabilityFunctionLiteralCasted != null)) { this._parent.Function_ProbabilityFunctionLiteral = function_ProbabilityFunctionLiteralCasted; return; } } }
// The standard error of estimate (SEE) for the location parameter theta. The general formula is given by (2.11) on page 28. public double Calculate(List <QuestionInfo> questionHistory, double theta) { List <IModelParameters> modelParametersList = questionHistory.Select(x => x.Question.ModelParameters).ToList(); List <int> responseVector = questionHistory.Select(x => (int)x.Score).ToList(); double sum = 0; for (int i = 0; i < responseVector.Count; i++) { IModelParameters modelParameters = modelParametersList[i]; IProbabilityFunction probabilityFunction = _probabilityFunctionFactory.Build(modelParameters); double p = probabilityFunction.ProbabilityOfCorrectResponse(theta); double pPrime = probabilityFunction.FirstThetaDerivative(theta); sum += pPrime * pPrime / (p * (1 - p)); } return(1 / Math.Sqrt(sum)); }
public TwoParamItemInformationFunction(TwoParamModelParameters modelParameters) { _alpha = modelParameters.Alpha; _twoParamProbabilityFunction = new TwoParamProbabilityFunction(modelParameters); }