List of usage examples for org.apache.commons.math3.stat.descriptive.rank Max clear
@Override public void clear()
From source file:com.itemanalysis.psychometrics.rasch.ScoreTable.java
public void updateScoreTable(int globalMaxIter, double globalConvergence, double adjust) { double DELTA = globalConvergence + 1.0; //LCONV Max maxDelta = new Max(); int iter = 0; //initialize raw score and extreme score arrays double maxRaw = validMRS(); int n = (int) maxRaw; int np1 = n + 1; scoreTable = new double[np1][2]; extremeScore = new boolean[np1]; stdError = new double[np1]; for (int i = 0; i < np1; i++) { scoreTable[i][0] = i;/*from ww w .ja v a2s .c o m*/ scoreTable[i][1] = scoreTableProx(scoreTable[i][0], maxRaw, adjust); stdError[i] = 0.0; if (i == 0 || i == n) { extremeScore[i] = true; } else { extremeScore[i] = false; } } double previousTheta = 0.0; //update nonextreme persons while (DELTA >= globalConvergence && iter < globalMaxIter) { //Change in person parameter is not counted toward delta. for (int i = 0; i < np1; i++) { if (!extremeScore[i]) { previousTheta = scoreTable[i][1]; scoreTable[i][1] = personUpdate(scoreTable[i][1], scoreTable[i][0], maxRaw, 0.0, DELTA); maxDelta.increment(Math.abs(previousTheta - scoreTable[i][1])); } } DELTA = maxDelta.getResult(); maxDelta.clear(); iter++; } int iter2 = 0; double DELTA2 = 1.0; double adjustedRaw = 0.0; int index = 0; //update lowest and highest (extreme) scores - convergence = 0.01 and maximum of 25 iterations while (DELTA2 >= 0.01 && iter2 < 25) { index = 0; previousTheta = scoreTable[index][1]; adjustedRaw = adjust; scoreTable[index][1] = personUpdate(scoreTable[index][1], adjustedRaw, maxRaw, 0.0, DELTA); maxDelta.increment(Math.abs(previousTheta - scoreTable[index][1])); index = n; previousTheta = scoreTable[index][1]; adjustedRaw = scoreTable[index][0] - adjust; scoreTable[index][1] = personUpdate(scoreTable[index][1], adjustedRaw, maxRaw, 0.0, DELTA); maxDelta.increment(Math.abs(previousTheta - scoreTable[index][1])); DELTA2 = maxDelta.getResult(); maxDelta.clear(); iter2++; } }