private LeastSquaresRegressionResult getResultWithStatistics( double[][] x, double[] y, double[] betas, double[] yModel, boolean useIntercept) { int n = x.length; double[] residuals = new double[n]; for (int i = 0; i < n; i++) { residuals[i] = y[i] - yModel[i]; } return new WeightedLeastSquaresRegressionResult(betas, residuals, 0.0, null, 0.0, 0.0, null, null, useIntercept); }
public double getWeightedPredictedValue(double[] x, double[] w) { if (x == null) { throw new IllegalArgumentException("Variable array was null"); } if (w == null) { throw new IllegalArgumentException("Weight array was null"); } double[] betas = getBetas(); if (hasIntercept() && x.length != betas.length - 1 || x.length != betas.length) { throw new IllegalArgumentException("Number of variables did not match number used in regression"); } if (x.length != w.length) { throw new IllegalArgumentException("Number of weights did not match number of variables"); } 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] * w[i - 1]; } } else { sum += betas[i] * x[i] * w[i]; } } return sum; } }
pValues[i] = 1 - studentT.cumulativeProbability(Math.abs(tStats[i])); return new WeightedLeastSquaresRegressionResult( betas, residuals, meanSquareError, standardErrorsOfBeta, rSquared, adjustedRSquared, tStats, pValues, useIntercept);