public double getPredictedValue(double[] x) { ArgChecker.notNull(x, "x"); double[] betas = getBetas(); if (hasIntercept()) { if (x.length != betas.length - 1) { throw new IllegalArgumentException("Number of variables did not match number used in regression"); } } else { if (x.length != betas.length) { throw new IllegalArgumentException("Number of variables did not match number used in regression"); } } double sum = 0; for (int i = 0; i < (hasIntercept() ? x.length + 1 : x.length); i++) { if (hasIntercept()) { if (i == 0) { sum += betas[0]; } else { sum += betas[i] * x[i - 1]; } } else { sum += x[i] * betas[i]; } } return sum; }
public NamedVariableLeastSquaresRegressionResult( List<String> independentVariableNames, LeastSquaresRegressionResult result) { super(result); if (independentVariableNames == null) { throw new IllegalArgumentException("List of independent variable names was null"); } _independentVariableNames = new ArrayList<>(); if (result.hasIntercept()) { if (independentVariableNames.size() != result.getBetas().length - 1) { throw new IllegalArgumentException("Length of variable name array did not match number of results in the regression"); } _independentVariableNames.add(INTERCEPT_STRING); } else { if (independentVariableNames.size() != result.getBetas().length) { throw new IllegalArgumentException("Length of variable name array did not match number of results in the regression"); } } _independentVariableNames.addAll(independentVariableNames); _result = result; }
public LeastSquaresRegressionResult(LeastSquaresRegressionResult result) { ArgChecker.notNull(result, "regression result"); _betas = result.getBetas(); _residuals = result.getResiduals(); _meanSquareError = result.getMeanSquareError(); _standardErrorOfBeta = result.getStandardErrorOfBetas(); _rSquared = result.getRSquared(); _rSquaredAdjusted = result.getAdjustedRSquared(); _tStats = result.getTStatistics(); _pValues = result.getPValues(); _hasIntercept = result.hasIntercept(); }